integrations/mongodb/documentation.yaml (103 lines of code) (raw):
exporter_type: standalone
app_name_short: MongoDB
app_name: {{app_name_short}}
app_site_name: {{app_name_short}}
app_site_url: https://www.mongodb.com/
exporter_name: {{app_name_short}}
exporter_pkg_name: mongodb_exporter
exporter_repo_url: https://github.com/percona/mongodb_exporter
dashboard_available: true
minimum_exporter_version: "0.20"
multiple_dashboards: false
dashboard_display_name: {{app_name_short}} Prometheus Overview
standalone_config: |
apiVersion: apps/v1
kind: Deployment
metadata:
name: mongodb-exporter
labels:
app.kubernetes.io/name: mongodb-exporter
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: mongodb-exporter
template:
metadata:
labels:
app.kubernetes.io/name: mongodb-exporter
spec:
containers:
- name: exporter
image: percona/mongodb_exporter:0.39
args:
- --mongodb.uri=mongodb://user:password@mongodb-service-name:27017
- --collect-all
ports:
- name: prometheus
containerPort: 9216
protocol: TCP
additional_install_info: |
The {{app_name_short}} exporter is configurable with
[flags]({{exporter_repo_url}}#configuration){:class="external"},
which can be set as container args. You can adjust your exporter's configuration
to suit your {{app_name_short}} configuration.
Update the `--mongodb.uri` flag to match your environment's username, password,
and clusterIP service name.
The flag `--collect-all` is specified in the example and there are [other flags
available](https://github.com/percona/mongodb_exporter/blob/main/REFERENCE.md#flags) to tune metric collection.
podmonitoring_config: |
apiVersion: monitoring.googleapis.com/v1
kind: PodMonitoring
metadata:
name: mongodb
labels:
app.kubernetes.io/name: mongodb
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: mongodb-exporter
sample_promql_query: up{job="mongodb", cluster="{{cluster_name}}", namespace="{{namespace_name}}"}
alerts_config: |
apiVersion: monitoring.googleapis.com/v1
kind: Rules
metadata:
name: mongodb-rules
labels:
app.kubernetes.io/component: rules
app.kubernetes.io/name: mongodb-rules
app.kubernetes.io/part-of: google-cloud-managed-prometheus
spec:
groups:
- name: mongodb
interval: 30s
rules:
- alert: MongoDBConnectionUtilizationNearMax
annotations:
description: |-
MongoDB connection utilization near max
VALUE = {{ $value }}
LABELS: {{ $labels }}
summary: MongoDB connection utilization near max (instance {{ $labels.instance }})
expr: mongodb_sys_netstat_Tcp_CurrEstab >= 50000
for: 5m
labels:
severity: warning
- alert: MongoDBDown
annotations:
description: |-
MongoDB is down
VALUE = {{ $value }}
LABELS: {{ $labels }}
summary: MongoDB is down (instance {{ $labels.instance }})
expr: mongodb_up < 1
for: 5m
labels:
severity: critical
additional_alert_info: You can adjust the alert thresholds to suit your application.