DirectorySecurity AdvisoriesPricing
Sign in
Directory
cloudnative-pg logoHELM

cloudnative-pg

Helm chart
Last changed
Request a free trial

Contact our team to test out this Helm chart and related images for free. Please also indicate any other images you would like to evaluate.

Overview
Chart versions
Default values
Chart metadata
Images

Tag:

1
#
2
# Copyright © contributors to CloudNativePG, established as
3
# CloudNativePG a Series of LF Projects, LLC.
4
#
5
# Licensed under the Apache License, Version 2.0 (the "License");
6
# you may not use this file except in compliance with the License.
7
# You may obtain a copy of the License at
8
#
9
# http://www.apache.org/licenses/LICENSE-2.0
10
#
11
# Unless required by applicable law or agreed to in writing, software
12
# distributed under the License is distributed on an "AS IS" BASIS,
13
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
# See the License for the specific language governing permissions and
15
# limitations under the License.
16
#
17
# SPDX-License-Identifier: Apache-2.0
18
#
19
# Default values for CloudNativePG.
20
# This is a YAML-formatted file.
21
# Please declare variables to be passed to your templates.
22
23
replicaCount: 1
24
image:
25
repository: cgr.dev/chainguard-private/cloudnative-pg-fips
26
pullPolicy: IfNotPresent
27
# -- Overrides the image tag whose default is the chart appVersion.
28
tag: latest@sha256:1a7b98c02ae10770e72b1d906e14776200daab09b609f8ac81180dc92773ee0e
29
imagePullSecrets: []
30
nameOverride: ""
31
fullnameOverride: ""
32
namespaceOverride: ""
33
hostNetwork: false
34
dnsPolicy: ""
35
# -- Update strategy for the operator.
36
# ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
37
# For example:
38
# type: RollingUpdate
39
# rollingUpdate:
40
# maxSurge: 25%
41
# maxUnavailable: 25%
42
updateStrategy: {}
43
crds:
44
# -- Specifies whether the CRDs should be created when installing the chart.
45
create: true
46
# -- The webhook configuration.
47
webhook:
48
port: 9443
49
mutating:
50
create: true
51
failurePolicy: Fail
52
validating:
53
create: true
54
failurePolicy: Fail
55
livenessProbe:
56
initialDelaySeconds: 3
57
readinessProbe:
58
initialDelaySeconds: 3
59
startupProbe:
60
failureThreshold: 6
61
periodSeconds: 5
62
# Operator configuration.
63
config:
64
# -- Specifies whether the secret should be created.
65
create: true
66
# -- The name of the configmap/secret to use.
67
name: cnpg-controller-manager-config
68
# -- Specifies whether it should be stored in a secret, instead of a configmap.
69
secret: false
70
# -- This option determines if the operator is responsible for observing
71
# events across the entire Kubernetes cluster or if its focus should be
72
# narrowed down to the specific namespace within which it has been deployed.
73
clusterWide: true
74
# -- The content of the configmap/secret, see
75
# https://cloudnative-pg.io/documentation/current/operator_conf/#available-options
76
# for all the available options.
77
data: {}
78
# INHERITED_ANNOTATIONS: categories
79
# INHERITED_LABELS: environment, workload, app
80
# WATCH_NAMESPACE: namespace-a,namespace-b
81
# -- The maximum number of concurrent reconciles. Defaults to 10.
82
maxConcurrentReconciles: 10
83
# -- Additional arguments to be added to the operator's args list.
84
additionalArgs: []
85
# -- Array containing extra environment variables which can be templated.
86
# For example:
87
# - name: RELEASE_NAME
88
# value: "{{ .Release.Name }}"
89
# - name: MY_VAR
90
# value: "mySpecialKey"
91
additionalEnv: []
92
serviceAccount:
93
# -- Specifies whether the service account should be created.
94
create: true
95
# -- The name of the service account to use.
96
# If not set and create is true, a name is generated using the fullname template.
97
name: ""
98
rbac:
99
# -- Specifies whether ClusterRole and ClusterRoleBinding should be created.
100
create: true
101
# -- Aggregate ClusterRoles to Kubernetes default user-facing roles.
102
# Ref: https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles
103
aggregateClusterRoles: false
104
# -- Annotations to be added to all other resources.
105
commonAnnotations: {}
106
# -- Annotations to be added to the pod.
107
podAnnotations: {}
108
# -- Labels to be added to the pod.
109
podLabels: {}
110
# -- Container Security Context.
111
containerSecurityContext:
112
allowPrivilegeEscalation: false
113
readOnlyRootFilesystem: true
114
runAsUser: 10001
115
runAsGroup: 10001
116
seccompProfile:
117
type: RuntimeDefault
118
capabilities:
119
drop:
120
- "ALL"
121
# -- Security Context for the whole pod.
122
podSecurityContext:
123
runAsNonRoot: true
124
seccompProfile:
125
type: RuntimeDefault
126
# fsGroup: 2000
127
# -- Priority indicates the importance of a Pod relative to other Pods.
128
priorityClassName: ""
129
service:
130
type: ClusterIP
131
# -- DO NOT CHANGE THE SERVICE NAME as it is currently used to generate the certificate
132
# and can not be configured
133
name: cnpg-webhook-service
134
port: 443
135
# -- Set the ip family policy to configure dual-stack see [Configure dual-stack](https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services)
136
ipFamilyPolicy: ""
137
# -- Sets the families that should be supported and the order in which they should be applied to ClusterIP as well. Can be IPv4 and/or IPv6.
138
ipFamilies: []
139
resources: {}
140
# If you want to specify resources, uncomment the following
141
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
142
#
143
# limits:
144
# cpu: 100m
145
# memory: 200Mi
146
# requests:
147
# cpu: 100m
148
# memory: 100Mi
149
150
# -- Nodeselector for the operator to be installed.
151
nodeSelector: {}
152
# -- Topology Spread Constraints for the operator to be installed.
153
topologySpreadConstraints: []
154
# -- Tolerations for the operator to be installed.
155
tolerations: []
156
# -- Affinity for the operator to be installed.
157
affinity: {}
158
monitoring:
159
# -- Specifies whether the monitoring should be enabled. Requires Prometheus Operator CRDs.
160
podMonitorEnabled: false
161
# -- Metrics relabel configurations to apply to samples before ingestion.
162
podMonitorMetricRelabelings: []
163
# -- Relabel configurations to apply to samples before scraping.
164
podMonitorRelabelings: []
165
# -- Additional labels for the podMonitor
166
podMonitorAdditionalLabels: {}
167
grafanaDashboard:
168
create: false
169
# -- Allows overriding the namespace where the ConfigMap will be created, defaulting to the same one as the Release.
170
namespace: ""
171
# -- The name of the ConfigMap containing the dashboard.
172
configMapName: "cnpg-grafana-dashboard"
173
# -- Label that ConfigMaps should have to be loaded as dashboards. DEPRECATED: Use labels instead.
174
sidecarLabel: "grafana_dashboard"
175
# -- Label value that ConfigMaps should have to be loaded as dashboards. DEPRECATED: Use labels instead.
176
sidecarLabelValue: "1"
177
# -- Labels that ConfigMaps should have to get configured in Grafana.
178
labels: {}
179
# -- Annotations that ConfigMaps can have to get configured in Grafana.
180
annotations: {}
181
# Default monitoring queries
182
monitoringQueriesConfigMap:
183
# -- The name of the default monitoring configmap.
184
name: cnpg-default-monitoring
185
# -- A string representation of a YAML defining monitoring queries.
186
queries: |
187
backends:
188
query: |
189
SELECT sa.datname
190
, sa.usename
191
, sa.application_name
192
, states.state
193
, COALESCE(sa.count, 0) AS total
194
, COALESCE(sa.max_tx_secs, 0) AS max_tx_duration_seconds
195
FROM ( VALUES ('active')
196
, ('idle')
197
, ('idle in transaction')
198
, ('idle in transaction (aborted)')
199
, ('fastpath function call')
200
, ('disabled')
201
) AS states(state)
202
LEFT JOIN (
203
SELECT datname
204
, state
205
, usename
206
, COALESCE(application_name, '') AS application_name
207
, COUNT(*)
208
, COALESCE(EXTRACT (EPOCH FROM (max(now() - xact_start))), 0) AS max_tx_secs
209
FROM pg_catalog.pg_stat_activity
210
GROUP BY datname, state, usename, application_name
211
) sa ON states.state = sa.state
212
WHERE sa.usename IS NOT NULL
213
metrics:
214
- datname:
215
usage: "LABEL"
216
description: "Name of the database"
217
- usename:
218
usage: "LABEL"
219
description: "Name of the user"
220
- application_name:
221
usage: "LABEL"
222
description: "Name of the application"
223
- state:
224
usage: "LABEL"
225
description: "State of the backend"
226
- total:
227
usage: "GAUGE"
228
description: "Number of backends"
229
- max_tx_duration_seconds:
230
usage: "GAUGE"
231
description: "Maximum duration of a transaction in seconds"
232
233
backends_waiting:
234
query: |
235
SELECT count(*) AS total
236
FROM pg_catalog.pg_locks blocked_locks
237
JOIN pg_catalog.pg_locks blocking_locks
238
ON blocking_locks.locktype = blocked_locks.locktype
239
AND blocking_locks.database IS NOT DISTINCT FROM blocked_locks.database
240
AND blocking_locks.relation IS NOT DISTINCT FROM blocked_locks.relation
241
AND blocking_locks.page IS NOT DISTINCT FROM blocked_locks.page
242
AND blocking_locks.tuple IS NOT DISTINCT FROM blocked_locks.tuple
243
AND blocking_locks.virtualxid IS NOT DISTINCT FROM blocked_locks.virtualxid
244
AND blocking_locks.transactionid IS NOT DISTINCT FROM blocked_locks.transactionid
245
AND blocking_locks.classid IS NOT DISTINCT FROM blocked_locks.classid
246
AND blocking_locks.objid IS NOT DISTINCT FROM blocked_locks.objid
247
AND blocking_locks.objsubid IS NOT DISTINCT FROM blocked_locks.objsubid
248
AND blocking_locks.pid != blocked_locks.pid
249
JOIN pg_catalog.pg_stat_activity blocking_activity ON blocking_activity.pid = blocking_locks.pid
250
WHERE NOT blocked_locks.granted
251
metrics:
252
- total:
253
usage: "GAUGE"
254
description: "Total number of backends that are currently waiting on other queries"
255
256
pg_database:
257
query: |
258
SELECT datname
259
, pg_catalog.pg_database_size(datname) AS size_bytes
260
, pg_catalog.age(datfrozenxid) AS xid_age
261
, pg_catalog.mxid_age(datminmxid) AS mxid_age
262
FROM pg_catalog.pg_database
263
WHERE datallowconn
264
metrics:
265
- datname:
266
usage: "LABEL"
267
description: "Name of the database"
268
- size_bytes:
269
usage: "GAUGE"
270
description: "Disk space used by the database"
271
- xid_age:
272
usage: "GAUGE"
273
description: "Number of transactions from the frozen XID to the current one"
274
- mxid_age:
275
usage: "GAUGE"
276
description: "Number of multiple transactions (Multixact) from the frozen XID to the current one"
277
278
pg_postmaster:
279
query: |
280
SELECT EXTRACT(EPOCH FROM pg_postmaster_start_time) AS start_time
281
FROM pg_catalog.pg_postmaster_start_time()
282
metrics:
283
- start_time:
284
usage: "GAUGE"
285
description: "Time at which postgres started (based on epoch)"
286
287
pg_replication:
288
query: |
289
SELECT CASE WHEN (
290
NOT pg_catalog.pg_is_in_recovery()
291
OR pg_catalog.pg_last_wal_receive_lsn() = pg_catalog.pg_last_wal_replay_lsn())
292
THEN 0
293
ELSE GREATEST (0,
294
EXTRACT(EPOCH FROM (now() - pg_catalog.pg_last_xact_replay_timestamp())))
295
END AS lag,
296
pg_catalog.pg_is_in_recovery() AS in_recovery,
297
EXISTS (TABLE pg_stat_wal_receiver) AS is_wal_receiver_up,
298
(SELECT count(*) FROM pg_catalog.pg_stat_replication) AS streaming_replicas
299
metrics:
300
- lag:
301
usage: "GAUGE"
302
description: "Replication lag behind primary in seconds"
303
- in_recovery:
304
usage: "GAUGE"
305
description: "Whether the instance is in recovery"
306
- is_wal_receiver_up:
307
usage: "GAUGE"
308
description: "Whether the instance wal_receiver is up"
309
- streaming_replicas:
310
usage: "GAUGE"
311
description: "Number of streaming replicas connected to the instance"
312
313
pg_replication_slots:
314
query: |
315
SELECT slot_name,
316
slot_type,
317
database,
318
active,
319
(CASE pg_catalog.pg_is_in_recovery()
320
WHEN TRUE THEN pg_catalog.pg_wal_lsn_diff(pg_catalog.pg_last_wal_receive_lsn(), restart_lsn)
321
ELSE pg_catalog.pg_wal_lsn_diff(pg_catalog.pg_current_wal_lsn(), restart_lsn)
322
END) as pg_wal_lsn_diff
323
FROM pg_catalog.pg_replication_slots
324
WHERE NOT temporary
325
metrics:
326
- slot_name:
327
usage: "LABEL"
328
description: "Name of the replication slot"
329
- slot_type:
330
usage: "LABEL"
331
description: "Type of the replication slot"
332
- database:
333
usage: "LABEL"
334
description: "Name of the database"
335
- active:
336
usage: "GAUGE"
337
description: "Flag indicating whether the slot is active"
338
- pg_wal_lsn_diff:
339
usage: "GAUGE"
340
description: "Replication lag in bytes"
341
342
pg_stat_archiver:
343
query: |
344
SELECT archived_count
345
, failed_count
346
, COALESCE(EXTRACT(EPOCH FROM (now() - last_archived_time)), -1) AS seconds_since_last_archival
347
, COALESCE(EXTRACT(EPOCH FROM (now() - last_failed_time)), -1) AS seconds_since_last_failure
348
, COALESCE(EXTRACT(EPOCH FROM last_archived_time), -1) AS last_archived_time
349
, COALESCE(EXTRACT(EPOCH FROM last_failed_time), -1) AS last_failed_time
350
, COALESCE(CAST(CAST('x'||pg_catalog.right(pg_catalog.split_part(last_archived_wal, '.', 1), 16) AS pg_catalog.bit(64)) AS pg_catalog.int8), -1) AS last_archived_wal_start_lsn
351
, COALESCE(CAST(CAST('x'||pg_catalog.right(pg_catalog.split_part(last_failed_wal, '.', 1), 16) AS pg_catalog.bit(64)) AS pg_catalog.int8), -1) AS last_failed_wal_start_lsn
352
, EXTRACT(EPOCH FROM stats_reset) AS stats_reset_time
353
FROM pg_catalog.pg_stat_archiver
354
predicate_query: |
355
SELECT NOT pg_catalog.pg_is_in_recovery()
356
OR pg_catalog.current_setting('archive_mode') = 'always'
357
metrics:
358
- archived_count:
359
usage: "COUNTER"
360
description: "Number of WAL files that have been successfully archived"
361
- failed_count:
362
usage: "COUNTER"
363
description: "Number of failed attempts for archiving WAL files"
364
- seconds_since_last_archival:
365
usage: "GAUGE"
366
description: "Seconds since the last successful archival operation"
367
- seconds_since_last_failure:
368
usage: "GAUGE"
369
description: "Seconds since the last failed archival operation"
370
- last_archived_time:
371
usage: "GAUGE"
372
description: "Epoch of the last time WAL archiving succeeded"
373
- last_failed_time:
374
usage: "GAUGE"
375
description: "Epoch of the last time WAL archiving failed"
376
- last_archived_wal_start_lsn:
377
usage: "GAUGE"
378
description: "Archived WAL start LSN"
379
- last_failed_wal_start_lsn:
380
usage: "GAUGE"
381
description: "Last failed WAL LSN"
382
- stats_reset_time:
383
usage: "GAUGE"
384
description: "Time at which these statistics were last reset"
385
386
pg_stat_bgwriter:
387
runonserver: "<17.0.0"
388
query: |
389
SELECT checkpoints_timed
390
, checkpoints_req
391
, checkpoint_write_time
392
, checkpoint_sync_time
393
, buffers_checkpoint
394
, buffers_clean
395
, maxwritten_clean
396
, buffers_backend
397
, buffers_backend_fsync
398
, buffers_alloc
399
FROM pg_catalog.pg_stat_bgwriter
400
metrics:
401
- checkpoints_timed:
402
usage: "COUNTER"
403
description: "Number of scheduled checkpoints that have been performed"
404
- checkpoints_req:
405
usage: "COUNTER"
406
description: "Number of requested checkpoints that have been performed"
407
- checkpoint_write_time:
408
usage: "COUNTER"
409
description: "Total amount of time that has been spent in the portion of checkpoint processing where files are written to disk, in milliseconds"
410
- checkpoint_sync_time:
411
usage: "COUNTER"
412
description: "Total amount of time that has been spent in the portion of checkpoint processing where files are synchronized to disk, in milliseconds"
413
- buffers_checkpoint:
414
usage: "COUNTER"
415
description: "Number of buffers written during checkpoints"
416
- buffers_clean:
417
usage: "COUNTER"
418
description: "Number of buffers written by the background writer"
419
- maxwritten_clean:
420
usage: "COUNTER"
421
description: "Number of times the background writer stopped a cleaning scan because it had written too many buffers"
422
- buffers_backend:
423
usage: "COUNTER"
424
description: "Number of buffers written directly by a backend"
425
- buffers_backend_fsync:
426
usage: "COUNTER"
427
description: "Number of times a backend had to execute its own fsync call (normally the background writer handles those even when the backend does its own write)"
428
- buffers_alloc:
429
usage: "COUNTER"
430
description: "Number of buffers allocated"
431
432
pg_stat_bgwriter_17:
433
runonserver: ">=17.0.0"
434
name: pg_stat_bgwriter
435
query: |
436
SELECT buffers_clean
437
, maxwritten_clean
438
, buffers_alloc
439
, EXTRACT(EPOCH FROM stats_reset) AS stats_reset_time
440
FROM pg_catalog.pg_stat_bgwriter
441
metrics:
442
- buffers_clean:
443
usage: "COUNTER"
444
description: "Number of buffers written by the background writer"
445
- maxwritten_clean:
446
usage: "COUNTER"
447
description: "Number of times the background writer stopped a cleaning scan because it had written too many buffers"
448
- buffers_alloc:
449
usage: "COUNTER"
450
description: "Number of buffers allocated"
451
- stats_reset_time:
452
usage: "GAUGE"
453
description: "Time at which these statistics were last reset"
454
455
pg_stat_checkpointer:
456
runonserver: ">=17.0.0"
457
query: |
458
SELECT num_timed AS checkpoints_timed
459
, num_requested AS checkpoints_req
460
, restartpoints_timed
461
, restartpoints_req
462
, restartpoints_done
463
, write_time
464
, sync_time
465
, buffers_written
466
, EXTRACT(EPOCH FROM stats_reset) AS stats_reset_time
467
FROM pg_catalog.pg_stat_checkpointer
468
metrics:
469
- checkpoints_timed:
470
usage: "COUNTER"
471
description: "Number of scheduled checkpoints that have been performed"
472
- checkpoints_req:
473
usage: "COUNTER"
474
description: "Number of requested checkpoints that have been performed"
475
- restartpoints_timed:
476
usage: "COUNTER"
477
description: "Number of scheduled restartpoints due to timeout or after a failed attempt to perform it"
478
- restartpoints_req:
479
usage: "COUNTER"
480
description: "Number of requested restartpoints that have been performed"
481
- restartpoints_done:
482
usage: "COUNTER"
483
description: "Number of restartpoints that have been performed"
484
- write_time:
485
usage: "COUNTER"
486
description: "Total amount of time that has been spent in the portion of processing checkpoints and restartpoints where files are written to disk, in milliseconds"
487
- sync_time:
488
usage: "COUNTER"
489
description: "Total amount of time that has been spent in the portion of processing checkpoints and restartpoints where files are synchronized to disk, in milliseconds"
490
- buffers_written:
491
usage: "COUNTER"
492
description: "Number of buffers written during checkpoints and restartpoints"
493
- stats_reset_time:
494
usage: "GAUGE"
495
description: "Time at which these statistics were last reset"
496
497
pg_stat_database:
498
query: |
499
SELECT datname
500
, xact_commit
501
, xact_rollback
502
, blks_read
503
, blks_hit
504
, tup_returned
505
, tup_fetched
506
, tup_inserted
507
, tup_updated
508
, tup_deleted
509
, conflicts
510
, temp_files
511
, temp_bytes
512
, deadlocks
513
, blk_read_time
514
, blk_write_time
515
FROM pg_catalog.pg_stat_database
516
metrics:
517
- datname:
518
usage: "LABEL"
519
description: "Name of this database"
520
- xact_commit:
521
usage: "COUNTER"
522
description: "Number of transactions in this database that have been committed"
523
- xact_rollback:
524
usage: "COUNTER"
525
description: "Number of transactions in this database that have been rolled back"
526
- blks_read:
527
usage: "COUNTER"
528
description: "Number of disk blocks read in this database"
529
- blks_hit:
530
usage: "COUNTER"
531
description: "Number of times disk blocks were found already in the buffer cache, so that a read was not necessary (this only includes hits in the PostgreSQL buffer cache, not the operating system's file system cache)"
532
- tup_returned:
533
usage: "COUNTER"
534
description: "Number of rows returned by queries in this database"
535
- tup_fetched:
536
usage: "COUNTER"
537
description: "Number of rows fetched by queries in this database"
538
- tup_inserted:
539
usage: "COUNTER"
540
description: "Number of rows inserted by queries in this database"
541
- tup_updated:
542
usage: "COUNTER"
543
description: "Number of rows updated by queries in this database"
544
- tup_deleted:
545
usage: "COUNTER"
546
description: "Number of rows deleted by queries in this database"
547
- conflicts:
548
usage: "COUNTER"
549
description: "Number of queries canceled due to conflicts with recovery in this database"
550
- temp_files:
551
usage: "COUNTER"
552
description: "Number of temporary files created by queries in this database"
553
- temp_bytes:
554
usage: "COUNTER"
555
description: "Total amount of data written to temporary files by queries in this database"
556
- deadlocks:
557
usage: "COUNTER"
558
description: "Number of deadlocks detected in this database"
559
- blk_read_time:
560
usage: "COUNTER"
561
description: "Time spent reading data file blocks by backends in this database, in milliseconds"
562
- blk_write_time:
563
usage: "COUNTER"
564
description: "Time spent writing data file blocks by backends in this database, in milliseconds"
565
566
pg_stat_replication:
567
primary: true
568
query: |
569
SELECT usename
570
, COALESCE(application_name, '') AS application_name
571
, COALESCE(client_addr::text, '') AS client_addr
572
, COALESCE(client_port::text, '') AS client_port
573
, EXTRACT(EPOCH FROM backend_start) AS backend_start
574
, COALESCE(pg_catalog.age(backend_xmin), 0) AS backend_xmin_age
575
, pg_catalog.pg_wal_lsn_diff(pg_catalog.pg_current_wal_lsn(), sent_lsn) AS sent_diff_bytes
576
, pg_catalog.pg_wal_lsn_diff(pg_catalog.pg_current_wal_lsn(), write_lsn) AS write_diff_bytes
577
, pg_catalog.pg_wal_lsn_diff(pg_catalog.pg_current_wal_lsn(), flush_lsn) AS flush_diff_bytes
578
, COALESCE(pg_catalog.pg_wal_lsn_diff(pg_catalog.pg_current_wal_lsn(), replay_lsn),0) AS replay_diff_bytes
579
, COALESCE((EXTRACT(EPOCH FROM write_lag)),0)::float AS write_lag_seconds
580
, COALESCE((EXTRACT(EPOCH FROM flush_lag)),0)::float AS flush_lag_seconds
581
, COALESCE((EXTRACT(EPOCH FROM replay_lag)),0)::float AS replay_lag_seconds
582
FROM pg_catalog.pg_stat_replication
583
metrics:
584
- usename:
585
usage: "LABEL"
586
description: "Name of the replication user"
587
- application_name:
588
usage: "LABEL"
589
description: "Name of the application"
590
- client_addr:
591
usage: "LABEL"
592
description: "Client IP address"
593
- client_port:
594
usage: "LABEL"
595
description: "Client TCP port"
596
- backend_start:
597
usage: "COUNTER"
598
description: "Time when this process was started"
599
- backend_xmin_age:
600
usage: "COUNTER"
601
description: "The age of this standby's xmin horizon"
602
- sent_diff_bytes:
603
usage: "GAUGE"
604
description: "Difference in bytes from the last write-ahead log location sent on this connection"
605
- write_diff_bytes:
606
usage: "GAUGE"
607
description: "Difference in bytes from the last write-ahead log location written to disk by this standby server"
608
- flush_diff_bytes:
609
usage: "GAUGE"
610
description: "Difference in bytes from the last write-ahead log location flushed to disk by this standby server"
611
- replay_diff_bytes:
612
usage: "GAUGE"
613
description: "Difference in bytes from the last write-ahead log location replayed into the database on this standby server"
614
- write_lag_seconds:
615
usage: "GAUGE"
616
description: "Time elapsed between flushing recent WAL locally and receiving notification that this standby server has written it"
617
- flush_lag_seconds:
618
usage: "GAUGE"
619
description: "Time elapsed between flushing recent WAL locally and receiving notification that this standby server has written and flushed it"
620
- replay_lag_seconds:
621
usage: "GAUGE"
622
description: "Time elapsed between flushing recent WAL locally and receiving notification that this standby server has written, flushed and applied it"
623
624
pg_settings:
625
query: |
626
SELECT name,
627
CASE setting WHEN 'on' THEN '1' WHEN 'off' THEN '0' ELSE setting END AS setting
628
FROM pg_catalog.pg_settings
629
WHERE vartype IN ('integer', 'real', 'bool')
630
ORDER BY 1
631
metrics:
632
- name:
633
usage: "LABEL"
634
description: "Name of the setting"
635
- setting:
636
usage: "GAUGE"
637
description: "Setting value"
638
639
pg_extensions:
640
query: |
641
SELECT
642
current_database() as datname,
643
name as extname,
644
default_version,
645
installed_version,
646
CASE
647
WHEN default_version = installed_version THEN 0
648
ELSE 1
649
END AS update_available
650
FROM pg_catalog.pg_available_extensions
651
WHERE installed_version IS NOT NULL
652
metrics:
653
- datname:
654
usage: "LABEL"
655
description: "Name of the database"
656
- extname:
657
usage: "LABEL"
658
description: "Extension name"
659
- default_version:
660
usage: "LABEL"
661
description: "Default version"
662
- installed_version:
663
usage: "LABEL"
664
description: "Installed version"
665
- update_available:
666
usage: "GAUGE"
667
description: "An update is available"
668
target_databases:
669
- '*'
670

The trusted source for open source

Talk to an expert
PrivacyTerms

Product

Chainguard ContainersChainguard LibrariesChainguard VMsChainguard OS PackagesChainguard ActionsChainguard Agent SkillsIntegrationsPricing
© 2026 Chainguard, Inc. All Rights Reserved.
Chainguard® and the Chainguard logo are registered trademarks of Chainguard, Inc. in the United States and/or other countries.
The other respective trademarks mentioned on this page are owned by the respective companies and use of them does not imply any affiliation or endorsement.