mirror of
https://github.com/helm/charts.git
synced 2026-08-23 22:37:45 +00:00
[stable/percona-xtradb-cluster] Add prometheus-operator support (#11994)
Signed-off-by: Andreas Holmsten <andreas.holmsten@gmail.com>
This commit is contained in:
committed by
Kubernetes Prow Robot
parent
1f88957e77
commit
f49680349e
@@ -1,5 +1,5 @@
|
||||
name: percona-xtradb-cluster
|
||||
version: 0.6.6
|
||||
version: 0.7.0
|
||||
appVersion: 5.7.19
|
||||
description: free, fully compatible, enhanced, open source drop-in replacement for
|
||||
MySQL with Galera Replication (xtradb)
|
||||
|
||||
@@ -82,6 +82,14 @@ The following table lists the configurable parameters of the Percona chart and t
|
||||
| `metricsExporter.enabled` | if set to true runs a [mysql metrics exporter](https://github.com/prometheus/mysqld_exporter) container in the pod | false |
|
||||
| `metricsExporter.commandOverrides` | Overrides default docker command for metrics exporter | `[]` |
|
||||
| `metricsExporter.argsOverrides` | Overrides default docker args for metrics exporter | `[]` |
|
||||
| `prometheus.operator.enabled` | Setting to true will create Prometheus-Operator specific resources | `false` |
|
||||
| `prometheus.operator.prometheusRule.enabled` | Create default alerting rules | `true` |
|
||||
| `prometheus.operator.prometheusRule.labels` | Labels to add to alerts | `{}` |
|
||||
| `prometheus.operator.prometheusRule.namespace` | Namespace which Prometheus is installed in | `nil` |
|
||||
| `prometheus.operator.prometheusRule.selector` | Label Selector for Prometheus to find ServiceMonitors | `nil` |
|
||||
| `prometheus.operator.serviceMonitor.interval` | Interval at which Prometheus will scrape metrics exporter | `10s` |
|
||||
| `prometheus.operator.serviceMonitor.namespace` | Namespace which Prometheus is installed in | `nil` |
|
||||
| `prometheus.operator.serviceMonitor.selector` | Label Selector for Prometheus to find ServiceMonitors | `nil` |
|
||||
| `podDisruptionBudget` | Pod disruption budget | `{enabled: false, maxUnavailable: 1}` |
|
||||
| `service.percona.headless` | if set to true makes the percona service [headless](https://kubernetes.io/docs/concepts/services-networking/service/#headless-services) | false |
|
||||
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
{{ if and .Values.metricsExporter.enabled .Values.prometheus.operator.enabled .Values.prometheus.operator.prometheusRule.enabled }}
|
||||
apiVersion: monitoring.coreos.com/v1
|
||||
kind: PrometheusRule
|
||||
metadata:
|
||||
name: {{ template "percona-xtradb-cluster.fullname" . }}
|
||||
{{- if .Values.prometheus.operator.prometheusRule.namespace }}
|
||||
namespace: {{ .Values.prometheus.operator.prometheusRule.namespace }}
|
||||
{{- end }}
|
||||
labels:
|
||||
app: {{ template "percona-xtradb-cluster.fullname" . }}
|
||||
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
|
||||
heritage: "{{ .Release.Service }}"
|
||||
release: "{{ .Release.Name }}"
|
||||
{{- if .Values.prometheus.operator.prometheusRule.selector }}
|
||||
{{ toYaml .Values.prometheus.operator.prometheusRule.selector | indent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
groups:
|
||||
- name: {{ template "percona-xtradb-cluster.fullname" . }}-alerts
|
||||
rules:
|
||||
- alert: MySQLGaleraNotReady
|
||||
annotations:
|
||||
message: Galera cluster node not ready
|
||||
expr: mysql_global_status_wsrep_ready{service="{{ template "percona-xtradb-cluster.fullname" . }}-metrics"} != 1
|
||||
for: 5m
|
||||
labels:
|
||||
severity: critical
|
||||
{{- if .Values.prometheus.operator.prometheusRule.labels }}
|
||||
{{ toYaml .Values.prometheus.operator.prometheusRule.labels | indent 8 }}
|
||||
{{- end }}
|
||||
- alert: MySQLGaleraOutOfSync
|
||||
annotations:
|
||||
message: Galera cluster node out of sync
|
||||
expr: (mysql_global_status_wsrep_local_state{service="{{ template "percona-xtradb-cluster.fullname" . }}-metrics"} != 4 and mysql_global_variables_wsrep_desync{service="{{ template "percona-xtradb-cluster.fullname" . }}-metrics"} == 0)
|
||||
for: 5m
|
||||
labels:
|
||||
severity: critical
|
||||
{{- if .Values.prometheus.operator.prometheusRule.labels }}
|
||||
{{ toYaml .Values.prometheus.operator.prometheusRule.labels | indent 8 }}
|
||||
{{- end }}
|
||||
- alert: MySQLGaleraDonorFallingBehind
|
||||
annotations:
|
||||
message: xtradb cluster donor node falling behind
|
||||
expr: (mysql_global_status_wsrep_local_state{service="{{ template "percona-xtradb-cluster.fullname" . }}-metrics"} == 2 and mysql_global_status_wsrep_local_recv_queue{service="{{ template "percona-xtradb-cluster.fullname" . }}-metrics"} > 100)
|
||||
for: 5m
|
||||
labels:
|
||||
severity: warning
|
||||
{{- if .Values.prometheus.operator.prometheusRule.labels }}
|
||||
{{ toYaml .Values.prometheus.operator.prometheusRule.labels | indent 8 }}
|
||||
{{- end }}
|
||||
- alert: MySQLInnoDBLogWaits
|
||||
annotations:
|
||||
message: MySQL innodb log writes stalling
|
||||
expr: rate(mysql_global_status_innodb_log_waits{service="{{ template "percona-xtradb-cluster.fullname" . }}-metrics"}[15m]) > 10
|
||||
for: 5m
|
||||
labels:
|
||||
severity: warning
|
||||
{{- if .Values.prometheus.operator.prometheusRule.labels }}
|
||||
{{ toYaml .Values.prometheus.operator.prometheusRule.labels | indent 8 }}
|
||||
{{- end }}
|
||||
{{ end }}
|
||||
@@ -12,7 +12,8 @@ metadata:
|
||||
spec:
|
||||
clusterIP: None
|
||||
ports:
|
||||
- port: 9104
|
||||
- name: metrics
|
||||
port: 9104
|
||||
selector:
|
||||
app: {{ template "percona-xtradb-cluster.fullname" . }}
|
||||
release: "{{ .Release.Name }}"
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
{{ if and .Values.metricsExporter.enabled .Values.prometheus.operator.enabled }}
|
||||
apiVersion: monitoring.coreos.com/v1
|
||||
kind: ServiceMonitor
|
||||
metadata:
|
||||
name: {{ template "percona-xtradb-cluster.fullname" . }}
|
||||
{{- if .Values.prometheus.operator.serviceMonitor.namespace }}
|
||||
namespace: {{ .Values.prometheus.operator.serviceMonitor.namespace }}
|
||||
{{- end }}
|
||||
labels:
|
||||
app: {{ template "percona-xtradb-cluster.fullname" . }}
|
||||
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
|
||||
heritage: "{{ .Release.Service }}"
|
||||
release: "{{ .Release.Name }}"
|
||||
{{- if .Values.prometheus.operator.serviceMonitor.selector }}
|
||||
{{ toYaml .Values.prometheus.operator.serviceMonitor.selector | indent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app: {{ template "percona-xtradb-cluster.fullname" . }}
|
||||
release: {{ .Release.Name }}
|
||||
endpoints:
|
||||
- port: metrics
|
||||
interval: {{ .Values.prometheus.operator.serviceMonitor.interval }}
|
||||
namespaceSelector:
|
||||
any: true
|
||||
{{ end }}
|
||||
@@ -101,6 +101,38 @@ metricsExporter:
|
||||
commandOverrides: []
|
||||
argsOverrides: []
|
||||
|
||||
prometheus:
|
||||
## Are you using [Prometheus Operator](https://coreos.com/operators/prometheus/docs/latest/user-guides/getting-started.html)?
|
||||
operator:
|
||||
## Setting to true will create Prometheus-Operator specific resources like ServiceMonitors
|
||||
enabled: false
|
||||
|
||||
## Configures alerts for Prometheus to pick up
|
||||
prometheusRule:
|
||||
enabled: true
|
||||
|
||||
## Labels to add to alerts
|
||||
labels: {}
|
||||
|
||||
## Namespace which Prometheus is installed in
|
||||
# namespace: monitoring
|
||||
|
||||
## Label Selector for Prometheus to find alert rules
|
||||
# selector:
|
||||
# prometheus: kube-prometheus
|
||||
|
||||
## Configures targets for Prometheus to pick up
|
||||
serviceMonitor:
|
||||
## Interval at which Prometheus will scrape metrics exporter
|
||||
interval: 10s
|
||||
|
||||
## Namespace which Prometheus is installed in
|
||||
# namespace: monitoring
|
||||
|
||||
## Label Selector for Prometheus to find ServiceMonitors
|
||||
# selector:
|
||||
# prometheus: kube-prometheus
|
||||
|
||||
## When set to true will create sidecar to tail mysql log
|
||||
logTail: true
|
||||
|
||||
|
||||
Reference in New Issue
Block a user