Query Nebula Graph metrics¶
Nebula Graph supports querying the monitoring metrics through HTTP ports.
Metrics¶
Each metric of Nebula Graph consists of three fields: name, type, and time range. The fields are separated by periods, for example, num_queries.sum.600
. The detailed description is as follows.
Field | Example | Description |
---|---|---|
Metric name | num_queries |
Indicates the function of the metric. |
Metric type | sum |
Indicates how the metrics are collected. Supported types are SUM, COUNT, AVG, RATE, and the P-th sample quantiles such as P75, P95, P99, and P99.9. |
Time range | 600 |
The time range in seconds for the metric collection. Supported values are 5, 60, 600, and 3600, representing the last 5 seconds, 1 minute, 10 minutes, and 1 hour. |
Different Nebula Graph services (Graph, Storage, or Meta) support different metrics, for more information, see Metric list (TODO: doc).
Query metrics over HTTP¶
Syntax¶
$ curl -G "http://<ip>:<port>/stats?stats=<metric_name_list>[&format=json]"
Parameter | Description |
---|---|
ip |
The IP address of the server. You can find it in the configuration file in the installation directory. |
port |
The HTTP port of the server. You can find it in the configuration file in the installation directory. The default ports are 19559 (Meta), 19669 (Graph), and 19779 (Storage). |
metric_name_list |
The metrics names. Multiple metrics are separated by commas (,). |
&format=json |
Optional. Returns the result in the JSON format. |
Note
If Nebula Graph is deployed with Docker Compose, run docker-compose ps
to check the ports that are mapped from the service ports inside of the container and then query through them.
Example¶
- Query a single metric
Query the query number in the last 10 minutes in the Graph Service.
$ curl -G "http://192.168.8.40:19669/stats?stats=num_queries.sum.600" num_queries.sum.600=400
- Query multiple metrics
Query the following metrics together: * The average heartbeat latency in the last 1 minute. * The average latency of the slowest 1% heartbeats, i.e., the P99 heartbeats, in the last 10 minutes.
$ curl -G "http://192.168.8.40:19559/stats?stats=heartbeat_latency_us.avg.60,heartbeat_latency_us.p99.600" heartbeat_latency_us.avg.60=281 heartbeat_latency_us.p99.600=985
- Return a JSON result.
Query the number of new vertices in the Storage Service in the last 10 minutes and return the result in the JSON format.
$ curl -G "http://192.168.8.40:19779/stats?stats=num_add_vertices.sum.600&format=json" [{"value":1,"name":"num_add_vertices.sum.600"}]
- Query all metrics in a service.
If no metric is specified in the query, Nebula Graph returns all metrics in the service.
$ curl -G "http://192.168.8.40:19559/stats" heartbeat_latency_us.avg.5=304 heartbeat_latency_us.avg.60=308 heartbeat_latency_us.avg.600=299 heartbeat_latency_us.avg.3600=285 heartbeat_latency_us.p75.5=652 heartbeat_latency_us.p75.60=669 heartbeat_latency_us.p75.600=651 heartbeat_latency_us.p75.3600=642 heartbeat_latency_us.p95.5=930 heartbeat_latency_us.p95.60=963 heartbeat_latency_us.p95.600=933 heartbeat_latency_us.p95.3600=929 heartbeat_latency_us.p99.5=986 heartbeat_latency_us.p99.60=1409 heartbeat_latency_us.p99.600=989 heartbeat_latency_us.p99.3600=986 num_heartbeats.rate.5=0 num_heartbeats.rate.60=0 num_heartbeats.rate.600=0 num_heartbeats.rate.3600=0 num_heartbeats.sum.5=2 num_heartbeats.sum.60=40 num_heartbeats.sum.600=394 num_heartbeats.sum.3600=2364