Files
o11y/pkg/query-service/app/integrations/builtin_integrations/postgres/integration.json
T
zooqueen e442dc6bd2 fix(deploy): the compose files name what the datastore image ships
Verified against ghcr.io/hanzoai/datastore:26.6.1.1, the image these files run:
config /etc/datastore-server, data /var/lib/datastore, config root <datastore>,
client /usr/bin/datastore-client, and an entrypoint that reads DATASTORE_* and
nothing else. The mounts pointed at /etc/clickhouse-server and
/var/lib/clickhouse, which the image does not have, and passed CLICKHOUSE_* the
entrypoint ignores.

.devenv bound ${PWD}/../../../deploy/common/clickhouse/custom-function.xml; that
directory is deploy/common/datastore.

Service, hostname, volume, anchor and swarm-config names follow, and the cluster
XML replicas match the compose hostnames again.

The eight built-in integrations credited [email protected] and o11y.io, which
does not resolve; ours is o11y.hanzo.ai. The datastore integration is titled
Hanzo Datastore. Its id stays — an installed integration references it.

data-collected.json and the dashboards keep ClickHouseProfileEvents_* and
ClickHouseAsyncMetrics_*: those are the names the server binary emits, checked
in the running pod.
2026-08-14 20:07:33 -07:00

232 lines
6.1 KiB
JSON

{
"id": "postgres",
"title": "PostgreSQL",
"description": "Monitor Postgres with metrics and logs",
"author": {
"name": "Hanzo",
"email": "[email protected]",
"homepage": "https://o11y.hanzo.ai"
},
"icon": "file://icon.svg",
"categories": [
"Database"
],
"overview": "file://overview.md",
"configuration": [
{
"title": "Prerequisites",
"instructions": "file://config/prerequisites.md"
},
{
"title": "Collect Metrics",
"instructions": "file://config/collect-metrics.md"
},
{
"title": "Collect Logs",
"instructions": "file://config/collect-logs.md"
}
],
"assets": {
"logs": {
"pipelines": []
},
"dashboards": [
"file://assets/dashboards/overview.json"
],
"alerts": []
},
"connection_tests": {
"logs": {
"attribute_key": "source",
"attribute_value": "postgres"
}
},
"data_collected": {
"logs": [
{
"name": "Process ID",
"path": "attributes.pid",
"type": "string"
},
{
"name": "Timestamp",
"path": "timestamp",
"type": "timestamp"
},
{
"name": "Severity Text",
"path": "severity_text",
"type": "string"
},
{
"name": "Severity Number",
"path": "severity_number",
"type": "number"
}
],
"metrics": [
{
"name": "postgresql_backends",
"type": "sum",
"unit": "number",
"description": "The number of backends."
},
{
"name": "postgresql_bgwriter_buffers_allocated",
"type": "sum",
"unit": "number",
"description": "Number of buffers allocated."
},
{
"name": "postgresql_bgwriter_buffers_writes",
"type": "sum",
"unit": "number",
"description": "Number of buffers written."
},
{
"name": "postgresql_bgwriter_checkpoint_count",
"type": "sum",
"unit": "number",
"description": "The number of checkpoints performed."
},
{
"name": "postgresql_bgwriter_duration",
"type": "sum",
"unit": "ms",
"description": "Total time spent writing and syncing files to disk by checkpoints."
},
{
"name": "postgresql_bgwriter_maxwritten",
"type": "sum",
"unit": "number",
"description": "Number of times the background writer stopped a cleaning scan because it had written too many buffers."
},
{
"name": "postgresql_blocks_read",
"type": "sum",
"unit": "number",
"description": "The number of blocks read."
},
{
"name": "postgresql_commits",
"type": "sum",
"unit": "number",
"description": "The number of commits."
},
{
"name": "postgresql_connection_max",
"type": "gauge",
"unit": "number",
"description": "Configured maximum number of client connections allowed"
},
{
"name": "postgresql_database_count",
"type": "sum",
"unit": "number",
"description": "Number of user databases."
},
{
"name": "postgresql_database_locks",
"type": "gauge",
"unit": "number",
"description": "The number of database locks."
},
{
"name": "postgresql_db_size",
"type": "sum",
"unit": "Bytes",
"description": "The database disk usage."
},
{
"name": "postgresql_deadlocks",
"type": "sum",
"unit": "number",
"description": "The number of deadlocks."
},
{
"name": "postgresql_index_scans",
"type": "sum",
"unit": "number",
"description": "The number of index scans on a table."
},
{
"name": "postgresql_index_size",
"type": "gauge",
"unit": "Bytes",
"description": "The size of the index on disk."
},
{
"name": "postgresql_operations",
"type": "sum",
"unit": "number",
"description": "The number of db row operations."
},
{
"name": "postgresql_replication_data_delay",
"type": "gauge",
"unit": "Bytes",
"description": "The amount of data delayed in replication."
},
{
"name": "postgresql_rollbacks",
"type": "sum",
"unit": "number",
"description": "The number of rollbacks."
},
{
"name": "postgresql_rows",
"type": "sum",
"unit": "number",
"description": "The number of rows in the database."
},
{
"name": "postgresql_sequential_scans",
"type": "sum",
"unit": "number",
"description": "The number of sequential scans."
},
{
"name": "postgresql_table_count",
"type": "sum",
"unit": "number",
"description": "Number of user tables in a database."
},
{
"name": "postgresql_table_size",
"type": "sum",
"unit": "Bytes",
"description": "Disk space used by a table."
},
{
"name": "postgresql_table_vacuum_count",
"type": "sum",
"unit": "number",
"description": "Number of times a table has manually been vacuumed."
},
{
"name": "postgresql_temp_files",
"type": "sum",
"unit": "number",
"description": "The number of temp files."
},
{
"name": "postgresql_wal_age",
"type": "gauge",
"unit": "seconds",
"description": "Age of the oldest WAL file."
},
{
"name": "postgresql_wal_delay",
"type": "gauge",
"unit": "seconds",
"description": "Time between flushing recent WAL locally and receiving notification that the standby server has completed an operation with it."
},
{
"name": "postgresql_wal_lag",
"type": "gauge",
"unit": "seconds",
"description": "Time between flushing recent WAL locally and receiving notification that the standby server has completed an operation with it."
}
]
}
}