a bundled prometheus/grafana container with a config templating for monitoring livepeer instances in different deployments
docker pull livepeer/monitoring
note all Args can be passed as environment variables by adding the prefix LP_
to the arg, for example --nodes
would become LP_NODES
if passed as an env variable.
-
--mode
:standalone
for local bare metal deployments of livepeer ordocker-compose
mode for running as a part of a docker-compose manifest orkuberenetes
mode for running as a part of a kube pod -
--nodes
: a comma separated list of the livepeer nodes and theircli
port we'd like to monitor, example:--nodes=localhost:7935,localhost:7936
, this isn't required in the kubernetes deployments since discovery is done automatically using theprometheus.io/scrape
labels. -
--kube-namespaces
: comma separated list of namespaces to monitoring in thekubernetes
deployment, this is needed for certain special deployments, it defaults to an empty array. -
--prometheus-kube-scrape
: string annotation for scraping a kube pod. Ex. If the value for this flag isscrape_this_pod
then all kube pods to be scraped should have the annotationprometheus.io/scrape_this_pod
. The value for this flag must follow the Prometheus requirements for naming and match the regex[a-zA-Z_][a-zA-Z0-9_]*
(ACII letters, numbers and underscores). -
--pagerduty-service-key
: the service key (not API key!) for the Prometheus integration on your Pagerduty service to receive alerts from Prometheus Alertmanager.
these env variables cannot be passed as a arg, this is because we use them in the simple docker templating for stuff like grafana datasource
LP_PROMETHEUS_ENDPOINT
: a full url of the prometheus endpoint, this defaults tohttp://localhost:9090
, but in our kubernetes deployments and docker-compose, this need to be changed
All GF_
prefixed envs are passed to grafana , you can find out more details at the official grafana docs
# simple standalone setup example using envs
$ docker run --net=host --env LP_MODE=standalone --env LP_NODES=localhost:9735,localhost:7936 livepeer/monitoring:latest
# using args
$ docker run --net=host livepeer/monitoring:latest --mode standalone --nodes=localhost:9735,localhost:7936
Note: On OSX omit --net=host
and use host.docker.internal
instead of localhost for the --nodes
. Port forwarding using the -p
flag is also required. For example:
docker run livepeer/monitoring:latest --mode standalone --nodes=host.docker.internal:7935
The nodes specified must be run with the -monitor
flag so that they expose a /metrics
endpoint that Prometheus can scrape.
Dashboards are available at the usual 3000
port for Grafana and 9090
for Prometheus. You can change the port used to access the dashboards using the Docker port forwarding -p
flag.