[bitnami/elasticsearch] add prometheus rule (#10297)

* elasticsearch add prometheus rule

Signed-off-by: lusson <lusson@foxmail.com>

* update code style

Signed-off-by: lusson <lusson@foxmail.com>

* Update README.md with readme-generator-for-helm

Signed-off-by: Bitnami Containers <containers@bitnami.com>

* Update bitnami/elasticsearch/templates/metrics/prometheusrule.yaml

Co-authored-by: Francisco de Paz Galán <fdepaz@vmware.com>

Signed-off-by: lusson <lusson@foxmail.com>

* Update README.md with readme-generator-for-helm

Signed-off-by: Bitnami Containers <containers@bitnami.com>

Co-authored-by: Bitnami Containers <containers@bitnami.com>
This commit is contained in:
咸鱼老罗
2022-05-24 16:31:31 +08:00
committed by GitHub
parent 7bc14168ed
commit 96ae8f52d1
4 changed files with 130 additions and 80 deletions

View File

@@ -25,4 +25,4 @@ name: elasticsearch
sources:
- https://github.com/bitnami/bitnami-docker-elasticsearch
- https://www.elastic.co/products/elasticsearch
version: 18.1.8
version: 18.2.0

View File

@@ -108,7 +108,7 @@ $ helm delete --purge my-release
| `initContainers` | Add additional init containers to the all elasticsearch node pod(s) | `[]` |
| `image.registry` | Elasticsearch image registry | `docker.io` |
| `image.repository` | Elasticsearch image repository | `bitnami/elasticsearch` |
| `image.tag` | Elasticsearch image tag (immutable tags are recommended) | `8.2.0-debian-10-r1` |
| `image.tag` | Elasticsearch image tag (immutable tags are recommended) | `8.2.0-debian-10-r14` |
| `image.pullPolicy` | Elasticsearch image pull policy | `IfNotPresent` |
| `image.pullSecrets` | Elasticsearch image pull secrets | `[]` |
| `image.debug` | Enable Elasticsearch image debug mode | `false` |
@@ -524,7 +524,7 @@ $ helm delete --purge my-release
| `curator.jobLabels` | Annotations to add to the job | `{}` |
| `curator.image.registry` | Elasticsearch Curator image registry | `docker.io` |
| `curator.image.repository` | Elasticsearch Curator image repository | `bitnami/elasticsearch-curator` |
| `curator.image.tag` | Elasticsearch Curator image tag | `5.8.4-debian-10-r333` |
| `curator.image.tag` | Elasticsearch Curator image tag | `5.8.4-debian-10-r349` |
| `curator.image.pullPolicy` | Elasticsearch Curator image pull policy | `IfNotPresent` |
| `curator.image.pullSecrets` | Elasticsearch Curator image pull secrets | `[]` |
| `curator.cronjob.schedule` | Schedule for the CronJob | `0 1 * * *` |
@@ -580,81 +580,85 @@ $ helm delete --purge my-release
### Metrics parameters
| Name | Description | Value |
| ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ | -------------------------------- |
| `metrics.enabled` | Enable prometheus exporter | `false` |
| `metrics.nameOverride` | Metrics pod name | `""` |
| `metrics.fullnameOverride` | String to fully override common.names.fullname | `""` |
| `metrics.image.registry` | Metrics exporter image registry | `docker.io` |
| `metrics.image.repository` | Metrics exporter image repository | `bitnami/elasticsearch-exporter` |
| `metrics.image.tag` | Metrics exporter image tag | `1.3.0-debian-10-r188` |
| `metrics.image.pullPolicy` | Metrics exporter image pull policy | `IfNotPresent` |
| `metrics.image.pullSecrets` | Metrics exporter image pull secrets | `[]` |
| `metrics.extraArgs` | Extra arguments to add to the default exporter command | `[]` |
| `metrics.hostAliases` | Add deployment host aliases | `[]` |
| `metrics.schedulerName` | Name of the k8s scheduler (other than default) | `""` |
| `metrics.priorityClassName` | Elasticsearch metrics exporter pods' priorityClassName | `""` |
| `metrics.service.type` | Metrics exporter endpoint service type | `ClusterIP` |
| `metrics.service.port` | Metrics exporter endpoint service port | `9114` |
| `metrics.service.annotations` | Provide any additional annotations which may be required. | `{}` |
| `metrics.podAffinityPreset` | Metrics Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` |
| `metrics.podAntiAffinityPreset` | Metrics Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` |
| `metrics.nodeAffinityPreset.type` | Metrics Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` |
| `metrics.nodeAffinityPreset.key` | Metrics Node label key to match Ignored if `affinity` is set. | `""` |
| `metrics.nodeAffinityPreset.values` | Metrics Node label values to match. Ignored if `affinity` is set. | `[]` |
| `metrics.affinity` | Metrics Affinity for pod assignment | `{}` |
| `metrics.nodeSelector` | Metrics Node labels for pod assignment | `{}` |
| `metrics.tolerations` | Metrics Tolerations for pod assignment | `[]` |
| `metrics.topologySpreadConstraints` | Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template | `[]` |
| `metrics.resources.limits` | The resources limits for the container | `{}` |
| `metrics.resources.requests` | The requested resources for the container | `{}` |
| `metrics.livenessProbe.enabled` | Enable/disable the liveness probe (metrics pod) | `true` |
| `metrics.livenessProbe.initialDelaySeconds` | Delay before liveness probe is initiated (metrics pod) | `60` |
| `metrics.livenessProbe.periodSeconds` | How often to perform the probe (metrics pod) | `10` |
| `metrics.livenessProbe.timeoutSeconds` | When the probe times out (metrics pod) | `5` |
| `metrics.livenessProbe.failureThreshold` | Minimum consecutive failures for the probe to be considered failed after having succeeded | `5` |
| `metrics.livenessProbe.successThreshold` | Minimum consecutive successes for the probe to be considered successful after having failed (metrics pod) | `1` |
| `metrics.readinessProbe.enabled` | Enable/disable the readiness probe (metrics pod) | `true` |
| `metrics.readinessProbe.initialDelaySeconds` | Delay before readiness probe is initiated (metrics pod) | `5` |
| `metrics.readinessProbe.periodSeconds` | How often to perform the probe (metrics pod) | `10` |
| `metrics.readinessProbe.timeoutSeconds` | When the probe times out (metrics pod) | `1` |
| `metrics.readinessProbe.failureThreshold` | Minimum consecutive failures for the probe to be considered failed after having succeeded | `5` |
| `metrics.readinessProbe.successThreshold` | Minimum consecutive successes for the probe to be considered successful after having failed (metrics pod) | `1` |
| `metrics.startupProbe.enabled` | Enable/disable the startup probe (metrics pod) | `false` |
| `metrics.startupProbe.initialDelaySeconds` | Delay before startup probe is initiated (metrics pod) | `5` |
| `metrics.startupProbe.periodSeconds` | How often to perform the probe (metrics pod) | `10` |
| `metrics.startupProbe.timeoutSeconds` | When the probe times out (metrics pod) | `1` |
| `metrics.startupProbe.failureThreshold` | Minimum consecutive failures for the probe to be considered failed after having succeeded | `5` |
| `metrics.startupProbe.successThreshold` | Minimum consecutive successes for the probe to be considered successful after having failed (metrics pod) | `1` |
| `metrics.customStartupProbe` | Custom liveness probe for the Web component | `{}` |
| `metrics.customLivenessProbe` | Custom liveness probe for the Web component | `{}` |
| `metrics.customReadinessProbe` | Custom readiness probe for the Web component | `{}` |
| `metrics.podAnnotations` | Metrics exporter pod Annotation and Labels | `{}` |
| `metrics.podLabels` | Extra labels to add to Pod | `{}` |
| `metrics.podSecurityContext.enabled` | Enabled Elasticsearch metrics exporter pods' Security Context | `true` |
| `metrics.podSecurityContext.fsGroup` | Set Elasticsearch metrics exporter pod's Security Context fsGroup | `1001` |
| `metrics.containerSecurityContext.enabled` | Enabled Elasticsearch metrics exporter containers' Security Context | `true` |
| `metrics.containerSecurityContext.runAsUser` | Set Elasticsearch metrics exporter containers' Security Context runAsUser | `1001` |
| `metrics.containerSecurityContext.runAsNonRoot` | Set Elasticsearch metrics exporter container's Security Context runAsNonRoot | `true` |
| `metrics.command` | Override default container command (useful when using custom images) | `[]` |
| `metrics.args` | Override default container args (useful when using custom images) | `[]` |
| `metrics.extraEnvVars` | Array with extra environment variables to add to Elasticsearch metrics exporter nodes | `[]` |
| `metrics.extraEnvVarsCM` | Name of existing ConfigMap containing extra env vars for Elasticsearch metrics exporter nodes | `""` |
| `metrics.extraEnvVarsSecret` | Name of existing Secret containing extra env vars for Elasticsearch metrics exporter nodes | `""` |
| `metrics.extraVolumes` | Optionally specify extra list of additional volumes for the Elasticsearch metrics exporter pod(s) | `[]` |
| `metrics.extraVolumeMounts` | Optionally specify extra list of additional volumeMounts for the Elasticsearch metrics exporter container(s) | `[]` |
| `metrics.sidecars` | Add additional sidecar containers to the Elasticsearch metrics exporter pod(s) | `[]` |
| `metrics.initContainers` | Add additional init containers to the Elasticsearch metrics exporter pod(s) | `[]` |
| `metrics.serviceMonitor.enabled` | Create ServiceMonitor Resource for scraping metrics using PrometheusOperator | `false` |
| `metrics.serviceMonitor.namespace` | Namespace which Prometheus is running in | `""` |
| `metrics.serviceMonitor.jobLabel` | The name of the label on the target service to use as the job name in prometheus. | `""` |
| `metrics.serviceMonitor.interval` | Interval at which metrics should be scraped | `""` |
| `metrics.serviceMonitor.scrapeTimeout` | Timeout after which the scrape is ended | `""` |
| `metrics.serviceMonitor.relabelings` | RelabelConfigs to apply to samples before scraping | `[]` |
| `metrics.serviceMonitor.metricRelabelings` | MetricRelabelConfigs to apply to samples before ingestion | `[]` |
| `metrics.serviceMonitor.selector` | ServiceMonitor selector labels | `{}` |
| `metrics.serviceMonitor.labels` | Extra labels for the ServiceMonitor | `{}` |
| `metrics.serviceMonitor.honorLabels` | honorLabels chooses the metric's labels on collisions with target labels | `false` |
| Name | Description | Value |
| ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | -------------------------------- |
| `metrics.enabled` | Enable prometheus exporter | `false` |
| `metrics.nameOverride` | Metrics pod name | `""` |
| `metrics.fullnameOverride` | String to fully override common.names.fullname | `""` |
| `metrics.image.registry` | Metrics exporter image registry | `docker.io` |
| `metrics.image.repository` | Metrics exporter image repository | `bitnami/elasticsearch-exporter` |
| `metrics.image.tag` | Metrics exporter image tag | `1.3.0-debian-10-r205` |
| `metrics.image.pullPolicy` | Metrics exporter image pull policy | `IfNotPresent` |
| `metrics.image.pullSecrets` | Metrics exporter image pull secrets | `[]` |
| `metrics.extraArgs` | Extra arguments to add to the default exporter command | `[]` |
| `metrics.hostAliases` | Add deployment host aliases | `[]` |
| `metrics.schedulerName` | Name of the k8s scheduler (other than default) | `""` |
| `metrics.priorityClassName` | Elasticsearch metrics exporter pods' priorityClassName | `""` |
| `metrics.service.type` | Metrics exporter endpoint service type | `ClusterIP` |
| `metrics.service.port` | Metrics exporter endpoint service port | `9114` |
| `metrics.service.annotations` | Provide any additional annotations which may be required. | `{}` |
| `metrics.podAffinityPreset` | Metrics Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` |
| `metrics.podAntiAffinityPreset` | Metrics Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` |
| `metrics.nodeAffinityPreset.type` | Metrics Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` |
| `metrics.nodeAffinityPreset.key` | Metrics Node label key to match Ignored if `affinity` is set. | `""` |
| `metrics.nodeAffinityPreset.values` | Metrics Node label values to match. Ignored if `affinity` is set. | `[]` |
| `metrics.affinity` | Metrics Affinity for pod assignment | `{}` |
| `metrics.nodeSelector` | Metrics Node labels for pod assignment | `{}` |
| `metrics.tolerations` | Metrics Tolerations for pod assignment | `[]` |
| `metrics.topologySpreadConstraints` | Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template | `[]` |
| `metrics.resources.limits` | The resources limits for the container | `{}` |
| `metrics.resources.requests` | The requested resources for the container | `{}` |
| `metrics.livenessProbe.enabled` | Enable/disable the liveness probe (metrics pod) | `true` |
| `metrics.livenessProbe.initialDelaySeconds` | Delay before liveness probe is initiated (metrics pod) | `60` |
| `metrics.livenessProbe.periodSeconds` | How often to perform the probe (metrics pod) | `10` |
| `metrics.livenessProbe.timeoutSeconds` | When the probe times out (metrics pod) | `5` |
| `metrics.livenessProbe.failureThreshold` | Minimum consecutive failures for the probe to be considered failed after having succeeded | `5` |
| `metrics.livenessProbe.successThreshold` | Minimum consecutive successes for the probe to be considered successful after having failed (metrics pod) | `1` |
| `metrics.readinessProbe.enabled` | Enable/disable the readiness probe (metrics pod) | `true` |
| `metrics.readinessProbe.initialDelaySeconds` | Delay before readiness probe is initiated (metrics pod) | `5` |
| `metrics.readinessProbe.periodSeconds` | How often to perform the probe (metrics pod) | `10` |
| `metrics.readinessProbe.timeoutSeconds` | When the probe times out (metrics pod) | `1` |
| `metrics.readinessProbe.failureThreshold` | Minimum consecutive failures for the probe to be considered failed after having succeeded | `5` |
| `metrics.readinessProbe.successThreshold` | Minimum consecutive successes for the probe to be considered successful after having failed (metrics pod) | `1` |
| `metrics.startupProbe.enabled` | Enable/disable the startup probe (metrics pod) | `false` |
| `metrics.startupProbe.initialDelaySeconds` | Delay before startup probe is initiated (metrics pod) | `5` |
| `metrics.startupProbe.periodSeconds` | How often to perform the probe (metrics pod) | `10` |
| `metrics.startupProbe.timeoutSeconds` | When the probe times out (metrics pod) | `1` |
| `metrics.startupProbe.failureThreshold` | Minimum consecutive failures for the probe to be considered failed after having succeeded | `5` |
| `metrics.startupProbe.successThreshold` | Minimum consecutive successes for the probe to be considered successful after having failed (metrics pod) | `1` |
| `metrics.customStartupProbe` | Custom liveness probe for the Web component | `{}` |
| `metrics.customLivenessProbe` | Custom liveness probe for the Web component | `{}` |
| `metrics.customReadinessProbe` | Custom readiness probe for the Web component | `{}` |
| `metrics.podAnnotations` | Metrics exporter pod Annotation and Labels | `{}` |
| `metrics.podLabels` | Extra labels to add to Pod | `{}` |
| `metrics.podSecurityContext.enabled` | Enabled Elasticsearch metrics exporter pods' Security Context | `true` |
| `metrics.podSecurityContext.fsGroup` | Set Elasticsearch metrics exporter pod's Security Context fsGroup | `1001` |
| `metrics.containerSecurityContext.enabled` | Enabled Elasticsearch metrics exporter containers' Security Context | `true` |
| `metrics.containerSecurityContext.runAsUser` | Set Elasticsearch metrics exporter containers' Security Context runAsUser | `1001` |
| `metrics.containerSecurityContext.runAsNonRoot` | Set Elasticsearch metrics exporter container's Security Context runAsNonRoot | `true` |
| `metrics.command` | Override default container command (useful when using custom images) | `[]` |
| `metrics.args` | Override default container args (useful when using custom images) | `[]` |
| `metrics.extraEnvVars` | Array with extra environment variables to add to Elasticsearch metrics exporter nodes | `[]` |
| `metrics.extraEnvVarsCM` | Name of existing ConfigMap containing extra env vars for Elasticsearch metrics exporter nodes | `""` |
| `metrics.extraEnvVarsSecret` | Name of existing Secret containing extra env vars for Elasticsearch metrics exporter nodes | `""` |
| `metrics.extraVolumes` | Optionally specify extra list of additional volumes for the Elasticsearch metrics exporter pod(s) | `[]` |
| `metrics.extraVolumeMounts` | Optionally specify extra list of additional volumeMounts for the Elasticsearch metrics exporter container(s) | `[]` |
| `metrics.sidecars` | Add additional sidecar containers to the Elasticsearch metrics exporter pod(s) | `[]` |
| `metrics.initContainers` | Add additional init containers to the Elasticsearch metrics exporter pod(s) | `[]` |
| `metrics.serviceMonitor.enabled` | Create ServiceMonitor Resource for scraping metrics using PrometheusOperator | `false` |
| `metrics.serviceMonitor.namespace` | Namespace which Prometheus is running in | `""` |
| `metrics.serviceMonitor.jobLabel` | The name of the label on the target service to use as the job name in prometheus. | `""` |
| `metrics.serviceMonitor.interval` | Interval at which metrics should be scraped | `""` |
| `metrics.serviceMonitor.scrapeTimeout` | Timeout after which the scrape is ended | `""` |
| `metrics.serviceMonitor.relabelings` | RelabelConfigs to apply to samples before scraping | `[]` |
| `metrics.serviceMonitor.metricRelabelings` | MetricRelabelConfigs to apply to samples before ingestion | `[]` |
| `metrics.serviceMonitor.selector` | ServiceMonitor selector labels | `{}` |
| `metrics.serviceMonitor.labels` | Extra labels for the ServiceMonitor | `{}` |
| `metrics.serviceMonitor.honorLabels` | honorLabels chooses the metric's labels on collisions with target labels | `false` |
| `metrics.prometheusRule.enabled` | Creates a Prometheus Operator PrometheusRule (also requires `metrics.enabled` to be `true` and `metrics.prometheusRule.rules`) | `false` |
| `metrics.prometheusRule.namespace` | Namespace for the PrometheusRule Resource (defaults to the Release Namespace) | `""` |
| `metrics.prometheusRule.additionalLabels` | Additional labels that can be used so PrometheusRule will be discovered by Prometheus | `{}` |
| `metrics.prometheusRule.rules` | Prometheus Rule definitions | `[]` |
### Init Container Parameters
@@ -664,7 +668,7 @@ $ helm delete --purge my-release
| `volumePermissions.enabled` | Enable init container that changes volume permissions in the data directory (for cases where the default k8s `runAsUser` and `fsUser` values do not work) | `false` |
| `volumePermissions.image.registry` | Init container volume-permissions image registry | `docker.io` |
| `volumePermissions.image.repository` | Init container volume-permissions image name | `bitnami/bitnami-shell` |
| `volumePermissions.image.tag` | Init container volume-permissions image tag | `10-debian-10-r415` |
| `volumePermissions.image.tag` | Init container volume-permissions image tag | `10-debian-10-r432` |
| `volumePermissions.image.pullPolicy` | Init container volume-permissions image pull policy | `IfNotPresent` |
| `volumePermissions.image.pullSecrets` | Init container volume-permissions image pull secrets | `[]` |
| `volumePermissions.resources.limits` | The resources limits for the container | `{}` |
@@ -672,7 +676,7 @@ $ helm delete --purge my-release
| `sysctlImage.enabled` | Enable kernel settings modifier image | `true` |
| `sysctlImage.registry` | Kernel settings modifier image registry | `docker.io` |
| `sysctlImage.repository` | Kernel settings modifier image repository | `bitnami/bitnami-shell` |
| `sysctlImage.tag` | Kernel settings modifier image tag | `10-debian-10-r415` |
| `sysctlImage.tag` | Kernel settings modifier image tag | `10-debian-10-r432` |
| `sysctlImage.pullPolicy` | Kernel settings modifier image pull policy | `IfNotPresent` |
| `sysctlImage.pullSecrets` | Kernel settings modifier image pull secrets | `[]` |
| `sysctlImage.resources.limits` | The resources limits for the container | `{}` |

View File

@@ -0,0 +1,22 @@
{{- if and .Values.metrics.enabled .Values.metrics.prometheusRule.enabled }}
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
name: {{ include "common.names.fullname" . }}
namespace: {{ default .Release.Namespace .Values.metrics.prometheusRule.namespace | quote }}
labels: {{- include "common.labels.standard" . | nindent 4 }}
app.kubernetes.io/component: metrics
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
{{- if .Values.metrics.prometheusRule.additionalLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.metrics.prometheusRule.additionalLabels "context" $ ) | nindent 4 }}
{{- end }}
{{- if .Values.commonAnnotations }}
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
spec:
groups:
- name: {{ include "common.names.fullname" . }}
rules: {{- include "common.tplvalues.render" ( dict "value" .Values.metrics.prometheusRule.rules "context" $ ) | nindent 6 }}
{{- end }}

View File

@@ -2290,6 +2290,30 @@ metrics:
## @param metrics.serviceMonitor.honorLabels honorLabels chooses the metric's labels on collisions with target labels
##
honorLabels: false
## Prometheus Operator PrometheusRule configuration
##
prometheusRule:
## @param metrics.prometheusRule.enabled Creates a Prometheus Operator PrometheusRule (also requires `metrics.enabled` to be `true` and `metrics.prometheusRule.rules`)
##
enabled: false
## @param metrics.prometheusRule.namespace Namespace for the PrometheusRule Resource (defaults to the Release Namespace)
##
namespace: ""
## @param metrics.prometheusRule.additionalLabels Additional labels that can be used so PrometheusRule will be discovered by Prometheus
##
additionalLabels: {}
## @param metrics.prometheusRule.rules Prometheus Rule definitions
# - alert: es cluster error
# annotations:
# summary: "es cluster error"
# description: "es cluster errorcluster state {{`{{`}} $labels.color {{`}}`}}"
# expr: elasticsearch_cluster_health_status{color="red"} ==1 or elasticsearch_cluster_health_status{color="yellow"} ==1
# for: 1m
# labels:
# severity: critical
# group: PaaS
##
rules: []
## @section Init Container Parameters