0

I want to monitor QuestDB instance status, ideally in Prometheus. Would be good to see queries rate, ingestion speed, avg response time, etc.

Is there a way to get this information out of QuestDB? I see only docs about minimum HTTP server which returns back HTTP code 200 if the server is up, I can integrate it as a black box in Prometheus is there anything else I can do to monitor the instance?

Brijesh Kalkani
  • 789
  • 10
  • 27
djbobo
  • 487
  • 2
  • 6

2 Answers2

1

Recent versions of QuestDB support Prometheus metrics. How to enable them?

  1. Add this to QuestDB configuration: metrics.enabled=true. This will expose the Prometheus metrics endpoint /metrics on port 9003
  2. Add this to your Prometheus configuration:
global:
  scrape_interval: 5s
  external_labels:
    monitor: 'questdb'

scrape_configs:
  - job_name: 'questdb'
    scrape_interval: 5s
    static_configs:
      - targets: ['127.0.0.1:9003']

You have to replace the 127.0.0.1 with the IP where QuestDB is running.

If you are running QuestDB inside Docker then pass this environment variable QDB_METRICS_ENABLED=TRUE instead of editing the config file to enable the metrics endpoint. Passing an environment variable is simpler than editing a file inside a container image.

Details are covered in the QuestDB Documentation

Jaromir Hamala
  • 1,761
  • 1
  • 10
  • 13
0

Just came to say a few extra prometheus metrics were added in the latest release https://github.com/questdb/questdb/releases/tag/6.5.3

Javier Ramirez
  • 3,446
  • 24
  • 31