Overview
DuckDB is a high-performance analytical database system. It is available as a standalone CLI application and has clients for Python, R, Java, Wasm, etc., with deep integrations with packages such as pandas and dplyr.
For more information on using DuckDB, refer to the DuckDB documentation.
This check monitors DuckDB through the Datadog Agent.
Setup
DuckDB has two configurable options for concurrency:
- One process can both read and write to the database.
- Multiple processes can read from the database, but no processes can write (access_mode = ‘READ_ONLY’).
The Datadog Agent uses the read_only
mode to get metrics, with a default frequency of 60 seconds (min_collection_interval
).
You can increase this value to reduce concurrency issues.
Follow the instructions below to install and configure this check for an Agent running on a host. For containerized environments, see the Autodiscovery Integration Templates for guidance on applying these instructions.
Installation
The DuckDB check is included in the Datadog Agent package.
No additional installation is needed on your server.
Dependencies
The duckdb client library is required. To install it, ensure you have a working compiler and run:
Unix
sudo -Hu dd-agent /opt/datadog-agent/embedded/bin/pip install duckdb==1.1.1
Windows
"C:\Program Files\Datadog\Datadog Agent\embedded3\python.exe" -m pip install duckdb==1.1.1
Configuration
Edit the duckdb.d/conf.yaml
file, in the conf.d/
folder at the root of your Agent’s configuration directory to start collecting your duckdb performance data. See the sample duckdb.d/conf.yaml for all available configuration options.
Restart the Agent.
Validation
Run the Agent’s status subcommand and look for duckdb
under the Checks section.
Data Collected
Metrics
duckdb.memory_limit (gauge) | The maximum memory of the system. Shown as byte |
duckdb.partitioned_write_flush_threshold (gauge) | The threshold in number of rows after which we flush a thread state when writing using PARTITION_BY. |
duckdb.partitioned_write_max_open_files (gauge) | The maximum amount of files the system can keep open before flushing to disk when writing using PARTITION_BY. |
duckdb.wal_autocheckpoint (gauge) | The WAL size threshold at which to automatically trigger a checkpoint. Shown as byte |
duckdb.worker_threads (gauge) | The number of total threads used by the system. |
Events
The DuckDB integration does not include any events.
Service Checks
The DuckDB integration does not include any service checks.
Troubleshooting
Need help? Contact Datadog support.