integrations/postgresql/documentation.yaml (95 lines of code) (raw):

exporter_type: sidecar app_name_short: PostgreSQL app_name: {{app_name_short}} app_site_name: PostgreSQL app_site_url: https://www.postgresql.org/ exporter_name: the PostgreSQL exporter exporter_pkg_name: postgres_exporter exporter_repo_url: https://github.com/prometheus-community/postgres_exporter dashboard_available: true minimum_exporter_version: v0.11.0 multiple_dashboards: false dashboard_display_name: {{app_name_short}} Prometheus Overview config_mods: | apiVersion: apps/v1 kind: StatefulSet metadata: name: postgresql spec: serviceName: postgresql selector: matchLabels: + app.kubernetes.io/name: postgresql template: metadata: labels: + app.kubernetes.io/name: postgresql spec: containers: - image: postgres:15.3 name: postgresql env: - name: POSTGRES_USER value: root - name: POSTGRES_PASSWORD value: password - name: POSTGRES_DB value: dev + - name: exporter + image: quay.io/prometheuscommunity/postgres-exporter:v0.14.0 + args: + - --collector.stat_statements + env: + - name: DATA_SOURCE_NAME + value: postgresql://root:password@localhost:5432/dev?sslmode=disable + ports: + - containerPort: 9187 + name: prometheus podmonitoring_config: | apiVersion: monitoring.googleapis.com/v1 kind: PodMonitoring metadata: name: postgresql labels: app.kubernetes.io/name: postgresql app.kubernetes.io/part-of: google-cloud-managed-prometheus spec: endpoints: - port: prometheus scheme: http interval: 30s path: /metrics selector: matchLabels: app.kubernetes.io/name: postgresql additional_prereq_info: | For information about creating a least-privileged user, see [Running as non-superuser](https://github.com/prometheus-community/postgres_exporter#running-as-non-superuser){:class=external}. additional_install_info: | Update the `DATA_SOURCE_NAME` environment variable with credentials that work with your {{app_name}} instance. sample_promql_query: up{job="postgresql", cluster="{{cluster_name}}", namespace="{{namespace_name}}"} alerts_config: | apiVersion: monitoring.googleapis.com/v1 kind: Rules metadata: name: postgresql-rules labels: app.kubernetes.io/component: rules app.kubernetes.io/name: postgresql-rules app.kubernetes.io/part-of: google-cloud-managed-prometheus spec: groups: - name: postgresql interval: 30s rules: - alert: PostgreSQLDatabaseSizeTooLarge annotations: description: |- PostgreSQL database size too large VALUE = {{ $value }} LABELS: {{ $labels }} summary: PostgreSQL database size too large (instance {{ $labels.instance }}) expr: pg_database_size_bytes > 100000000000 for: 5m labels: severity: warning additional_alert_info: You can adjust the alert thresholds to suit your application.