mattbostock / webdriver_exporter Goto Github PK
View Code? Open in Web Editor NEWProbes a web page using the WebDriver protocol and exposes metrics for Prometheus such as Navigation Timings
License: Apache License 2.0
Probes a web page using the WebDriver protocol and exposes metrics for Prometheus such as Navigation Timings
License: Apache License 2.0
Hello Matt,
Just wanted to mention that this project is awesome!
I was starting to writing something similar but in Ruby, are you going to continue the dev on this?
Is there any plans on removing the redirect limitation (Requires exact URL as target)?
Here are some recording rules that I am currently using:
# Web Official https://www.w3.org/TR/navigation-timing/
instance:web:backEnd:seconds = navigation_timing_response_start_seconds{job="webdriver"} - navigation_timing_start_seconds{job="webdriver"}
instance:web:domContentLoaded:seconds = navigation_timing_dom_content_loaded_event_start_seconds{job="webdriver"} - navigation_timing_start_seconds{job="webdriver"}
instance:web:domInteractive:seconds = navigation_timing_dom_interactive_seconds{job="webdriver"} - navigation_timing_start_seconds{job="webdriver"}
instance:web:domainLookup:seconds = navigation_timing_domain_lookup_end_seconds{job="webdriver"} - navigation_timing_domain_lookup_start_seconds{job="webdriver"}
instance:web:frontEnd:seconds = navigation_timing_load_event_start_seconds{job="webdriver"} - navigation_timing_response_end_seconds{job="webdriver"}
instance:web:pageDownload:seconds = navigation_timing_response_end_seconds{job="webdriver"} - navigation_timing_response_start_seconds{job="webdriver"}
instance:web:pageLoad:seconds = navigation_timing_load_event_start_seconds{job="webdriver"} - navigation_timing_start_seconds{job="webdriver"}
instance:web:redirection:seconds = navigation_timing_fetch_start_seconds{job="webdriver"} - navigation_timing_start_seconds{job="webdriver"}
instance:web:serverConnection:seconds = navigation_timing_connect_end_seconds{job="webdriver"} - navigation_timing_connect_start_seconds{job="webdriver"}
# Web Other
instance:web:latency:seconds = navigation_timing_response_start_seconds{job="webdriver"} - navigation_timing_fetch_start_seconds{job="webdriver"}
instance:web:transfer:seconds = navigation_timing_response_end_seconds{job="webdriver"} - navigation_timing_response_start_seconds{job="webdriver"}
instance:web:domProcessingInteractive:seconds = navigation_timing_dom_interactive_seconds{job="webdriver"} - navigation_timing_dom_loading_seconds{job="webdriver"}
instance:web:domProcessingComplete:seconds = navigation_timing_dom_complete_seconds{job="webdriver"} - navigation_timing_dom_interactive_seconds{job="webdriver"}
instance:web:onLoad:seconds = navigation_timing_load_event_end_seconds{job="webdriver"} - navigation_timing_load_event_start_seconds{job="webdriver"}
By the way, I made this all work in a docker container if your interested I could share the setup
Can anyone comment on the stability of this software? Looks like the last commit was 10 months ago. Has anyone been running this exporter continuously for this long?
ERRO[0640] failed to retrieve URL: unexpected response: {"sessionId":"206432afec3ba164339100d1b83283fb","status":6,"value":{"message":"invalid session id\n (Driver info: chromedriver=2.45.615279 (12b89733300bd268cff3b78fc76cb8f3a7cc44e5),platform=Linux 4.4.0-117-generic x86_64)"}} source=probe.go:71
and my prometheus.yml is ๏ผ
"""
Hmm, at least now you appear to have the exporter working. I'd suggest opening a separate issue for this
Originally posted by @benridley in #7 (comment)
Is it related to chrome driver issues as it is not scraping the values
Hi,
We tried with chrome driver and facing issues like this when we run the curl
-bash-4.2$ curl http://localhost:9156/probe?target=https://google.com
probe_duration_seconds 0.031578
probe_success 0
-bash-4.2$ ./webdriver_exporter
INFO[0000] Starting webdriver_exporter (version=0.0.2, branch=, revision=) sour ce=main.go:50
INFO[0000] Build context (go=go1.6.3, user=, date=) source=main.go:51
INFO[0000] Starting webdriver source=main.go:69
INFO[0000] Listening on localhost:9156 source=main.go:76
ERRO[0272] failed to retrieve URL: unexpected response: {"sessionId":"8b2eebfced 6859a6d36d1c49c5a4ee99","status":6,"value":{"message":"no such session\n (Drive r info: chromedriver=2.40.565383 (76257d1ab79276b2d53ee976b2c3e3b9f335cde7),plat form=Linux 4.14.35-1911.el7uek.x86_64 x86_64)"}} source=probe.go:71
Hi,
Thanks for your work on this exporter. I got this error when I tried to curl this url curl http://localhost:9156/probe\?target\=https://prometheus.io/
:
ERRO[0024] failed to retrieve URL: unexpected response: {"sessionId":"9a00b5ced6cfe589a2252bb67544e545","status":6,"value":{"message":"no such session\n (Driver info: chromedriver=2.22.397932 (282ed7cf89cf0053b6542e0d0f039d4123bbb6ad),platform=Linux 3.16.0-4-amd64 x86_64)"}} source=probe.go:45
I am using the latest chromedriver http://chromedriver.storage.googleapis.com/index.html?path=2.22/ and I have built your exporter with GO 1.6.2.
Do you know what happen? I have zero knowledge of chromedriver :D
Regards,
Laurent
We are getting the below issues while building
NFO[0000] Starting webdriver_exporter (version=0.0.2, branch=, revision=) source=main.go:50
INFO[0000] Build context (go=go1.6.3, user=, date=) source=main.go:51
INFO[0000] Starting webdriver source=main.go:69
FATA[0000] failed to start webdriver: failed to start service: failed to run command: exec: "chromedriver": executable file not found in $PATH source=main.go:72
Appreciate your help on this.
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.