mirror of
https://github.com/neondatabase/neon.git
synced 2026-01-11 15:32:56 +00:00
There are quite a few benefits to this approach:
- Reduce config duplication
- The two sql_exporter configs were super similar with just a few
differences
- Pull SQL queries into standalone files
- That means we could run a SQL formatter on the file in the future
- It also means access to syntax highlighting
- In the future, run different queries for different PG versions
- This is relevant because right now, we have queries that are failing
on PG 17 due to catalog updates
Signed-off-by: Tristan Partin <tristan@neon.tech>
41 lines
2.0 KiB
Jsonnet
41 lines
2.0 KiB
Jsonnet
function(collector_file, application_name='sql_exporter') {
|
|
// Configuration for sql_exporter for autoscaling-agent
|
|
// Global defaults.
|
|
global: {
|
|
// If scrape_timeout <= 0, no timeout is set unless Prometheus provides one. The default is 10s.
|
|
scrape_timeout: '10s',
|
|
// Subtracted from Prometheus' scrape_timeout to give us some headroom and prevent Prometheus from timing out first.
|
|
scrape_timeout_offset: '500ms',
|
|
// Minimum interval between collector runs: by default (0s) collectors are executed on every scrape.
|
|
min_interval: '0s',
|
|
// Maximum number of open connections to any one target. Metric queries will run concurrently on multiple connections,
|
|
// as will concurrent scrapes.
|
|
max_connections: 1,
|
|
// Maximum number of idle connections to any one target. Unless you use very long collection intervals, this should
|
|
// always be the same as max_connections.
|
|
max_idle_connections: 1,
|
|
// Maximum number of maximum amount of time a connection may be reused. Expired connections may be closed lazily before reuse.
|
|
// If 0, connections are not closed due to a connection's age.
|
|
max_connection_lifetime: '5m',
|
|
},
|
|
|
|
// The target to monitor and the collectors to execute on it.
|
|
target: {
|
|
// Data source name always has a URI schema that matches the driver name. In some cases (e.g. MySQL)
|
|
// the schema gets dropped or replaced to match the driver expected DSN format.
|
|
data_source_name: std.format('postgresql://cloud_admin@127.0.0.1:5432/postgres?sslmode=disable&application_name=%s', [application_name]),
|
|
|
|
// Collectors (referenced by name) to execute on the target.
|
|
// Glob patterns are supported (see <https://pkg.go.dev/path/filepath#Match> for syntax).
|
|
collectors: [
|
|
'neon_collector_autoscaling',
|
|
],
|
|
},
|
|
|
|
// Collector files specifies a list of globs. One collector definition is read from each matching file.
|
|
// Glob patterns are supported (see <https://pkg.go.dev/path/filepath#Match> for syntax).
|
|
collector_files: [
|
|
collector_file,
|
|
],
|
|
}
|