mirror of
https://github.com/neondatabase/neon.git
synced 2026-01-06 21:12:55 +00:00
## Problem Original Slack discussion: https://neondb.slack.com/archives/C04DGM6SMTM/p1739915430147169 TL;DR in Postgres, it's totally normal to have 'invalid' DBs (state after the interrupted `DROP DATABASE`). Yet, some of our metrics collected with `sql_exporter` try to get the size of such invalid DBs. Typical log lines: ``` time=2025-03-05T16:30:32.368Z level=ERROR source=promhttp.go:52 msg="Error gathering metrics" error="[from Gatherer #1] [collector=neon_collector,query=pg_stats_userdb] pq: [NEON_SMGR] [reqid 0] could not read db size of db 173228 from page server at lsn 0/44A0E8C0" time=2025-03-05T16:30:32.369Z level=ERROR source=promhttp.go:52 msg="Error gathering metrics" error="[from Gatherer #1] [collector=neon_collector,query=db_total_size] pq: [NEON_SMGR] [reqid 0] could not read db size of db 173228 from page server at lsn 0/44A0E8C0" ``` ## Summary of changes Ignore invalid DBs in these two metrics -- `pg_stats_userdb` and `db_total_size`
Compute Configuration
These files are the configuration files for various other pieces of software that will be running in the compute alongside Postgres.
sql_exporter
Adding a sql_exporter Metric
We use sql_exporter to export various metrics from Postgres. In order to add
a metric, you will need to create two files: a libsonnet and a sql file. You
will then import the libsonnet file in one of the collector files, and the
sql file will be imported in the libsonnet file.
In the event your statistic is an LSN, you may want to cast it to a float8
because Prometheus only supports floats. It's probably fine because float8 can
store integers from -2^53 to +2^53 exactly.