sitespeedio / sitespeed.io

sitespeed.io is an open-source tool for comprehensive web performance analysis, enabling you to test, monitor, and optimize your website’s speed using real browsers in various environments.
https://www.sitespeed.io/
MIT License
4.76k stars 603 forks source link

Problem with "Up and running in 5 minutes" #1792

Closed jxbambrick closed 7 years ago

jxbambrick commented 7 years ago

Hello Sitespeed,

I'm having trouble with the documentation and was hoping to get some help or clarification.

Using the steps provided here: https://www.sitespeed.io/documentation/sitespeed.io/performance-dashboard/#configure-graphite

After completing step 4 and logging into the dashboard there is no data. The site summary page is empty.

I've also tried uninstalling everything using steps 5 and 6 and starting fresh using the directions from https://www.sitespeed.io/3.x/performance-dashboard/#example-setup-digital-ocean.

Any help getting my test results to show up in Grafana is appreciated.

Thanks in advance,

-Josh

soulgalore commented 7 years ago

Hey @jxbambrick so did you get any result from the beginning and then when you changed the Graphite config they where removed? Or did you never get any data?

If they was removed when you reconfigured Graphite, you need to the last step in the paragraph of https://www.sitespeed.io/documentation/sitespeed.io/performance-dashboard/#configure-graphite ("One thing to know if you change your Graphite configuration ..."). I will highlight that part of the doc in the new documentation.

If you never got any data: How do you configure --graphite.host?

Best Peter

jxbambrick commented 7 years ago

In both situations, graphana had no results. screen shot 2017-11-10 at 1 36 39 pm screen shot 2017-11-10 at 11 41 18 am

soulgalore commented 7 years ago

What do you mean, in your example you have data :)

The missing ones with N/A is visual metrics, to get those you need to do your runs with --speedIndex (and --video if you want to keep the video). Sorry if that isn't clear. In the coming 6.0 those are turned on by default as long as you use Docker.

jxbambrick commented 7 years ago

Took me a minute to realize the data that was in the screenshot was from the first run and not default/initial data. I had been running various commands with and without --graphite.host and not seeing any updates (though, I've run into error messages when passing --graphite.host)

I think I've figured out what the problem is and can better articulate how I got there. Just to be safe, I nuked everything using the Dockers reset command and started fresh. Using the documentation from "Up and running" and passing the params multiple sites here is the command:

docker-compose run sitespeed.io https://www.storage-mart.com/ https://www.storage-mart.com/kansas-city https://www.storage-mart.com/en-gb/brighton https://www.storage-mart.com/brooklyn https://www.storage-mart.com/montreal https://www.storage-mart.com/self-storage https://www.storage-mart.com/search?query=brooklyn --speedIndex --video --graphite.host=graphite

This line executes correctly and all the pages that I expected to see are available. screen shot 2017-11-12 at 8 47 32 pm

But when I wait several minutes and run the following command (*figured out how to pass it a file param):

docker run --privileged --shm-size=1g --rm -v "$(pwd)":/sitespeed.io sitespeedio/sitespeed.io urls.txt --speedIndex --video --graphite.host=graphite

I get the following error:

screen shot 2017-11-12 at 8 49 29 pm

I know the Docker Compose file has the connection information when the command runs the first time but why does the second command fail? Wouldn't --graphite.host=graphite in both commands be the same? I was reading through https://github.com/sitespeedio/sitespeed.io/issues/680 but was lost as to what the solution was. Don't know if it adds to the conversation even.

TLDR: 1. Why does the first command work but the second fail? 2. What command should I be running? 3. Can I run the first command over and over or will it wipe and replace the graphite info?

beenanner commented 7 years ago

Hi @jxbambrick sorry you are running into trouble. When starting up sitespeed.io with docker-compose you will need to issue your runs with docker-compose to make sure all the links and networks are setup correctly to communicate between containers (i.e. sitespeed.io to graphite). Try running the second command with the urls.txt like so.

docker-compose run -v "$(pwd)":/sitespeed.io sitespeed.io urls.txt --speedIndex --video --graphite.host=graphite

If you want to attach the docker run to the graphite created from the docker-compose you would need to attach your container during the run to the network created by the docker-compose up when first starting up all the containers. It should be named the same as the folder in which you curl'd out the docker-compose file and executed the docker-compose up -d command in the docs. Something like the following should work.

docker run --network <current_folder>_default --privileged --shm-size=1g --rm -v "$(pwd)":/sitespeed.io sitespeedio/sitespeed.io urls.txt --speedIndex --video --graphite.host=graphite

Let me know if that command does or doesn't work and if it doesn't I'll try to reproduce so we can update the docs so they are a bit more clear.

soulgalore commented 7 years ago

@beenanner I think we can make the doc clearer here. In the example we use docker-compose but in practice I never use it since I have the browser running on another server. What do you think?

jxbambrick commented 7 years ago

@beenanner, I think the second command you provided is working. What I've learned is that graphite/graphana doesn't timestamp every run but rather groups based on a 20-30 minute window. Need more time to test but initial results are working. Probably just a learning curve on my part with the tool.

I was running into an issue when previously when using docker-compose run sitespeed.io urls.txt --speedIndex --video --graphite.host=graphite multiple times. Below is the error message:

screen shot 2017-11-13 at 10 27 45 am

*I haven't been able to replicate the error using the updated command you provided.

jxbambrick commented 7 years ago

@soulgalore or @beenanner, I haven't been able to figure out how to populate the WebPageTest. Based on either

docker-compose run sitespeed.io urls.txt --speedIndex --video --graphite.host=graphite

or

docker run --network _default --privileged --shm-size=1g --rm -v "$(pwd)":/sitespeed.io sitespeedio/sitespeed.io urls.txt --speedIndex --video --graphite.host=graphite

how can I populate WebPageTest with data? The Configuration page had limited info on doing so and was lost on the WebPageTest page if it was already configured via the "Up and Running" example.

screen shot 2017-11-13 at 10 43 03 am

soulgalore commented 7 years ago

Hey @jxbambrick WebPageTest is optional since it is another service. It's more if you are already running WebPageTest you can drive it through sitespeed.io and have the metrics in the same place.

To populate you need to have your own WebPageTest.org server (you can deploy it in AWS, see https://wikitech.wikimedia.org/wiki/WebPageTest) or use the public one (with an API key).

Best Peter

jxbambrick commented 7 years ago

@soulgalore @beenanner, Thanks for the help and the quick responses. We can close this ticket.

On another note, I have a couple recommendations for the docs and would like to help update them. The help links on the site give a 404, what's the best way to connect (email, twitter, new ticket)?

soulgalore commented 7 years ago

Perfect, create an issue or create PR that would be great. The docs in master isn't live yet since we are waiting on releasing 6.0. Follow the instructions in https://github.com/sitespeedio/sitespeed.io/blob/master/docs/README.md to get the docs running locally, and then send a PR to master and it will go live when 6.0 is released. Thanks a lot!

Best Peter