PuppyGraph Monitoring Metrics
PuppyGraph supports Prometheus / OpenMetrics format for metrics collection.
Specification
Endpoint
Once enabled, the metrics endpoint becomes accessible at :8081/metrics
.
Available metrics
Metric Name | Description |
---|---|
puppy_gremlin_errors_count | gremlin server error count |
puppy_gremlin_errors_fifteenminuterate | gremlin server mean error rate in 15 minutes |
puppy_gremlin_errors_fiveminuterate | gremlin server mean error rate in 5 minutes |
puppy_gremlin_errors_meanrate | gremlin server mean error rate |
puppy_gremlin_errors_oneminuterate | gremlin server mean error rate in 1 minute |
puppy_gremlin_op_eval_count | gremlin server op eval count |
puppy_gremlin_op_eval_fifteenminuterate | gremlin server op eval mean rate in 15 minutes |
puppy_gremlin_op_eval_fiveminuterate | gremlin server op eval mean rate in 5 minutes |
puppy_gremlin_op_eval_max | gremlin server op eval max time cost |
puppy_gremlin_op_eval_mean | gremlin server op eval mean time cost |
puppy_gremlin_op_eval_meanrate | gremlin server op eval mean rate |
puppy_gremlin_op_eval_min | gremlin server op eval min time cost |
puppy_gremlin_op_eval_oneminuterate | gremlin server op eval mean rate in 1 minute |
puppygraph_client_status | aliveness of client, including gotty , bolt and notebook |
puppygraph_gremlin_server_status | aliveness of gremlin server |
puppygraph_node_alive | aliveness of nodes in PuppyGraph cluster |
metrics of name starts with puppy_gremlin
are available when metrics for gremlin server is enabled.
Configuration
Environment Variable | Default Value | Description |
---|---|---|
METRICS_ENABLED |
false | Enables the metrics endpoint. |
METRICS_AUTH_ENABLED |
true | Enables basic auth (using PuppyGraph credentials) for the metrics endpoint. |
GREMLINSERVER_METRICS_ENABLED |
false | Enables metrics collection for the Gremlin server. |
Datadog Integration
Here's an example of how to integrate PuppyGraph's Prometheus endpoint with Datadog for monitoring.
Run Datadog agent
Follow Start the Datadog Agent with Docker to start Datadog agent.
If metrics authentication is enabled, you need to set PUPPYGRAPH_USERNAME
and PUPPYGRAPH_PASSWORD
as environment variables in the Datadog agent container:
docker run -d --name dd-agent \
-e PUPPYGRAPH_USERNAME="<YOUR_PUPPYGRAPH_USERNAME>" \
-e PUPPYGRAPH_PASSWORD="<YOUR_PUPPYGRAPH_PASSWORD>" \
-e DD_API_KEY="<DATADOG_API_KEY>" \
-e DD_SITE="<YOUR_DATADOG_SITE>" \
-e DD_DOGSTATSD_NON_LOCAL_TRAFFIC=true \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
-v /proc/:/host/proc/:ro \
-v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \
-v /var/lib/docker/containers:/var/lib/docker/containers:ro \
gcr.io/datadoghq/agent:latest
Run PuppyGraph with Datadog labels
Add labels to a PuppyGraph container to make Datadog to discover and scrape its metrics.
For example, if you are running PuppyGraph with Docker, you can add the following arguments to the docker run
command:
With metric authentication enabled:
-l com.datadoghq.ad.check_names='["openmetrics"]' \
-l com.datadoghq.ad.init_configs='[{}]' \
-l com.datadoghq.ad.instances="[{\"openmetrics_endpoint\":\"http://%%host%%:8081/metrics\",\"username\":\"%%env_PUPPYGRAPH_USERNAME%%\",\"password\":\"%%env_PUPPYGRAPH_PASSWORD%%\",\"namespace\":\"puppy\",\"metrics\":[\".*\"]}]" \
With metric authentication disabled: