integrations/elasticsearch/documentation.yaml (106 lines of code) (raw):
exporter_type: standalone
app_name_short: Elasticsearch
app_name: {{app_name_short}}
app_site_name: Elasticsearch
app_site_url: https://www.elastic.co/elasticsearch/
exporter_name: the Elasticsearch exporter
exporter_pkg_name: elasticsearch_exporter
exporter_repo_url: https://github.com/prometheus-community/elasticsearch_exporter
dashboard_available: true
minimum_exporter_version: v1.3.0
multiple_dashboards: false
dashboard_display_name: {{app_name_short}} Prometheus Overview
standalone_config: |
apiVersion: apps/v1
kind: Deployment
metadata:
name: elasticsearch-exporter
labels:
app.kubernetes.io/name: elasticsearch-exporter
spec:
selector:
matchLabels:
app.kubernetes.io/name: elasticsearch-exporter
template:
metadata:
labels:
app.kubernetes.io/name: elasticsearch-exporter
spec:
containers:
- name: exporter
image: quay.io/prometheuscommunity/elasticsearch-exporter:v1.3.0
args:
- '--es.uri=https://user:password@elasticsearch-es-internal-http:9200'
ports:
- containerPort: 9114
name: prometheus
podmonitoring_config: |
apiVersion: monitoring.googleapis.com/v1
kind: PodMonitoring
metadata:
name: elasticsearch
labels:
app.kubernetes.io/name: elasticsearch
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: elasticsearch-exporter
additional_install_info: |
The {{app_name_short}} exporter is configurable with [flags](https://github.com/prometheus-community/elasticsearch_exporter#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 `--es.uri` flag to match your environment's username, password, and clusterIP service name.
sample_promql_query: up{job="elasticsearch", cluster="{{cluster_name}}", namespace="{{namespace_name}}"}
alerts_config: |
apiVersion: monitoring.googleapis.com/v1
kind: Rules
metadata:
name: elasticsearch-rules
labels:
app.kubernetes.io/component: rules
app.kubernetes.io/name: elasticsearch-rules
app.kubernetes.io/part-of: google-cloud-managed-prometheus
spec:
groups:
- name: elasticsearch
interval: 30s
rules:
- alert: ElasticsearchHighJVMMemoryUsage
annotations:
description: |-
Elasticsearch high jvm memory usage
VALUE = {{ $value }}
LABELS: {{ $labels }}
summary: Elasticsearch high jvm memory usage (instance {{ $labels.instance }})
expr: (elasticsearch_jvm_memory_used_bytes / elasticsearch_jvm_memory_max_bytes) > 0.9
for: 5m
labels:
severity: critical
- alert: ElasticsearchRedClusterStatus
annotations:
description: |-
Elasticsearch red cluster status
VALUE = {{ $value }}
LABELS: {{ $labels }}
summary: Elasticsearch red cluster status (instance {{ $labels.instance }})
expr: sum(elasticsearch_cluster_health_status{color="red"}) > 0
for: 5m
labels:
severity: critical
- alert: ElasticsearchYellowClusterStatus
annotations:
description: |-
Elasticsearch yellow cluster status
VALUE = {{ $value }}
LABELS: {{ $labels }}
summary: Elasticsearch yellow cluster status (instance {{ $labels.instance }})
expr: sum(elasticsearch_cluster_health_status{color="yellow"}) > 0
for: 5m
labels:
severity: warning
additional_alert_info: You can adjust the alert thresholds to suit your application.