Files
kube-forge/internal/resources/templates/helm-apps/releases/observability/loki.yml.tmpl

201 lines
7.5 KiB
Cheetah

- name: loki
namespace: observability
create_namespace: true
chart_ref: {{ .Modules.Observability.Logging.Loki.ChartRef }}
chart_version: {{ .Modules.Observability.Logging.Loki.ChartVersion }}
{{- if and .Modules.Observability.Enabled .Modules.Observability.Logging.Enabled }}
release_state: "present"
{{- else }}
release_state: "absent"
{{- end }}
values:
loki:
image:
registry: {{ .Modules.Observability.Logging.Loki.Registry }}
repository: {{ .Modules.Observability.Logging.Loki.Image }}
tag: {{ .Modules.Observability.Logging.Loki.Tag }}
podAnnotations:
app.kubernetes.io/component: "loki"
auth_enabled: false
commonConfig:
replication_factor: 1
storage:
type: 'filesystem'
frontend:
max_outstanding_per_tenant: 10000
limits_config:
reject_old_samples: false
split_queries_by_interval: 15m
max_query_parallelism: 32
max_query_series: 10000
retention_period: {{ .Modules.Observability.Logging.Loki.Persistence.Retention }}
compactor:
compaction_interval: 10m
retention_enabled: true
retention_delete_delay: 2h
querier:
max_concurrent: 2048
query_scheduler:
max_outstanding_requests_per_tenant: 10000
rulerConfig:
storage:
type: local
local:
directory: /var/loki/rules
rule_path: /tmp/rules
alertmanager_url: {{ .Modules.Observability.Logging.Loki.AlertManagerUrl }}
singleBinary:
replicas: 1
extraVolumes:
- name: loki-default-rules
configMap:
name: loki-default-alerting-rules
extraVolumeMounts:
- name: loki-default-rules
mountPath: /var/loki/rules
write:
persistence:
volumeClaimsEnabled: true
storageClass: "{{ .Modules.Observability.Logging.Loki.Persistence.StorageClass }}"
size: {{ .Modules.Observability.Logging.Loki.Persistence.StorageSize }}
test:
enabled: false
gateway:
enabled: false
monitoring:
selfMonitoring:
enabled: false
grafanaAgent:
installOperator: false
lokiCanary:
enabled: false
rules:
enabled: true
alerting: true
additionalGroups: {}
extraObjects:
- apiVersion: v1
kind: ConfigMap
metadata:
name: loki-default-alerting-rules
labels:
loki_rule: ""
data:
loki-default-alerting-rules.yaml: |-
groups:
{{- .Modules.Observability.Logging.Loki.AdditionalRulesGroups | toString | nindent 14 -}}
- name: kube-events-alerts
rules:
- alert: FailedEventsOccured
expr: |
count(rate({logs_type="kube-events"} | json reason="reason", event_type="event_type" | event_type = `Warning` | reason = `Failed` [1h])) > 0
for: 1m
labels:
severity: critical
annotations:
alertname: FailedEventsOccured
instance: kube-cluster
jobName: kube_events
summary: Failed events occured in cluster
addDefaultUrl: "true"
- alert: OOMKilledEventsOccured
expr: |
count(rate({logs_type="kube-events"} | json reason="reason", event_type="event_type" | event_type = `Warning` | reason = `OOMKilled` [1h])) > 0
for: 1m
labels:
severity: critical
annotations:
alertname: OOMKilledEventsOccured
instance: kube-cluster
jobName: kube_events
summary: OOMKilled events occured in cluster
addDefaultUrl: "true"
- alert: EvictedEventsOccured
expr: |
count(rate({logs_type="kube-events"} | json reason="reason", event_type="event_type" | event_type = `Warning` | reason = `Evicted` [1h])) > 0
for: 1m
labels:
severity: critical
annotations:
alertname: EvictedEventsOccured
instance: kube-cluster
jobName: kube_events
summary: Evicted events occured in cluster
addDefaultUrl: "true"
- alert: ImagePullBackOffEventsOccured
expr: |
count(rate({logs_type="kube-events"} | json reason="reason", event_type="event_type" | event_type = `Warning` | reason = `ImagePullBackOff` [1h])) > 0
for: 1m
labels:
severity: critical
annotations:
alertname: ImagePullBackOffEventsOccured
instance: kube-cluster
jobName: kube_events
summary: ImagePullBackOff events occured in cluster
addDefaultUrl: "true"
- alert: BackOffEventsOccured
expr: |
count(rate({logs_type="kube-events"} | json reason="reason", event_type="event_type" | event_type = `Warning` | reason = `BackOff` [1h])) > 0
for: 1m
labels:
severity: critical
annotations:
alertname: BackOffEventsOccured
instance: kube-cluster
jobName: kube_events
summary: BackOff events occured in cluster
addDefaultUrl: "true"
sidecar:
rules:
enabled: true
# -- Label that the configmaps/secrets with rules will be marked with.
label: loki_rule
# -- Label value that the configmaps/secrets with rules will be set to.
labelValue: ""
# -- Folder into which the rules will be placed.
folder: /var/loki/rules
# -- Comma separated list of namespaces. If specified, the sidecar will search for config-maps/secrets inside these namespaces.
# Otherwise the namespace in which the sidecar is running will be used.
# It's also possible to specify 'ALL' to search in all namespaces.
searchNamespace: 'ALL'
# -- Method to use to detect ConfigMap changes. With WATCH the sidecar will do a WATCH request, with SLEEP it will list all ConfigMaps, then sleep for 60 seconds.
watchMethod: WATCH
# -- Search in configmap, secret, or both.
resource: both
# -- Absolute path to the shell script to execute after a configmap or secret has been reloaded.
script: null
# -- WatchServerTimeout: request to the server, asking it to cleanly close the connection after that.
# defaults to 60sec; much higher values like 3600 seconds (1h) are feasible for non-Azure K8S.
watchServerTimeout: 60
#
# -- WatchClientTimeout: is a client-side timeout, configuring your local socket.
# If you have a network outage dropping all packets with no RST/FIN,
# this is how long your client waits before realizing & dropping the connection.
# Defaults to 66sec.
watchClientTimeout: 60
# -- Log level of the sidecar container.
logLevel: INFO