boyney123 / garie Goto Github PK
View Code? Open in Web Editor NEWOpen source web performance
Home Page: https://garie.netlify.com/
License: MIT License
Open source web performance
Home Page: https://garie.netlify.com/
License: MIT License
All 3 example links in this page are not working.
Getting DNS_PROBE_FINISHED_NXDOMAIN
for all 3 of them.
Hi,
i would like to store the data externally to prevent loss of data on restarts etc. Preferably on S3 or other services. How could I do that?
Thanks for helping me and thanks for the good work here!
Seems like the website is down
I get this on localhost::
Error: No default engine was specified and no extension was provided. at new View (/usr/src/app/node_modules/express/lib/view.js:61:11) at Function.render (/usr/src/app/node_modules/express/lib/application.js:570:12) at ServerResponse.render (/usr/src/app/node_modules/express/lib/response.js:1008:7) at /usr/src/app/app.js:40:7 at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5) at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:315:13) at /usr/src/app/node_modules/express/lib/router/index.js:284:7 at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:335:12) at next (/usr/src/app/node_modules/express/lib/router/index.js:275:10) at /usr/src/app/app.js:29:3 at Layer.handle [as handle_request] (/usr/src/app/node_modules/express/lib/router/layer.js:95:5) at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:317:13) at /usr/src/app/node_modules/express/lib/router/index.js:284:7 at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:335:12) at next (/usr/src/app/node_modules/express/lib/router/index.js:275:10) at urlencodedParser (/usr/src/app/node_modules/body-parser/lib/types/urlencoded.js:91:7) at Layer.handle [as handle_request] (/usr/src/app/node_modules/express/lib/router/layer.js:95:5) at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:317:13) at /usr/src/app/node_modules/express/lib/router/index.js:284:7 at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:335:12) at next (/usr/src/app/node_modules/express/lib/router/index.js:275:10) at jsonParser (/usr/src/app/node_modules/body-parser/lib/types/json.js:109:7)
It's something missing?
Hi guys,
Hope you are all well !
Just was wondering if you have considered to use n8n to create workflow automation between all garie modules available on github. that would be just awesome :-)
Here are the potential widgets:
Thanks for any insights or inputs on this possible or not integration. :-)
Cheers,
Luc Michalski
Hey,
Just wondering if anybody fancied helping out with some of the issues and maintaining the project and plugins?
cc: @zotya as I know you do a lot of work with Garie?
Thanks
garie
version: 2.0-masterRelevant sections of code seem to be:
Problem description:
Suggested solution:
please add support for settings:
to be used while sending data to influxdb
garie
version: 2.0Scores of lighthouse change every time even though there are no changes in codebase as described in https://github.com/GoogleChrome/lighthouse/blob/master/docs/variability.md#score-variability
To reduce variability, I want to run lighthouse more than once every time.
I assume another plugin is needed that uses like pwmetrics.
First and foremost, thanks for this awesome project!
I am in the process of using this at our company. One of the things I notice is that docker gets mounted as binary to another docker image. Is there any way to avoid this? We would like to deploy this in our kubernetes / openshift instance, but this would be pretty hard to set up. Is there any way to avoid this?
Currently Lighthouse version is hardcoded to ^3.0.3 maybe it's a good idea to switch this to ^3 to always use the newest version within the current major of lighthouse.
Story
As a product manager I would like to monitor the performance not only of the base url, but also of select special pages (category overviews or article pages for example).
To do so, I would like to add a URL with sub-path into config.json
; i.e.:
{
"cron": "*/15 * * * *",
"urls": [
{
"url": "https://www.bbc.co.uk/programmes/articles/1Q5xGB0YnVf2CgTPyL0MK2s/make-it-digital-how-the-bbc-and-its-partners-unleashed-the-uks-digital-creativity",
"plugins": [
{
"name": "lighthouse",
"report": true
}
]
}
]
}
What happens now
garie-browsertime (at least) has problems with the folder structure and places some parts of the reports in a deeply nested tree of folders
/usr/src/garie-browsertime/reports/browsertime-results/www.bbc.co.uk/programmes/articles/1Q5xGB0YnVf2CgTPyL0MK2s/make-it-digital-how-the-bbc-and-its-partners-unleashed-the-uks-digital-creativity/
other data is placed in
/usr/src/garie-browsertime/reports/browsertime-results/www.bbc.co.uk-programmes-articles-1Q5xGB0YnVf2CgTPyL0MK2s-make-it-digital-how-the-bbc-and-its-partners-unleashed-the-uks-digital-creativity
Due to this some data is not found by following processes and can not be evaluated resulting in traces in logs.
What I would have expected
Folders should be handled transparently and consistently through all components.
(I personally would prefer a flat folder hierarchy.)
Hey just wanted to give an update on something I'm working on at the moment.
I have been reviewing Garie and its architecture and going to change and introduce a few things in v2.
New plugins to support Garie, they will run their core functions and add data into InfluxDB
For example checkout the Lighthouse plugin
Each plugin will filter data and store data inside InfluxDB ready to be monitored using Grafana
Introducing documentation for Garie. How to use, how do setup the plugins and get started.
Viewing videos to visually see performance stats.
Storing and being able to view historic lighthouse reports.
My aim is to get it released this month ๐!
Let me know if you have any ideas for features too.
Hi Team
Can you please guide me on where we can configure the device and network emulation for the project. By default, lighthouse audits are performed for mobile but I want to run the same on the web.
Also is it possible to configure post-login audits using the project?
Thanks
Sarthak Mehra
What you did:
I clicked the dashboard link at https://garie.io/docs/examples/example-list
What happened:
I see server error at http://example.garie.io/?orgId=1&from=now-2d&to=now
I already visited a couple of weeks ago at this address - everything was fine. I guess since then something has broken. Look at the problem, please.
garie
version: 2.0Relevant code or config:
Using default configuration on localhost
What I did and what happened:
Clicking on the "Lighthouse Reports" button on one of the default lighthouse dashboards in Grafana produces a 404 error as it tries to access the url http://localhost/:3000./reports.
Suggested solution:
It seems this would be related to the 'links' array in the grafana conf jsons in config/grafana/provisions/dashboards/, particularly the URL listed. I am however not familiar with grafana configs and cannot work out how this could be changed to change the hosts port without including a fixed protocol and host.
I'm trying to launch it following documentation and it's failing. This docker output:
โ garie (master) โ ./start.sh
Starting garie_influxdb_1 ... done
Starting garie_grafana_1 ... done
Starting garie_chronograf_1 ... done
Starting garie_garie-pagespeed-insights_1 ... done
Starting garie_garie-lighthouse_1 ... done
Starting garie_garie-browsertime_1 ... done
Attaching to garie_influxdb_1, garie_chronograf_1, garie_garie-pagespeed-insights_1, garie_garie-browsertime_1, garie_grafana_1, garie_garie-lighthouse_1
grafana_1 | t=2019-12-04T20:50:55+0000 lvl=info msg="Starting Grafana" logger=server version=6.5.1 commit=1763a0f branch=HEAD compiled=2019-11-28T07:43:49+0000
grafana_1 | t=2019-12-04T20:50:55+0000 lvl=info msg="Config loaded from" logger=settings file=/usr/share/grafana/conf/defaults.ini
grafana_1 | t=2019-12-04T20:50:55+0000 lvl=info msg="Config loaded from" logger=settings file=/etc/grafana/grafana.ini
grafana_1 | t=2019-12-04T20:50:55+0000 lvl=info msg="Config overridden from command line" logger=settings arg="default.paths.data=/var/lib/grafana"
grafana_1 | t=2019-12-04T20:50:55+0000 lvl=info msg="Config overridden from command line" logger=settings arg="default.paths.logs=/var/log/grafana"
grafana_1 | t=2019-12-04T20:50:55+0000 lvl=info msg="Config overridden from command line" logger=settings arg="default.paths.plugins=/var/lib/grafana/plugins"
grafana_1 | t=2019-12-04T20:50:55+0000 lvl=info msg="Config overridden from command line" logger=settings arg="default.paths.provisioning=/etc/grafana/provisioning"
grafana_1 | t=2019-12-04T20:50:55+0000 lvl=info msg="Config overridden from command line" logger=settings arg="default.log.mode=console"
grafana_1 | t=2019-12-04T20:50:55+0000 lvl=info msg="Config overridden from Environment variable" logger=settings var="GF_PATHS_DATA=/var/lib/grafana"
grafana_1 | t=2019-12-04T20:50:55+0000 lvl=info msg="Config overridden from Environment variable" logger=settings var="GF_PATHS_LOGS=/var/log/grafana"
grafana_1 | t=2019-12-04T20:50:55+0000 lvl=info msg="Config overridden from Environment variable" logger=settings var="GF_PATHS_PLUGINS=/var/lib/grafana/plugins"
grafana_1 | t=2019-12-04T20:50:55+0000 lvl=info msg="Config overridden from Environment variable" logger=settings var="GF_PATHS_PROVISIONING=/etc/grafana/provisioning"
grafana_1 | t=2019-12-04T20:50:55+0000 lvl=info msg="Config overridden from Environment variable" logger=settings var="GF_SECURITY_ADMIN_PASSWORD=*********"
grafana_1 | t=2019-12-04T20:50:55+0000 lvl=info msg="Path Home" logger=settings path=/usr/share/grafana
grafana_1 | t=2019-12-04T20:50:55+0000 lvl=info msg="Path Data" logger=settings path=/var/lib/grafana
grafana_1 | t=2019-12-04T20:50:55+0000 lvl=info msg="Path Logs" logger=settings path=/var/log/grafana
grafana_1 | t=2019-12-04T20:50:55+0000 lvl=info msg="Path Plugins" logger=settings path=/var/lib/grafana/plugins
grafana_1 | t=2019-12-04T20:50:55+0000 lvl=info msg="Path Provisioning" logger=settings path=/etc/grafana/provisioning
grafana_1 | t=2019-12-04T20:50:55+0000 lvl=info msg="App mode production" logger=settings
grafana_1 | t=2019-12-04T20:50:55+0000 lvl=info msg="Initializing SqlStore" logger=server
grafana_1 | t=2019-12-04T20:50:55+0000 lvl=info msg="Connecting to DB" logger=sqlstore dbtype=sqlite3
grafana_1 | t=2019-12-04T20:50:55+0000 lvl=info msg="Starting DB migration" logger=migrator
grafana_1 | t=2019-12-04T20:50:55+0000 lvl=info msg="Initializing HTTPServer" logger=server
grafana_1 | t=2019-12-04T20:50:55+0000 lvl=info msg="Initializing OSSLicensingService" logger=server
grafana_1 | t=2019-12-04T20:50:55+0000 lvl=info msg="Initializing SearchService" logger=server
grafana_1 | t=2019-12-04T20:50:55+0000 lvl=info msg="Initializing RemoteCache" logger=server
grafana_1 | t=2019-12-04T20:50:55+0000 lvl=info msg="Initializing QuotaService" logger=server
grafana_1 | t=2019-12-04T20:50:55+0000 lvl=info msg="Initializing ServerLockService" logger=server
grafana_1 | t=2019-12-04T20:50:55+0000 lvl=info msg="Initializing UserAuthTokenService" logger=server
grafana_1 | t=2019-12-04T20:50:55+0000 lvl=info msg="Initializing PluginManager" logger=server
grafana_1 | t=2019-12-04T20:50:55+0000 lvl=info msg="Starting plugin search" logger=plugins
grafana_1 | t=2019-12-04T20:50:56+0000 lvl=info msg="Initializing RenderingService" logger=server
grafana_1 | t=2019-12-04T20:50:56+0000 lvl=info msg="Initializing AlertEngine" logger=server
grafana_1 | t=2019-12-04T20:50:56+0000 lvl=info msg="Initializing DatasourceCacheService" logger=server
grafana_1 | t=2019-12-04T20:50:56+0000 lvl=info msg="Initializing HooksService" logger=server
grafana_1 | t=2019-12-04T20:50:56+0000 lvl=info msg="Initializing LoginService" logger=server
grafana_1 | t=2019-12-04T20:50:56+0000 lvl=info msg="Initializing InternalMetricsService" logger=server
grafana_1 | t=2019-12-04T20:50:56+0000 lvl=info msg="Initializing TracingService" logger=server
grafana_1 | t=2019-12-04T20:50:56+0000 lvl=info msg="Initializing UsageStatsService" logger=server
grafana_1 | t=2019-12-04T20:50:56+0000 lvl=info msg="Initializing CleanUpService" logger=server
grafana_1 | t=2019-12-04T20:50:56+0000 lvl=info msg="Initializing NotificationService" logger=server
grafana_1 | t=2019-12-04T20:50:56+0000 lvl=info msg="Initializing provisioningServiceImpl" logger=server
grafana_1 | t=2019-12-04T20:50:56+0000 lvl=info msg="deleted datasource based on configuration" logger=provisioning.datasources name=Lighthouse
grafana_1 | t=2019-12-04T20:50:56+0000 lvl=info msg="inserting datasource from configuration " logger=provisioning.datasources name=Lighthouse
grafana_1 | t=2019-12-04T20:50:56+0000 lvl=eror msg="Can't read alert notification provisioning files from directory" logger=provisioning.notifiers path=/etc/grafana/provisioning/notifiers error="open /etc/grafana/provisioning/notifiers: no such file or directory"
grafana_1 | t=2019-12-04T20:50:56+0000 lvl=info msg="Backend rendering via phantomJS" logger=rendering
grafana_1 | t=2019-12-04T20:50:56+0000 lvl=warn msg="phantomJS is deprecated and will be removed in a future release. You should consider migrating from phantomJS to grafana-image-renderer plugin." logger=rendering
grafana_1 | t=2019-12-04T20:50:56+0000 lvl=info msg="Initializing Stream Manager"
grafana_1 | t=2019-12-04T20:50:56+0000 lvl=info msg="HTTP Server Listen" logger=http.server address=[::]:3000 protocol=http subUrl= socket=
garie-pagespeed-insights_1 |
garie-pagespeed-insights_1 | > [email protected] start /usr/src/garie-pagespeed-insights
garie-pagespeed-insights_1 | > node ./src/index.js
garie-pagespeed-insights_1 |
garie-browsertime_1 |
garie-browsertime_1 | > [email protected] start /usr/src/garie-browsertime
garie-browsertime_1 | > node ./src/index.js
garie-browsertime_1 |
garie-lighthouse_1 |
garie-lighthouse_1 | > [email protected] start /usr/src/garie-lighthouse
garie-lighthouse_1 | > node ./src/index.js
garie-lighthouse_1 |
garie-browsertime_1 | Application listening on port 3000
garie-browsertime_1 | { Error: connect ECONNREFUSED 172.24.0.2:8086
garie-browsertime_1 | at Object._errnoException (util.js:1022:11)
garie-browsertime_1 | at _exceptionWithHostPort (util.js:1044:20)
garie-browsertime_1 | at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1198:14)
garie-browsertime_1 | code: 'ECONNREFUSED',
garie-browsertime_1 | errno: 'ECONNREFUSED',
garie-browsertime_1 | syscall: 'connect',
garie-browsertime_1 | address: '172.24.0.2',
garie-browsertime_1 | port: 8086 }
garie-browsertime_1 | (node:16) UnhandledPromiseRejectionWarning: Failed to initialise influx
garie-browsertime_1 | (node:16) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)
garie-browsertime_1 | (node:16) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
chronograf_1 | time="2019-12-04T20:50:59Z" level=info msg="Serving chronograf at http://[::]:8888" component=server
chronograf_1 | time="2019-12-04T20:50:59Z" level=info msg="Reporting usage stats" component=usage freq=24h reporting_addr="https://usage.influxdata.com" stats="os,arch,version,cluster_id,uptime"
garie-pagespeed-insights_1 | Application listening on port 3000
garie-pagespeed-insights_1 | { Error: connect ECONNREFUSED 172.24.0.2:8086
garie-pagespeed-insights_1 | at Object._errnoException (util.js:1022:11)
garie-pagespeed-insights_1 | at _exceptionWithHostPort (util.js:1044:20)
garie-pagespeed-insights_1 | at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1198:14)
garie-pagespeed-insights_1 | code: 'ECONNREFUSED',
garie-pagespeed-insights_1 | errno: 'ECONNREFUSED',
garie-pagespeed-insights_1 | syscall: 'connect',
garie-pagespeed-insights_1 | address: '172.24.0.2',
garie-pagespeed-insights_1 | port: 8086 }
garie-pagespeed-insights_1 | (node:16) UnhandledPromiseRejectionWarning: Failed to initialise influx
garie-pagespeed-insights_1 | (node:16) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)
garie-pagespeed-insights_1 | (node:16) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
I'm not sure why is happening because in docker-compose it "depends" on influx. Any ideas?
What you did:
I clicked the lighthouse report
button at http://example.garie.io/d/74FUukJmz/lighthouse-dashboard-all-sites?orgId=1
What happened:
I was redirected to https://example.garie.io:3000/reports which failed because Chrome couldn't verify the authenticity of the received data
. Accessing the reports page via https://garie.io/docs/examples/example-list uses http which works.
Hi
Can someone quide me how to disable video output generating ?
btw, very nice project :) i like it already!
Failed to generate report {"stack":"TypeError: Cannot read property 'replace' of undefined
at Function.generateReportHtml (/usr/src/garie-lighthouse/node_modules/lighthouse/lighthouse-core/report/report-generator.js:37:7)
at createReport (/usr/src/garie-lighthouse/src/light-house/utils.js:28:49)
at generateReport (/usr/src/garie-lighthouse/src/light-house/index.js:73:34)
at module.exports (/usr/src/garie-lighthouse/src/utils/save-report/index.js:8:30)
at getDataForAllUrls (/usr/src/garie-lighthouse/src/index.js:39:23)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)","timestamp":"2018-10-02T17:33:16.164Z"}
i guess generateReport
is getting undefined data.
Can you please add releases/tags on the garie/browsertime, garie/pagespeed-insights, garie/lighthouse docker images? Using only latest images does not allow a good control on upgrades and excludes the possibility of rollback.
garie
version:2Relevant code or config
n/a
What you did:
Loaded grafana
What happened:
No Garie Logo
Suggested solution:
docker-compose.yml
volumes:
- ./config/grafana/garie_dark_logo.svg:/usr/share/grafana/public/img/grafana_icon.svg:rw
Perhaps there's more ambitious plan to retheme grafana. Just a suggestion.
Licensing: https://community.grafana.com/t/replace-logo-in-ui/6126
As far is I know docker opens huge security backdoor by opening its ports to external so I added:
...
garie-pagespeed-insights:
image: "garie/pagespeed-insights"
ports:
- 127.0.0.1:3002:3000
...
That restricts to localhost and you can easily redirect all requests and several ports with nginx:
#13
Unfortunately I have build this outside of docker but I think this idea is maybe worth considering to run this programmatically as docker nginx module.
garie
version: no idea, I git cloned it today (October 14th 2019)Relevant code or config
Stock configuration
What you did:
git clone garie
sh start.sh
What happened:
Installation from docker-compose, then at runtime I got this message:
... [truncated] lots of messages ...
grafana_1 | GF_PATHS_DATA='/var/lib/grafana' is not writable.
grafana_1 | You may have issues with file permissions, more information here: http://docs.grafana.org/installation/docker/#migration-from-a-previous-version-of-the-docker-container-to-5-1-or-later
grafana_1 | mkdir: can't create directory '/var/lib/grafana/plugins': Permission denied
garie_grafana_1 exited with code 1
... [truncated] lots of messages ...
Problem description:
Seems like the default volume mapping doesn't writing to /var/lib (in my machine it's owned by root
). So for a quick test since I'm just evaluating garie I ran sudo sh start.sh
(I know it's a bad idea from a security POV and that in a prod settings devops will set this up correctly), and instead I got this:
... [truncated] much less messages since docker images were pulled before...
then lots of line about grafana migration =>
grafana_1 | t=2019-10-14T13:43:15+0000 lvl=info msg="Executing migration" logger=migrator id="create org_user table v1"
then errors:
grafana_1 | t=2019-10-14T13:43:38+0000 lvl=eror msg="Anonymous access organization error: 'Viewer': Organization not found"
grafana_1 | t=2019-10-14T13:43:38+0000 lvl=info msg="Request Completed" logger=context userId=0 orgId=0 uname= method=GET path=/ status=302 remote_addr=172.17.0.1 time_ms=0 size=29 referer=
grafana_1 | t=2019-10-14T13:43:38+0000 lvl=eror msg="Anonymous access organization error: 'Viewer': Organization not found"
So I checked Grafana docs and changed garie's config/grafana/grafana.ini: org_name = Viewer
to org_name = test
(to match the provisioning done in config/grafana/provisioning/dashboards/dashboard.yml
), and now I got a log that should mean grafana server is started, but localhost:3000 still doesn't work
grafana_1 | t=2019-10-14T14:05:52+0000 lvl=info msg="HTTP Server Listen" logger=http.server address=0.0.0.0:3000 protocol=http subUrl= socket=
At this point, I have no idea what else to fix or to look at.
Suggested solution:
Maybe something in Grafana changed since last time you checked?
When I tried to run Garie on my computer (Macbook), I got the error:
ERROR: for garie_grafana_1 Cannot start service grafana: driver failed programming external connectivity on endpoint garie_grafana_1 (277fc2e8a1734b89b95165237e8f3d87b3b381082ed9bd1f99877c7646675642): Error starting userland proxy: Bind for 0.0.0.0:80: unexpected error (Failure EADDRINUSE)
I thought that is because of grafana is running on port 80 which is currenty serve another service. How can I change port Garie running on so I won't get that error anymore.
Garie is Awesome!
But i needed some version which i can use in the cloud. With this you can start every container with docker run in the shell. This is important for running garie in cloud providers like https://sloppy.io or https://hyper.sh or any other stateless provider which isn't capable of using docker-compose
docker run -d --name=influxdb -p 8086:8086 \
-v influxdb:/var/lib/influxdb \
-e INFLUXDB_ADMIN_USER=admin \
-e INFLUXDB_ADMIN_PASSWORD=admin \
influxdb:latest
docker run -d --name=garie-lighthouse -p 3000:3000 \
--link="influxdb" \
-v "$(pwd)/garie-config.json:/usr/src/garie-lighthouse/config.json" \
-v "$(pwd)/plugins/garie-lighthouse/reports:/usr/src/garie-lighthouse/reports" \
-v "$(pwd)/plugins/garie-lighthouse/logs:/usr/src/garie-lighthouse/logs" \
-e HOST=influxdb \
garie/lighthouse
docker run -d --name=garie-browsertime -p 3001:3000 \
--link="influxdb" \
-e DOCKER_PATH=$(which docker) \
-v "$(pwd)/garie-config.json:/usr/src/garie-browsertime/config.json" \
-v "$(pwd)/plugins/garie-browsertime/reports:/usr/src/garie-browsertime/reports" \
-v "$(pwd)/plugins/garie-browsertime/logs:/usr/src/garie-browsertime/logs" \
-v "/var/run/docker.sock:/run/docker.sock" \
-e HOST=influxdb \
-e REPORT_DIR=$(pwd)/plugins/garie-browsertime \
garie/browsertime
docker run -d --name=garie-pagespeed-insights -p 3002:3000 \
--link="influxdb" \
-v "$(pwd)/garie-config.json:/usr/src/garie-pagespeed-insights/config.json" \
-v "$(pwd)/plugins/garie-pagespeed-insights/logs:/usr/src/garie-pagespeed-insights/logs" \
-e HOST=influxdb \
-e PAGESPEED_INSIGHTS_KEY=YOUR_KEY \
garie/pagespeed-insights
docker run -d --name=grafana -p 80:3000 \
--link="influxdb" \
-u $(id -u root):$(id -g root) \
-v "$(pwd)/grafana_data:/var/lib/grafana" \
-v "$(pwd)/config/grafana/provisioning:/etc/grafana/provisioning" \
-v "$(pwd)/config/grafana/grafana.ini:/etc/grafana/grafana.ini" \
-e GF_SECURITY_ADMIN_PASSWORD=secret \
grafana/grafana
docker run -d --name=chronograf -p 8888:8888 --link="influxdb" chronograf:latest
I've tested a little bit around and on the first view everything seems to work nicely. I wanted to ask you if you can take a short look into it and tell me if there is anything wrong in your opinion.
If you want you can add this part to documentation, i can supply you as well some nginx virtual host settings for that to rewrite 3001,3002 ports to www.garie.com/lighthouse like that because i found it really risky to expose ports to the public. If you use it live.
Best regards
Felix
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.