{"id":29823798,"url":"https://github.com/javier/questdb-basic-monitoring","last_synced_at":"2026-02-08T03:02:54.996Z","repository":{"id":283071748,"uuid":"824030149","full_name":"javier/questdb-basic-monitoring","owner":"javier","description":"Basic questdb monitoring using grafana and collecting questdb metrics via telegraf","archived":false,"fork":false,"pushed_at":"2025-03-18T12:04:32.000Z","size":252,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-18T12:35:49.640Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/javier.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-04T08:19:08.000Z","updated_at":"2025-03-18T12:04:36.000Z","dependencies_parsed_at":"2025-03-18T12:48:16.668Z","dependency_job_id":null,"html_url":"https://github.com/javier/questdb-basic-monitoring","commit_stats":null,"previous_names":["javier/questdb-basic-monitoring"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/javier/questdb-basic-monitoring","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javier%2Fquestdb-basic-monitoring","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javier%2Fquestdb-basic-monitoring/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javier%2Fquestdb-basic-monitoring/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javier%2Fquestdb-basic-monitoring/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/javier","download_url":"https://codeload.github.com/javier/questdb-basic-monitoring/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javier%2Fquestdb-basic-monitoring/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267617643,"owners_count":24116208,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-29T02:00:12.549Z","response_time":2574,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-07-29T02:08:47.720Z","updated_at":"2026-02-08T03:02:49.955Z","avatar_url":"https://github.com/javier.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# QuestDB Basic Monitoring\n\nThis project collects metrics from a QuestDB instance using the prometheus endpoint, and from the host machine using\nthe Telegraf CPU, Disk, and DiskIO inoput plugins. It stores all the metrics in QuestDB tables (it can be on a\ndifferent QuestDB instance), and provides a grafana dashboard to monitor all the metrics, also including WAL table\nmetadata.\n\n## Dependencies\n\nYou will need docker and docker-compose. If you want to monitor an external QuestDB instance, then you also need\na running QuestDB. This project starts a single QuestDB instance that is used both for reading metrics from and\nto store the metrics. For production you ideally read metrics from one external instance and store in another,\nwhich can be the dockerized QuestDB started by this project.\n\nThe project will mount the local `qdb_root` folder as the QuestDB root for the dockerized instance. It will also mount\nthe `grafana` folder to store local grafana data. It also mounts the host filesystem as read-only to collect monitoring\nmetrics from /etc, /proc, /sys, /var, and /run, as seen as the [telegraf docs](https://github.com/influxdata/telegraf/blob/master/docs/FAQ.md#q-how-can-i-monitor-the-docker-engine-host-from-within-a-container).\n\n## Launching the project\n\n`docker-compose up`\n\nQuestDB will run at http://localhost:9000. Grafana will run at ttp://localhost:3000, with user `admin` and password\n`quest`. You can change the credentials by modifying the file `grafana/etc_grafana/grafana.ini`.\n\nIf you want to monitor an external questdb instance, please check the environment variable `QUESTDB_METRICS_ENDPOINT` on\n the `telegraf` section of the `docker-compose` file, and also change the `*_METADATA_*` env variables at the `grafana`\n section to point to your source instance.\n\n If you want to store the metrics into an external questdb instance, please check the last three env variables on the\n `telegraf` section of the `docker-compose` file, and also change the last 6 environment variables at the `grafana`\n section, which point to the connection where to read metrics data from.\n\n If both the metadata instance (the one you monitor) and the metrics storage instance are\n externally available and you don't need to start a dockerized QuestDB, you can use the `docker-compose.local.yml`\n definition file instead.\n\nFor example, the following command will collect metrics and metadata from the machine exposing metrics in port 19003 and\nwill store them in the QuestDB machine available at http://host.docker.internal:29000. It will create two grafana\nconnections, one to the original machine with pgwire port at 9912 (for metadata queries), and one at the target metrics\nmachine with pgwire port at 7712. It will not start QuestDB on a container.\n\n```bash\nQUESTDB_METRICS_ENDPOINT=http://host.docker.internal:19003 \\\nQDB_CLIENT_METADATA_HOST=host.docker.internal \\\nQDB_CLIENT_METADATA_PORT=9912 \\\nQUESTDB_HTTP_ENDPOINT=http://host.docker.internal:29000 \\\nQDB_CLIENT_HOST=host.docker.internal \\\nQDB_CLIENT_PORT=7712 \\\ndocker-compose -f  docker-compose.local.yml up\n```\n\n## Querying the metrics\n\nIf you connect to the questdb metrics storage instance console (if using the default configuration it will be at\nhttp://localhost:9000), you should see four tables with metrics data: `metrics_cpu`,\n`metrics_disk`, `metrics_diskio`, and `metrics_questdb`.\n\nIf you want to check the dashboard, visit http://localhost:3000/d/basic-metrics. The\ndefault user is `admin` and default password is `quest`. The dashboard is meant to be a\nminimal dashboard for inspiration. If you want to modify it, you will need to save a\ncopy as the demo dashboard, as it is read-only.\n\n![questdb basic metrics dashboard](dashboard-screenshot.png)\n\n## Stopping the project\n\nTo just stop the project\n\n`docker-compose down`\n\nTo stop the project and remove docker volume info\n\n`docker-compose down -v`\n\nTo remove the data generated by QuestDB and Grafana\n\n`rm -rf questdb_root/*`\n\n`rm -rf grafana/home_dir/var_lib_grafana/grafana.db`\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjavier%2Fquestdb-basic-monitoring","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjavier%2Fquestdb-basic-monitoring","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjavier%2Fquestdb-basic-monitoring/lists"}