From 7b99041191594d7b43824e243eb264dad0f9293e Mon Sep 17 00:00:00 2001 From: Bastian Eicher Date: Wed, 10 Jul 2024 08:51:14 +0200 Subject: [PATCH] Removed support for generating both Loki ConfigMap and custom resource at the same time --- charts/generic-service/README.md | 2 +- .../ci/log-alerts-both-values.yaml | 18 --------- .../ci/log-alerts-operator-values.yaml | 2 - .../templates/alerts-logs.yaml | 38 ++++++------------- charts/generic-service/values.schema.json | 2 +- 5 files changed, 14 insertions(+), 48 deletions(-) delete mode 100644 charts/generic-service/ci/log-alerts-both-values.yaml diff --git a/charts/generic-service/README.md b/charts/generic-service/README.md index d9f25be..1b994e0 100644 --- a/charts/generic-service/README.md +++ b/charts/generic-service/README.md @@ -172,7 +172,7 @@ app: | `alerting.logs.levels.*.severity` | `warning` | The severity of the alert when the maximum count of a messages of a specific log level is exceeded | | `alerting.logs.levels.lokiConfigMap.label` | `loki_rule` | The label attached to the ConfigMap holding the Loki Rules | | `alerting.logs.levels.lokiConfigMap.labelValue` | `""` | The value of the label attached to the Loki Rule ConfigMap | -| `alerting.logs.createLokiRule` | `false` | Whether to create a `LokiRule` custom resource for log alerting | +| `alerting.logs.createLokiRule` | `false` | Whether to create a `LokiRule` custom resource of a ConfigMap for log alerting | | `alerting.custom.*.metric` | __required if used__ | The name of the Prometheus metric exposed by the service | | `alerting.custom.*.labelMatchers` | | Prometheus label matchers to use for filtering the metric (e.g., `some_key="some_value"`) | | `alerting.custom.*.aggregate` | __required if used__ | The aggregate function to use to combine metric values from multiple replicas (e.g., `max` or `sum`) | diff --git a/charts/generic-service/ci/log-alerts-both-values.yaml b/charts/generic-service/ci/log-alerts-both-values.yaml deleted file mode 100644 index b32e29e..0000000 --- a/charts/generic-service/ci/log-alerts-both-values.yaml +++ /dev/null @@ -1,18 +0,0 @@ -# log alerts test - -image: - repository: jwilder/whoami - tag: latest - -alerting: - enabled: true - logs: - levels: - warning: - severity: Warning - maxCount: 10 - error: {} - createLokiRule: true - lokiConfigMap: - label: "loki_rule" - labelValue: "" diff --git a/charts/generic-service/ci/log-alerts-operator-values.yaml b/charts/generic-service/ci/log-alerts-operator-values.yaml index f4acbbf..f1b13ba 100644 --- a/charts/generic-service/ci/log-alerts-operator-values.yaml +++ b/charts/generic-service/ci/log-alerts-operator-values.yaml @@ -12,6 +12,4 @@ alerting: severity: Warning maxCount: 10 error: {} - # setting this to an empty object (`{}`) will not suppress cm creation, use `null` instead - lokiConfigMap: null createLokiRule: true diff --git a/charts/generic-service/templates/alerts-logs.yaml b/charts/generic-service/templates/alerts-logs.yaml index 2bac04e..9581a6c 100644 --- a/charts/generic-service/templates/alerts-logs.yaml +++ b/charts/generic-service/templates/alerts-logs.yaml @@ -1,6 +1,14 @@ -{{- if and .Values.alerting.enabled .Values.alerting.logs.levels }} -{{- if .Values.alerting.logs.lokiConfigMap }} ---- +{{- if and (and .Values.alerting.enabled .Values.alerting.logs.levels) (or .Values.alerting.logs.createLokiRule .Values.alerting.logs.lokiConfigMap) }} + +{{- if .Values.alerting.logs.createLokiRule }} +apiVersion: logging.opsgy.com/v1beta1 +kind: LokiRule +metadata: + name: {{ include "generic-service.fullname" . }} + labels: {{- include "generic-service.top-level-labels" . | nindent 4 }} + +spec: +{{- else }} apiVersion: v1 kind: ConfigMap metadata: @@ -10,6 +18,7 @@ metadata: data: '{{ .Release.Namespace }}.{{ .Release.Name }}.yaml': | +{{- end }} groups: - name: {{ include "generic-service.fullname" . }}.logs rules: @@ -23,26 +32,3 @@ data: description: '{{ $.Release.Name }} reported {{"{{ $value }}"}} {{ $level }} log messages in the last {{ $.Values.alerting.logs.countInterval }}.' {{- end }} {{- end }} -{{- if .Values.alerting.logs.createLokiRule }} ---- -apiVersion: logging.opsgy.com/v1beta1 -kind: LokiRule -metadata: - name: {{ include "generic-service.fullname" . }} - labels: {{- include "generic-service.top-level-labels" . | nindent 4 }} - -spec: - groups: - - name: {{ include "generic-service.fullname" . }}.logs - rules: - {{- range $level, $options := .Values.alerting.logs.levels }} - - alert: LogMessages{{ $level | title }} - expr: sum(count_over_time(({namespace="{{ $.Release.Namespace }}", container="{{ include "generic-service.fullname" $ }}", {{ $.Values.alerting.logs.levelLabel }}="{{ $level }}"})[{{ $.Values.alerting.logs.countInterval }}])) > {{ $options.maxCount | default 0 }} - for: 1s - labels: {{- include "generic-service.alert-labels" $ | nindent 12 }} {{ $options.severity | default "warning" }} - topic: logs - annotations: {{- include "generic-service.alert-annotations" $ | nindent 12 }} {{ $level }} logs - description: '{{ $.Release.Name }} reported {{"{{ $value }}"}} {{ $level }} log messages in the last {{ $.Values.alerting.logs.countInterval }}.' - {{- end }} -{{- end }} -{{- end }} diff --git a/charts/generic-service/values.schema.json b/charts/generic-service/values.schema.json index cbcb5c0..9ba9699 100644 --- a/charts/generic-service/values.schema.json +++ b/charts/generic-service/values.schema.json @@ -993,7 +993,7 @@ "createLokiRule": { "type": "boolean", "default": false, - "description": "Whether to create a LokiRule custom resource for log alerting" + "description": "Whether to create a LokiRule custom resource instead of a ConfigMap for log alerting" } }, "additionalProperties": false