Monitoring

The GreptimeDB exposes the Prometheus metrics, and the users can also use Prometheus to collect the metrics.

Promethues Configuration

Write a Prometheus configuration file and save it as prometheus.yml:

  1. global:
  2. scrape_interval: 15s
  3. scrape_configs:
  4. - job_name: 'greptimedb'
  5. static_configs:
  6. - targets: ['localhost:4000']

Start GreptimeDB and Prometheus

Binary

Use Binary to deploy Prometheus and GreptimeDB:

  1. Install GreptimeDB according to the documentation.

  2. Visit the official documentation for Prometheus to download the binary. Afterward, execute the following command:

  1. ./prometheus --config.file=prometheus.yml

Access Prometheus by entering localhost:9090 in your web browser.

Docker

Use Docker to deploy Prometheus and GreptimeDB:

  1. Install GreptimeDB according to the documentation.

  2. Start the Prometheus:

  1. docker run \
  2. -p 9090:9090 \
  3. -v $(pwd)/prometheus.yml:/etc/prometheus/prometheus.yml \
  4. prom/prometheus

Kubernetes

  1. Install kube-prometheus-stack chart:
  1. helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
  2. helm repo update
  3. helm install prometheus prometheus-community/kube-prometheus-stack
  1. Use gtctl to deploy GreptimeDB cluster:
  1. gtctl cluster create mycluster -n default \
  2. --set cluster.prometheusMonitor.enabled=true \
  3. --set cluster.prometheusMonitor.path="/metrics" \
  4. --set cluster.prometheusMonitor.port="http" \
  5. --set cluster.prometheusMonitor.interval="30s" \
  6. --set cluster.prometheusMonitor.honorLabels=true \
  7. --set cluster.prometheusMonitor.labelsSelector.release="prometheus"

Metrics Detail

You can check the output of curl http://<host>:<port>/metrics by getting the latest metrics of GreptimeDB. We will add more documents of the metrics sooner.

Frontend

KeyType
greptime_table_operator_ingest_rowscounter
greptime_servers_errorcounter
greptime_servers_http_requests_totalcounter
greptime_servers_postgres_connection_countgauge
greptime_servers_mysql_connection_countgauge
greptime_query_merge_scan_regionssummary
greptime_servers_http_sql_elapsedsummary
greptime_query_optimize_physicalplan_elapsedsummary
greptime_frontend_handle_sql_elapsedsummary
greptime_http_track_metricssummary
greptime_query_create_physicalplan_elapsedsummary
greptime_servers_mysql_query_elapsedsummary
greptime_servers_http_requests_elapsedsummary
greptime_query_execute_plan_elapsedsummary
greptime_catalog_kv_get_remotesummary
greptime_grpc_region_requestsummary
greptime_query_merge_scan_poll_elapsedsummary
greptime_catalog_kv_getsummary
greptime_table_operator_create_tablesummary

Datanode

KeyType
greptime_opendal_bytes_totalcounter
greptime_servers_http_requests_totalcounter
greptime_opendal_requests_totalcounter
greptime_catalog_catalog_countgauge
greptime_catalog_schema_countgauge
greptime_opendal_requests_duration_secondssummary
greptime_http_track_metricssummary
greptime_servers_http_requests_elapsedsummary

Meta

KeyType
greptime_meta_create_schemacounter
greptime_servers_http_requests_totalcounter
greptime_meta_create_catalogcounter
greptime_meta_heartbeat_connection_numgauge
greptime_meta_txn_requestsummary
greptime_meta_kv_requestsummary
greptime_meta_create_schemasummary
greptime_meta_create_catalogsummary
greptime_meta_handler_executesummary
greptime_servers_http_requests_elapsedsummary
greptime_http_track_metricssummary
greptime_meta_procedure_create_tablesummary
greptime_grpc_region_requestsummary