init commit
This commit is contained in:
@@ -0,0 +1,25 @@
|
|||||||
|
# Grafana Alerting Provisioning
|
||||||
|
|
||||||
|
Dieses Verzeichnis enthaelt die aktuell in Grafana gepflegten Traefik-Alerts als file-based Provisioning-Dateien.
|
||||||
|
|
||||||
|
## Dateien
|
||||||
|
|
||||||
|
- `traefik-alert-rules.yaml`: Export der Rule Group `traefik-prometheus` im Folder `Traefik Alerts`
|
||||||
|
- `contact-points.n8n.yaml`: Kontaktpunkt `n8n` als Provisioning-Datei
|
||||||
|
- `grafana-alerting-traefik.configmap.yaml`: Kubernetes-ConfigMap mit beiden Dateien
|
||||||
|
- `kube-prometheus-stack-values-alerting-snippet.yaml`: Helm-Values-Snippet zum Einhaengen der ConfigMap in Grafana
|
||||||
|
|
||||||
|
## Wichtiger Hinweis
|
||||||
|
|
||||||
|
Grafana exportiert Secret-Felder wie Webhook-Passwoerter nur redigiert. Ersetze deshalb in `contact-points.n8n.yaml` und in der ConfigMap den Platzhalter `__REPLACE_WITH_N8N_WEBHOOK_PASSWORD__` durch das echte Secret.
|
||||||
|
|
||||||
|
## Nutzung
|
||||||
|
|
||||||
|
1. Passe den Passwort-Platzhalter an.
|
||||||
|
2. Wende die ConfigMap an.
|
||||||
|
3. Erweitere die `kube-prometheus-stack`-Values um das Mount-Snippet.
|
||||||
|
4. Rolle Grafana neu aus oder fuehre ein Helm-Upgrade durch.
|
||||||
|
|
||||||
|
Die Regeln referenzieren den Receiver direkt ueber `notification_settings.receiver: n8n`, daher ist kein separater Policy-Export notwendig.
|
||||||
|
|
||||||
|
File-provisioned Alerting-Ressourcen sind in der Grafana-UI anschliessend read-only.
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
apiVersion: 1
|
||||||
|
contactPoints:
|
||||||
|
- orgId: 1
|
||||||
|
name: n8n
|
||||||
|
receivers:
|
||||||
|
- uid: dfjuxb8oyjh8ge
|
||||||
|
type: webhook
|
||||||
|
settings:
|
||||||
|
httpMethod: POST
|
||||||
|
url: https://n8n.apps.rsitservice.de/webhook/alerting
|
||||||
|
password: __REPLACE_WITH_N8N_WEBHOOK_PASSWORD__
|
||||||
|
disableResolveMessage: false
|
||||||
@@ -0,0 +1,507 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: grafana-alerting-traefik
|
||||||
|
namespace: kube-mon
|
||||||
|
data:
|
||||||
|
traefik-alert-rules.yaml: |
|
||||||
|
apiVersion: 1
|
||||||
|
groups:
|
||||||
|
- orgId: 1
|
||||||
|
name: traefik-prometheus
|
||||||
|
folder: Traefik Alerts
|
||||||
|
interval: 1m
|
||||||
|
rules:
|
||||||
|
- uid: traefik-instance-down
|
||||||
|
title: Traefik Instance Down
|
||||||
|
condition: C
|
||||||
|
data:
|
||||||
|
- refId: A
|
||||||
|
relativeTimeRange:
|
||||||
|
from: 600
|
||||||
|
to: 0
|
||||||
|
datasourceUid: prometheus
|
||||||
|
model:
|
||||||
|
editorMode: code
|
||||||
|
expr: max by (pod, instance) (up{job="traefik"} == 0)
|
||||||
|
hide: false
|
||||||
|
intervalMs: 1000
|
||||||
|
maxDataPoints: 43200
|
||||||
|
range: true
|
||||||
|
refId: A
|
||||||
|
- refId: B
|
||||||
|
relativeTimeRange:
|
||||||
|
from: 600
|
||||||
|
to: 0
|
||||||
|
datasourceUid: __expr__
|
||||||
|
model:
|
||||||
|
conditions:
|
||||||
|
- evaluator:
|
||||||
|
params: []
|
||||||
|
type: gt
|
||||||
|
operator:
|
||||||
|
type: and
|
||||||
|
query:
|
||||||
|
params:
|
||||||
|
- B
|
||||||
|
reducer:
|
||||||
|
params: []
|
||||||
|
type: last
|
||||||
|
type: query
|
||||||
|
datasource:
|
||||||
|
type: __expr__
|
||||||
|
uid: __expr__
|
||||||
|
expression: A
|
||||||
|
hide: false
|
||||||
|
intervalMs: 1000
|
||||||
|
maxDataPoints: 43200
|
||||||
|
reducer: last
|
||||||
|
refId: B
|
||||||
|
settings:
|
||||||
|
mode: dropNN
|
||||||
|
type: reduce
|
||||||
|
- refId: C
|
||||||
|
relativeTimeRange:
|
||||||
|
from: 600
|
||||||
|
to: 0
|
||||||
|
datasourceUid: __expr__
|
||||||
|
model:
|
||||||
|
conditions:
|
||||||
|
- evaluator:
|
||||||
|
params:
|
||||||
|
- 0.5
|
||||||
|
type: gt
|
||||||
|
operator:
|
||||||
|
type: and
|
||||||
|
query:
|
||||||
|
params:
|
||||||
|
- C
|
||||||
|
reducer:
|
||||||
|
params: []
|
||||||
|
type: last
|
||||||
|
type: query
|
||||||
|
datasource:
|
||||||
|
type: __expr__
|
||||||
|
uid: __expr__
|
||||||
|
expression: B
|
||||||
|
hide: false
|
||||||
|
intervalMs: 1000
|
||||||
|
maxDataPoints: 43200
|
||||||
|
refId: C
|
||||||
|
type: threshold
|
||||||
|
dashboardUid: traefik-overview
|
||||||
|
panelId: 5
|
||||||
|
noDataState: OK
|
||||||
|
execErrState: Error
|
||||||
|
for: 5m
|
||||||
|
annotations:
|
||||||
|
__dashboardUid__: traefik-overview
|
||||||
|
__panelId__: "5"
|
||||||
|
description: Die Traefik-Instanz {{ $labels.pod }} auf {{ $labels.instance }} liefert seit 5 Minuten keine erfolgreichen Prometheus-Scrapes.
|
||||||
|
summary: Traefik-Instanz {{ $labels.pod }} ist nicht erreichbar
|
||||||
|
labels:
|
||||||
|
category: availability
|
||||||
|
cluster: microk8s
|
||||||
|
severity: critical
|
||||||
|
source: traefik
|
||||||
|
team: ops
|
||||||
|
isPaused: false
|
||||||
|
notification_settings:
|
||||||
|
receiver: n8n
|
||||||
|
- uid: traefik-websecure-5xx-ratio-high
|
||||||
|
title: Traefik Websecure 5xx Ratio High
|
||||||
|
condition: C
|
||||||
|
data:
|
||||||
|
- refId: A
|
||||||
|
relativeTimeRange:
|
||||||
|
from: 600
|
||||||
|
to: 0
|
||||||
|
datasourceUid: prometheus
|
||||||
|
model:
|
||||||
|
editorMode: code
|
||||||
|
expr: (100 * sum by (entrypoint) (rate(traefik_entrypoint_requests_total{entrypoint="websecure",code=~"5.."}[5m])) / clamp_min(sum by (entrypoint) (rate(traefik_entrypoint_requests_total{entrypoint="websecure"}[5m])), 0.001)) and on(entrypoint) (sum by (entrypoint) (rate(traefik_entrypoint_requests_total{entrypoint="websecure"}[5m])) > 0.3)
|
||||||
|
hide: false
|
||||||
|
intervalMs: 1000
|
||||||
|
maxDataPoints: 43200
|
||||||
|
range: true
|
||||||
|
refId: A
|
||||||
|
- refId: B
|
||||||
|
relativeTimeRange:
|
||||||
|
from: 600
|
||||||
|
to: 0
|
||||||
|
datasourceUid: __expr__
|
||||||
|
model:
|
||||||
|
conditions:
|
||||||
|
- evaluator:
|
||||||
|
params: []
|
||||||
|
type: gt
|
||||||
|
operator:
|
||||||
|
type: and
|
||||||
|
query:
|
||||||
|
params:
|
||||||
|
- B
|
||||||
|
reducer:
|
||||||
|
params: []
|
||||||
|
type: last
|
||||||
|
type: query
|
||||||
|
datasource:
|
||||||
|
type: __expr__
|
||||||
|
uid: __expr__
|
||||||
|
expression: A
|
||||||
|
hide: false
|
||||||
|
intervalMs: 1000
|
||||||
|
maxDataPoints: 43200
|
||||||
|
reducer: last
|
||||||
|
refId: B
|
||||||
|
settings:
|
||||||
|
mode: dropNN
|
||||||
|
type: reduce
|
||||||
|
- refId: C
|
||||||
|
relativeTimeRange:
|
||||||
|
from: 600
|
||||||
|
to: 0
|
||||||
|
datasourceUid: __expr__
|
||||||
|
model:
|
||||||
|
conditions:
|
||||||
|
- evaluator:
|
||||||
|
params:
|
||||||
|
- 15
|
||||||
|
type: gt
|
||||||
|
operator:
|
||||||
|
type: and
|
||||||
|
query:
|
||||||
|
params:
|
||||||
|
- C
|
||||||
|
reducer:
|
||||||
|
params: []
|
||||||
|
type: last
|
||||||
|
type: query
|
||||||
|
datasource:
|
||||||
|
type: __expr__
|
||||||
|
uid: __expr__
|
||||||
|
expression: B
|
||||||
|
hide: false
|
||||||
|
intervalMs: 1000
|
||||||
|
maxDataPoints: 43200
|
||||||
|
refId: C
|
||||||
|
type: threshold
|
||||||
|
dashboardUid: traefik-overview
|
||||||
|
panelId: 6
|
||||||
|
noDataState: OK
|
||||||
|
execErrState: Error
|
||||||
|
for: 10m
|
||||||
|
annotations:
|
||||||
|
__dashboardUid__: traefik-overview
|
||||||
|
__panelId__: "6"
|
||||||
|
description: Die 5xx-Quote auf {{ $labels.entrypoint }} liegt seit 10 Minuten ueber 15% (aktuell {{ printf "%.2f" $values.B.Value }}%).
|
||||||
|
summary: Traefik Websecure 5xx-Quote ist erhoeht
|
||||||
|
labels:
|
||||||
|
category: errors
|
||||||
|
cluster: microk8s
|
||||||
|
severity: warning
|
||||||
|
source: traefik
|
||||||
|
team: ops
|
||||||
|
isPaused: false
|
||||||
|
notification_settings:
|
||||||
|
receiver: n8n
|
||||||
|
- uid: traefik-router-5xx-ratio-critical
|
||||||
|
title: Traefik Router 5xx Ratio Critical
|
||||||
|
condition: C
|
||||||
|
data:
|
||||||
|
- refId: A
|
||||||
|
relativeTimeRange:
|
||||||
|
from: 600
|
||||||
|
to: 0
|
||||||
|
datasourceUid: prometheus
|
||||||
|
model:
|
||||||
|
editorMode: code
|
||||||
|
expr: (100 * sum by (router) (rate(traefik_router_requests_total{router!~"ping@internal|prometheus@internal",code=~"5.."}[5m])) / clamp_min(sum by (router) (rate(traefik_router_requests_total{router!~"ping@internal|prometheus@internal"}[5m])), 0.001)) and on(router) (sum by (router) (rate(traefik_router_requests_total{router!~"ping@internal|prometheus@internal"}[5m])) > 0.1)
|
||||||
|
hide: false
|
||||||
|
intervalMs: 1000
|
||||||
|
maxDataPoints: 43200
|
||||||
|
range: true
|
||||||
|
refId: A
|
||||||
|
- refId: B
|
||||||
|
relativeTimeRange:
|
||||||
|
from: 600
|
||||||
|
to: 0
|
||||||
|
datasourceUid: __expr__
|
||||||
|
model:
|
||||||
|
conditions:
|
||||||
|
- evaluator:
|
||||||
|
params: []
|
||||||
|
type: gt
|
||||||
|
operator:
|
||||||
|
type: and
|
||||||
|
query:
|
||||||
|
params:
|
||||||
|
- B
|
||||||
|
reducer:
|
||||||
|
params: []
|
||||||
|
type: last
|
||||||
|
type: query
|
||||||
|
datasource:
|
||||||
|
type: __expr__
|
||||||
|
uid: __expr__
|
||||||
|
expression: A
|
||||||
|
hide: false
|
||||||
|
intervalMs: 1000
|
||||||
|
maxDataPoints: 43200
|
||||||
|
reducer: last
|
||||||
|
refId: B
|
||||||
|
settings:
|
||||||
|
mode: dropNN
|
||||||
|
type: reduce
|
||||||
|
- refId: C
|
||||||
|
relativeTimeRange:
|
||||||
|
from: 600
|
||||||
|
to: 0
|
||||||
|
datasourceUid: __expr__
|
||||||
|
model:
|
||||||
|
conditions:
|
||||||
|
- evaluator:
|
||||||
|
params:
|
||||||
|
- 50
|
||||||
|
type: gt
|
||||||
|
operator:
|
||||||
|
type: and
|
||||||
|
query:
|
||||||
|
params:
|
||||||
|
- C
|
||||||
|
reducer:
|
||||||
|
params: []
|
||||||
|
type: last
|
||||||
|
type: query
|
||||||
|
datasource:
|
||||||
|
type: __expr__
|
||||||
|
uid: __expr__
|
||||||
|
expression: B
|
||||||
|
hide: false
|
||||||
|
intervalMs: 1000
|
||||||
|
maxDataPoints: 43200
|
||||||
|
refId: C
|
||||||
|
type: threshold
|
||||||
|
dashboardUid: traefik-overview
|
||||||
|
panelId: 11
|
||||||
|
noDataState: OK
|
||||||
|
execErrState: Error
|
||||||
|
for: 10m
|
||||||
|
annotations:
|
||||||
|
__dashboardUid__: traefik-overview
|
||||||
|
__panelId__: "11"
|
||||||
|
description: Der Router {{ $labels.router }} liegt seit 10 Minuten ueber 50% 5xx-Quote bei relevanter Last (aktuell {{ printf "%.2f" $values.B.Value }}%).
|
||||||
|
summary: Traefik-Router {{ $labels.router }} produziert viele 5xx
|
||||||
|
labels:
|
||||||
|
category: errors
|
||||||
|
cluster: microk8s
|
||||||
|
severity: critical
|
||||||
|
source: traefik
|
||||||
|
team: ops
|
||||||
|
isPaused: false
|
||||||
|
notification_settings:
|
||||||
|
receiver: n8n
|
||||||
|
- uid: traefik-router-p95-latency-high
|
||||||
|
title: Traefik Router P95 Latency High
|
||||||
|
condition: C
|
||||||
|
data:
|
||||||
|
- refId: A
|
||||||
|
relativeTimeRange:
|
||||||
|
from: 600
|
||||||
|
to: 0
|
||||||
|
datasourceUid: prometheus
|
||||||
|
model:
|
||||||
|
editorMode: code
|
||||||
|
expr: (1000 * histogram_quantile(0.95, sum by (router, le) (rate(traefik_router_request_duration_seconds_bucket{router!~"ping@internal|prometheus@internal"}[5m])))) and on(router) (sum by (router) (rate(traefik_router_requests_total{router!~"ping@internal|prometheus@internal"}[5m])) > 0.05)
|
||||||
|
hide: false
|
||||||
|
intervalMs: 1000
|
||||||
|
maxDataPoints: 43200
|
||||||
|
range: true
|
||||||
|
refId: A
|
||||||
|
- refId: B
|
||||||
|
relativeTimeRange:
|
||||||
|
from: 600
|
||||||
|
to: 0
|
||||||
|
datasourceUid: __expr__
|
||||||
|
model:
|
||||||
|
conditions:
|
||||||
|
- evaluator:
|
||||||
|
params: []
|
||||||
|
type: gt
|
||||||
|
operator:
|
||||||
|
type: and
|
||||||
|
query:
|
||||||
|
params:
|
||||||
|
- B
|
||||||
|
reducer:
|
||||||
|
params: []
|
||||||
|
type: last
|
||||||
|
type: query
|
||||||
|
datasource:
|
||||||
|
type: __expr__
|
||||||
|
uid: __expr__
|
||||||
|
expression: A
|
||||||
|
hide: false
|
||||||
|
intervalMs: 1000
|
||||||
|
maxDataPoints: 43200
|
||||||
|
reducer: last
|
||||||
|
refId: B
|
||||||
|
settings:
|
||||||
|
mode: dropNN
|
||||||
|
type: reduce
|
||||||
|
- refId: C
|
||||||
|
relativeTimeRange:
|
||||||
|
from: 600
|
||||||
|
to: 0
|
||||||
|
datasourceUid: __expr__
|
||||||
|
model:
|
||||||
|
conditions:
|
||||||
|
- evaluator:
|
||||||
|
params:
|
||||||
|
- 3000
|
||||||
|
type: gt
|
||||||
|
operator:
|
||||||
|
type: and
|
||||||
|
query:
|
||||||
|
params:
|
||||||
|
- C
|
||||||
|
reducer:
|
||||||
|
params: []
|
||||||
|
type: last
|
||||||
|
type: query
|
||||||
|
datasource:
|
||||||
|
type: __expr__
|
||||||
|
uid: __expr__
|
||||||
|
expression: B
|
||||||
|
hide: false
|
||||||
|
intervalMs: 1000
|
||||||
|
maxDataPoints: 43200
|
||||||
|
refId: C
|
||||||
|
type: threshold
|
||||||
|
dashboardUid: traefik-overview
|
||||||
|
panelId: 44
|
||||||
|
noDataState: OK
|
||||||
|
execErrState: Error
|
||||||
|
for: 10m
|
||||||
|
annotations:
|
||||||
|
__dashboardUid__: traefik-overview
|
||||||
|
__panelId__: "44"
|
||||||
|
description: Der Router {{ $labels.router }} hat seit 10 Minuten eine p95-Latenz ueber 3000 ms (aktuell {{ printf "%.0f" $values.B.Value }} ms).
|
||||||
|
summary: Traefik-Router {{ $labels.router }} ist langsam
|
||||||
|
labels:
|
||||||
|
category: latency
|
||||||
|
cluster: microk8s
|
||||||
|
severity: warning
|
||||||
|
source: traefik
|
||||||
|
team: ops
|
||||||
|
isPaused: false
|
||||||
|
notification_settings:
|
||||||
|
receiver: n8n
|
||||||
|
- uid: traefik-cert-expiry-soon
|
||||||
|
title: Traefik Certificate Expiry Soon
|
||||||
|
condition: C
|
||||||
|
data:
|
||||||
|
- refId: A
|
||||||
|
relativeTimeRange:
|
||||||
|
from: 600
|
||||||
|
to: 0
|
||||||
|
datasourceUid: prometheus
|
||||||
|
model:
|
||||||
|
editorMode: code
|
||||||
|
expr: (max by (cn) (traefik_tls_certs_not_after) - time()) / 86400
|
||||||
|
hide: false
|
||||||
|
intervalMs: 1000
|
||||||
|
maxDataPoints: 43200
|
||||||
|
range: true
|
||||||
|
refId: A
|
||||||
|
- refId: B
|
||||||
|
relativeTimeRange:
|
||||||
|
from: 600
|
||||||
|
to: 0
|
||||||
|
datasourceUid: __expr__
|
||||||
|
model:
|
||||||
|
conditions:
|
||||||
|
- evaluator:
|
||||||
|
params: []
|
||||||
|
type: gt
|
||||||
|
operator:
|
||||||
|
type: and
|
||||||
|
query:
|
||||||
|
params:
|
||||||
|
- B
|
||||||
|
reducer:
|
||||||
|
params: []
|
||||||
|
type: last
|
||||||
|
type: query
|
||||||
|
datasource:
|
||||||
|
type: __expr__
|
||||||
|
uid: __expr__
|
||||||
|
expression: A
|
||||||
|
hide: false
|
||||||
|
intervalMs: 1000
|
||||||
|
maxDataPoints: 43200
|
||||||
|
reducer: last
|
||||||
|
refId: B
|
||||||
|
settings:
|
||||||
|
mode: dropNN
|
||||||
|
type: reduce
|
||||||
|
- refId: C
|
||||||
|
relativeTimeRange:
|
||||||
|
from: 600
|
||||||
|
to: 0
|
||||||
|
datasourceUid: __expr__
|
||||||
|
model:
|
||||||
|
conditions:
|
||||||
|
- evaluator:
|
||||||
|
params:
|
||||||
|
- 30
|
||||||
|
type: lt
|
||||||
|
operator:
|
||||||
|
type: and
|
||||||
|
query:
|
||||||
|
params:
|
||||||
|
- C
|
||||||
|
reducer:
|
||||||
|
params: []
|
||||||
|
type: last
|
||||||
|
type: query
|
||||||
|
datasource:
|
||||||
|
type: __expr__
|
||||||
|
uid: __expr__
|
||||||
|
expression: B
|
||||||
|
hide: false
|
||||||
|
intervalMs: 1000
|
||||||
|
maxDataPoints: 43200
|
||||||
|
refId: C
|
||||||
|
type: threshold
|
||||||
|
dashboardUid: traefik-overview
|
||||||
|
panelId: 46
|
||||||
|
noDataState: OK
|
||||||
|
execErrState: Error
|
||||||
|
for: 1h
|
||||||
|
annotations:
|
||||||
|
__dashboardUid__: traefik-overview
|
||||||
|
__panelId__: "46"
|
||||||
|
description: Das Zertifikat {{ $labels.cn }} laeuft in weniger als 30 Tagen ab (aktuell {{ printf "%.1f" $values.B.Value }} Tage Restlaufzeit).
|
||||||
|
summary: Traefik-Zertifikat {{ $labels.cn }} laeuft bald ab
|
||||||
|
labels:
|
||||||
|
category: certificate
|
||||||
|
cluster: microk8s
|
||||||
|
severity: warning
|
||||||
|
source: traefik
|
||||||
|
team: ops
|
||||||
|
isPaused: false
|
||||||
|
notification_settings:
|
||||||
|
receiver: n8n
|
||||||
|
contact-points.n8n.yaml: |
|
||||||
|
apiVersion: 1
|
||||||
|
contactPoints:
|
||||||
|
- orgId: 1
|
||||||
|
name: n8n
|
||||||
|
receivers:
|
||||||
|
- uid: dfjuxb8oyjh8ge
|
||||||
|
type: webhook
|
||||||
|
settings:
|
||||||
|
httpMethod: POST
|
||||||
|
url: https://n8n.apps.rsitservice.de/webhook/alerting
|
||||||
|
password: __REPLACE_WITH_N8N_WEBHOOK_PASSWORD__
|
||||||
|
disableResolveMessage: false
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
grafana:
|
||||||
|
extraConfigmapMounts:
|
||||||
|
- name: grafana-alerting-traefik-rules
|
||||||
|
configMap: grafana-alerting-traefik
|
||||||
|
subPath: traefik-alert-rules.yaml
|
||||||
|
mountPath: /etc/grafana/provisioning/alerting/traefik-alert-rules.yaml
|
||||||
|
readOnly: true
|
||||||
|
- name: grafana-alerting-traefik-contact-point
|
||||||
|
configMap: grafana-alerting-traefik
|
||||||
|
subPath: contact-points.n8n.yaml
|
||||||
|
mountPath: /etc/grafana/provisioning/alerting/contact-points.n8n.yaml
|
||||||
|
readOnly: true
|
||||||
@@ -0,0 +1,487 @@
|
|||||||
|
apiVersion: 1
|
||||||
|
groups:
|
||||||
|
- orgId: 1
|
||||||
|
name: traefik-prometheus
|
||||||
|
folder: Traefik Alerts
|
||||||
|
interval: 1m
|
||||||
|
rules:
|
||||||
|
- uid: traefik-instance-down
|
||||||
|
title: Traefik Instance Down
|
||||||
|
condition: C
|
||||||
|
data:
|
||||||
|
- refId: A
|
||||||
|
relativeTimeRange:
|
||||||
|
from: 600
|
||||||
|
to: 0
|
||||||
|
datasourceUid: prometheus
|
||||||
|
model:
|
||||||
|
editorMode: code
|
||||||
|
expr: max by (pod, instance) (up{job="traefik"} == 0)
|
||||||
|
hide: false
|
||||||
|
intervalMs: 1000
|
||||||
|
maxDataPoints: 43200
|
||||||
|
range: true
|
||||||
|
refId: A
|
||||||
|
- refId: B
|
||||||
|
relativeTimeRange:
|
||||||
|
from: 600
|
||||||
|
to: 0
|
||||||
|
datasourceUid: __expr__
|
||||||
|
model:
|
||||||
|
conditions:
|
||||||
|
- evaluator:
|
||||||
|
params: []
|
||||||
|
type: gt
|
||||||
|
operator:
|
||||||
|
type: and
|
||||||
|
query:
|
||||||
|
params:
|
||||||
|
- B
|
||||||
|
reducer:
|
||||||
|
params: []
|
||||||
|
type: last
|
||||||
|
type: query
|
||||||
|
datasource:
|
||||||
|
type: __expr__
|
||||||
|
uid: __expr__
|
||||||
|
expression: A
|
||||||
|
hide: false
|
||||||
|
intervalMs: 1000
|
||||||
|
maxDataPoints: 43200
|
||||||
|
reducer: last
|
||||||
|
refId: B
|
||||||
|
settings:
|
||||||
|
mode: dropNN
|
||||||
|
type: reduce
|
||||||
|
- refId: C
|
||||||
|
relativeTimeRange:
|
||||||
|
from: 600
|
||||||
|
to: 0
|
||||||
|
datasourceUid: __expr__
|
||||||
|
model:
|
||||||
|
conditions:
|
||||||
|
- evaluator:
|
||||||
|
params:
|
||||||
|
- 0.5
|
||||||
|
type: gt
|
||||||
|
operator:
|
||||||
|
type: and
|
||||||
|
query:
|
||||||
|
params:
|
||||||
|
- C
|
||||||
|
reducer:
|
||||||
|
params: []
|
||||||
|
type: last
|
||||||
|
type: query
|
||||||
|
datasource:
|
||||||
|
type: __expr__
|
||||||
|
uid: __expr__
|
||||||
|
expression: B
|
||||||
|
hide: false
|
||||||
|
intervalMs: 1000
|
||||||
|
maxDataPoints: 43200
|
||||||
|
refId: C
|
||||||
|
type: threshold
|
||||||
|
dashboardUid: traefik-overview
|
||||||
|
panelId: 5
|
||||||
|
noDataState: OK
|
||||||
|
execErrState: Error
|
||||||
|
for: 5m
|
||||||
|
annotations:
|
||||||
|
__dashboardUid__: traefik-overview
|
||||||
|
__panelId__: "5"
|
||||||
|
description: Die Traefik-Instanz {{ $labels.pod }} auf {{ $labels.instance }} liefert seit 5 Minuten keine erfolgreichen Prometheus-Scrapes.
|
||||||
|
summary: Traefik-Instanz {{ $labels.pod }} ist nicht erreichbar
|
||||||
|
labels:
|
||||||
|
category: availability
|
||||||
|
cluster: microk8s
|
||||||
|
severity: critical
|
||||||
|
source: traefik
|
||||||
|
team: ops
|
||||||
|
isPaused: false
|
||||||
|
notification_settings:
|
||||||
|
receiver: n8n
|
||||||
|
- uid: traefik-websecure-5xx-ratio-high
|
||||||
|
title: Traefik Websecure 5xx Ratio High
|
||||||
|
condition: C
|
||||||
|
data:
|
||||||
|
- refId: A
|
||||||
|
relativeTimeRange:
|
||||||
|
from: 600
|
||||||
|
to: 0
|
||||||
|
datasourceUid: prometheus
|
||||||
|
model:
|
||||||
|
editorMode: code
|
||||||
|
expr: (100 * sum by (entrypoint) (rate(traefik_entrypoint_requests_total{entrypoint="websecure",code=~"5.."}[5m])) / clamp_min(sum by (entrypoint) (rate(traefik_entrypoint_requests_total{entrypoint="websecure"}[5m])), 0.001)) and on(entrypoint) (sum by (entrypoint) (rate(traefik_entrypoint_requests_total{entrypoint="websecure"}[5m])) > 0.3)
|
||||||
|
hide: false
|
||||||
|
intervalMs: 1000
|
||||||
|
maxDataPoints: 43200
|
||||||
|
range: true
|
||||||
|
refId: A
|
||||||
|
- refId: B
|
||||||
|
relativeTimeRange:
|
||||||
|
from: 600
|
||||||
|
to: 0
|
||||||
|
datasourceUid: __expr__
|
||||||
|
model:
|
||||||
|
conditions:
|
||||||
|
- evaluator:
|
||||||
|
params: []
|
||||||
|
type: gt
|
||||||
|
operator:
|
||||||
|
type: and
|
||||||
|
query:
|
||||||
|
params:
|
||||||
|
- B
|
||||||
|
reducer:
|
||||||
|
params: []
|
||||||
|
type: last
|
||||||
|
type: query
|
||||||
|
datasource:
|
||||||
|
type: __expr__
|
||||||
|
uid: __expr__
|
||||||
|
expression: A
|
||||||
|
hide: false
|
||||||
|
intervalMs: 1000
|
||||||
|
maxDataPoints: 43200
|
||||||
|
reducer: last
|
||||||
|
refId: B
|
||||||
|
settings:
|
||||||
|
mode: dropNN
|
||||||
|
type: reduce
|
||||||
|
- refId: C
|
||||||
|
relativeTimeRange:
|
||||||
|
from: 600
|
||||||
|
to: 0
|
||||||
|
datasourceUid: __expr__
|
||||||
|
model:
|
||||||
|
conditions:
|
||||||
|
- evaluator:
|
||||||
|
params:
|
||||||
|
- 15
|
||||||
|
type: gt
|
||||||
|
operator:
|
||||||
|
type: and
|
||||||
|
query:
|
||||||
|
params:
|
||||||
|
- C
|
||||||
|
reducer:
|
||||||
|
params: []
|
||||||
|
type: last
|
||||||
|
type: query
|
||||||
|
datasource:
|
||||||
|
type: __expr__
|
||||||
|
uid: __expr__
|
||||||
|
expression: B
|
||||||
|
hide: false
|
||||||
|
intervalMs: 1000
|
||||||
|
maxDataPoints: 43200
|
||||||
|
refId: C
|
||||||
|
type: threshold
|
||||||
|
dashboardUid: traefik-overview
|
||||||
|
panelId: 6
|
||||||
|
noDataState: OK
|
||||||
|
execErrState: Error
|
||||||
|
for: 10m
|
||||||
|
annotations:
|
||||||
|
__dashboardUid__: traefik-overview
|
||||||
|
__panelId__: "6"
|
||||||
|
description: Die 5xx-Quote auf {{ $labels.entrypoint }} liegt seit 10 Minuten ueber 15% (aktuell {{ printf "%.2f" $values.B.Value }}%).
|
||||||
|
summary: Traefik Websecure 5xx-Quote ist erhoeht
|
||||||
|
labels:
|
||||||
|
category: errors
|
||||||
|
cluster: microk8s
|
||||||
|
severity: warning
|
||||||
|
source: traefik
|
||||||
|
team: ops
|
||||||
|
isPaused: false
|
||||||
|
notification_settings:
|
||||||
|
receiver: n8n
|
||||||
|
- uid: traefik-router-5xx-ratio-critical
|
||||||
|
title: Traefik Router 5xx Ratio Critical
|
||||||
|
condition: C
|
||||||
|
data:
|
||||||
|
- refId: A
|
||||||
|
relativeTimeRange:
|
||||||
|
from: 600
|
||||||
|
to: 0
|
||||||
|
datasourceUid: prometheus
|
||||||
|
model:
|
||||||
|
editorMode: code
|
||||||
|
expr: (100 * sum by (router) (rate(traefik_router_requests_total{router!~"ping@internal|prometheus@internal",code=~"5.."}[5m])) / clamp_min(sum by (router) (rate(traefik_router_requests_total{router!~"ping@internal|prometheus@internal"}[5m])), 0.001)) and on(router) (sum by (router) (rate(traefik_router_requests_total{router!~"ping@internal|prometheus@internal"}[5m])) > 0.1)
|
||||||
|
hide: false
|
||||||
|
intervalMs: 1000
|
||||||
|
maxDataPoints: 43200
|
||||||
|
range: true
|
||||||
|
refId: A
|
||||||
|
- refId: B
|
||||||
|
relativeTimeRange:
|
||||||
|
from: 600
|
||||||
|
to: 0
|
||||||
|
datasourceUid: __expr__
|
||||||
|
model:
|
||||||
|
conditions:
|
||||||
|
- evaluator:
|
||||||
|
params: []
|
||||||
|
type: gt
|
||||||
|
operator:
|
||||||
|
type: and
|
||||||
|
query:
|
||||||
|
params:
|
||||||
|
- B
|
||||||
|
reducer:
|
||||||
|
params: []
|
||||||
|
type: last
|
||||||
|
type: query
|
||||||
|
datasource:
|
||||||
|
type: __expr__
|
||||||
|
uid: __expr__
|
||||||
|
expression: A
|
||||||
|
hide: false
|
||||||
|
intervalMs: 1000
|
||||||
|
maxDataPoints: 43200
|
||||||
|
reducer: last
|
||||||
|
refId: B
|
||||||
|
settings:
|
||||||
|
mode: dropNN
|
||||||
|
type: reduce
|
||||||
|
- refId: C
|
||||||
|
relativeTimeRange:
|
||||||
|
from: 600
|
||||||
|
to: 0
|
||||||
|
datasourceUid: __expr__
|
||||||
|
model:
|
||||||
|
conditions:
|
||||||
|
- evaluator:
|
||||||
|
params:
|
||||||
|
- 50
|
||||||
|
type: gt
|
||||||
|
operator:
|
||||||
|
type: and
|
||||||
|
query:
|
||||||
|
params:
|
||||||
|
- C
|
||||||
|
reducer:
|
||||||
|
params: []
|
||||||
|
type: last
|
||||||
|
type: query
|
||||||
|
datasource:
|
||||||
|
type: __expr__
|
||||||
|
uid: __expr__
|
||||||
|
expression: B
|
||||||
|
hide: false
|
||||||
|
intervalMs: 1000
|
||||||
|
maxDataPoints: 43200
|
||||||
|
refId: C
|
||||||
|
type: threshold
|
||||||
|
dashboardUid: traefik-overview
|
||||||
|
panelId: 11
|
||||||
|
noDataState: OK
|
||||||
|
execErrState: Error
|
||||||
|
for: 10m
|
||||||
|
annotations:
|
||||||
|
__dashboardUid__: traefik-overview
|
||||||
|
__panelId__: "11"
|
||||||
|
description: Der Router {{ $labels.router }} liegt seit 10 Minuten ueber 50% 5xx-Quote bei relevanter Last (aktuell {{ printf "%.2f" $values.B.Value }}%).
|
||||||
|
summary: Traefik-Router {{ $labels.router }} produziert viele 5xx
|
||||||
|
labels:
|
||||||
|
category: errors
|
||||||
|
cluster: microk8s
|
||||||
|
severity: critical
|
||||||
|
source: traefik
|
||||||
|
team: ops
|
||||||
|
isPaused: false
|
||||||
|
notification_settings:
|
||||||
|
receiver: n8n
|
||||||
|
- uid: traefik-router-p95-latency-high
|
||||||
|
title: Traefik Router P95 Latency High
|
||||||
|
condition: C
|
||||||
|
data:
|
||||||
|
- refId: A
|
||||||
|
relativeTimeRange:
|
||||||
|
from: 600
|
||||||
|
to: 0
|
||||||
|
datasourceUid: prometheus
|
||||||
|
model:
|
||||||
|
editorMode: code
|
||||||
|
expr: (1000 * histogram_quantile(0.95, sum by (router, le) (rate(traefik_router_request_duration_seconds_bucket{router!~"ping@internal|prometheus@internal"}[5m])))) and on(router) (sum by (router) (rate(traefik_router_requests_total{router!~"ping@internal|prometheus@internal"}[5m])) > 0.05)
|
||||||
|
hide: false
|
||||||
|
intervalMs: 1000
|
||||||
|
maxDataPoints: 43200
|
||||||
|
range: true
|
||||||
|
refId: A
|
||||||
|
- refId: B
|
||||||
|
relativeTimeRange:
|
||||||
|
from: 600
|
||||||
|
to: 0
|
||||||
|
datasourceUid: __expr__
|
||||||
|
model:
|
||||||
|
conditions:
|
||||||
|
- evaluator:
|
||||||
|
params: []
|
||||||
|
type: gt
|
||||||
|
operator:
|
||||||
|
type: and
|
||||||
|
query:
|
||||||
|
params:
|
||||||
|
- B
|
||||||
|
reducer:
|
||||||
|
params: []
|
||||||
|
type: last
|
||||||
|
type: query
|
||||||
|
datasource:
|
||||||
|
type: __expr__
|
||||||
|
uid: __expr__
|
||||||
|
expression: A
|
||||||
|
hide: false
|
||||||
|
intervalMs: 1000
|
||||||
|
maxDataPoints: 43200
|
||||||
|
reducer: last
|
||||||
|
refId: B
|
||||||
|
settings:
|
||||||
|
mode: dropNN
|
||||||
|
type: reduce
|
||||||
|
- refId: C
|
||||||
|
relativeTimeRange:
|
||||||
|
from: 600
|
||||||
|
to: 0
|
||||||
|
datasourceUid: __expr__
|
||||||
|
model:
|
||||||
|
conditions:
|
||||||
|
- evaluator:
|
||||||
|
params:
|
||||||
|
- 3000
|
||||||
|
type: gt
|
||||||
|
operator:
|
||||||
|
type: and
|
||||||
|
query:
|
||||||
|
params:
|
||||||
|
- C
|
||||||
|
reducer:
|
||||||
|
params: []
|
||||||
|
type: last
|
||||||
|
type: query
|
||||||
|
datasource:
|
||||||
|
type: __expr__
|
||||||
|
uid: __expr__
|
||||||
|
expression: B
|
||||||
|
hide: false
|
||||||
|
intervalMs: 1000
|
||||||
|
maxDataPoints: 43200
|
||||||
|
refId: C
|
||||||
|
type: threshold
|
||||||
|
dashboardUid: traefik-overview
|
||||||
|
panelId: 44
|
||||||
|
noDataState: OK
|
||||||
|
execErrState: Error
|
||||||
|
for: 10m
|
||||||
|
annotations:
|
||||||
|
__dashboardUid__: traefik-overview
|
||||||
|
__panelId__: "44"
|
||||||
|
description: Der Router {{ $labels.router }} hat seit 10 Minuten eine p95-Latenz ueber 3000 ms (aktuell {{ printf "%.0f" $values.B.Value }} ms).
|
||||||
|
summary: Traefik-Router {{ $labels.router }} ist langsam
|
||||||
|
labels:
|
||||||
|
category: latency
|
||||||
|
cluster: microk8s
|
||||||
|
severity: warning
|
||||||
|
source: traefik
|
||||||
|
team: ops
|
||||||
|
isPaused: false
|
||||||
|
notification_settings:
|
||||||
|
receiver: n8n
|
||||||
|
- uid: traefik-cert-expiry-soon
|
||||||
|
title: Traefik Certificate Expiry Soon
|
||||||
|
condition: C
|
||||||
|
data:
|
||||||
|
- refId: A
|
||||||
|
relativeTimeRange:
|
||||||
|
from: 600
|
||||||
|
to: 0
|
||||||
|
datasourceUid: prometheus
|
||||||
|
model:
|
||||||
|
editorMode: code
|
||||||
|
expr: (max by (cn) (traefik_tls_certs_not_after) - time()) / 86400
|
||||||
|
hide: false
|
||||||
|
intervalMs: 1000
|
||||||
|
maxDataPoints: 43200
|
||||||
|
range: true
|
||||||
|
refId: A
|
||||||
|
- refId: B
|
||||||
|
relativeTimeRange:
|
||||||
|
from: 600
|
||||||
|
to: 0
|
||||||
|
datasourceUid: __expr__
|
||||||
|
model:
|
||||||
|
conditions:
|
||||||
|
- evaluator:
|
||||||
|
params: []
|
||||||
|
type: gt
|
||||||
|
operator:
|
||||||
|
type: and
|
||||||
|
query:
|
||||||
|
params:
|
||||||
|
- B
|
||||||
|
reducer:
|
||||||
|
params: []
|
||||||
|
type: last
|
||||||
|
type: query
|
||||||
|
datasource:
|
||||||
|
type: __expr__
|
||||||
|
uid: __expr__
|
||||||
|
expression: A
|
||||||
|
hide: false
|
||||||
|
intervalMs: 1000
|
||||||
|
maxDataPoints: 43200
|
||||||
|
reducer: last
|
||||||
|
refId: B
|
||||||
|
settings:
|
||||||
|
mode: dropNN
|
||||||
|
type: reduce
|
||||||
|
- refId: C
|
||||||
|
relativeTimeRange:
|
||||||
|
from: 600
|
||||||
|
to: 0
|
||||||
|
datasourceUid: __expr__
|
||||||
|
model:
|
||||||
|
conditions:
|
||||||
|
- evaluator:
|
||||||
|
params:
|
||||||
|
- 30
|
||||||
|
type: lt
|
||||||
|
operator:
|
||||||
|
type: and
|
||||||
|
query:
|
||||||
|
params:
|
||||||
|
- C
|
||||||
|
reducer:
|
||||||
|
params: []
|
||||||
|
type: last
|
||||||
|
type: query
|
||||||
|
datasource:
|
||||||
|
type: __expr__
|
||||||
|
uid: __expr__
|
||||||
|
expression: B
|
||||||
|
hide: false
|
||||||
|
intervalMs: 1000
|
||||||
|
maxDataPoints: 43200
|
||||||
|
refId: C
|
||||||
|
type: threshold
|
||||||
|
dashboardUid: traefik-overview
|
||||||
|
panelId: 46
|
||||||
|
noDataState: OK
|
||||||
|
execErrState: Error
|
||||||
|
for: 1h
|
||||||
|
annotations:
|
||||||
|
__dashboardUid__: traefik-overview
|
||||||
|
__panelId__: "46"
|
||||||
|
description: Das Zertifikat {{ $labels.cn }} laeuft in weniger als 30 Tagen ab (aktuell {{ printf "%.1f" $values.B.Value }} Tage Restlaufzeit).
|
||||||
|
summary: Traefik-Zertifikat {{ $labels.cn }} laeuft bald ab
|
||||||
|
labels:
|
||||||
|
category: certificate
|
||||||
|
cluster: microk8s
|
||||||
|
severity: warning
|
||||||
|
source: traefik
|
||||||
|
team: ops
|
||||||
|
isPaused: false
|
||||||
|
notification_settings:
|
||||||
|
receiver: n8n
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
"kind": "Namespace"
|
||||||
|
"apiVersion": "v1"
|
||||||
|
"metadata":
|
||||||
|
"name": "kube-mon"
|
||||||
|
"labels":
|
||||||
|
"kubernetes.io/metadata.name": "kube-mon"
|
||||||
|
---
|
||||||
|
"kind": "Namespace"
|
||||||
|
"apiVersion": "v1"
|
||||||
|
"metadata":
|
||||||
|
"name": "loki"
|
||||||
|
"labels":
|
||||||
|
"kubernetes.io/metadata.name": "loki"
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
# Live Monitoring Deployment Export
|
||||||
|
|
||||||
|
Diese Manifeste wurden am 2026-04-25 14:31:07 UTC direkt aus den aktuell laufenden Instanzen im Cluster exportiert und von Laufzeitfeldern bereinigt.
|
||||||
|
|
||||||
|
## Enthalten
|
||||||
|
|
||||||
|
- `00-namespaces.yaml`: Namespaces `kube-mon` und `loki`
|
||||||
|
- `alertmanager/`: Alertmanager StatefulSet, Services, ServiceAccount und die aktuell genutzten Config-/TLS-Secrets
|
||||||
|
- `grafana/`: Grafana StatefulSet, Services, RBAC, Secret, Core-Config und alle aktuell gelabelten Grafana-Dashboard-/Datasource-ConfigMaps aus `kube-mon`
|
||||||
|
- `promtail/`: Promtail DaemonSet, ConfigMap, ServiceAccount und Cluster-RBAC aus `loki`
|
||||||
|
- `prometheus/`: Prometheus StatefulSet, Services, RBAC, Config-Secrets und das aktuell geladene Rulefile-ConfigMap
|
||||||
|
- `loki/`: Loki StatefulSet, Services, ServiceAccount, ConfigMap und PVC
|
||||||
|
|
||||||
|
## Wichtige Hinweise
|
||||||
|
|
||||||
|
- Der Export bildet die aktuell laufenden Instanzen moeglichst nah ab, aber nicht die urspruenglichen Helm-Releases oder Operator-CRDs.
|
||||||
|
- Grafana-Datasources werden unveraendert exportiert. Die aktuelle Prometheus-Datasource verweist zusaetzlich auf Alertmanager; der zugehoerige StatefulSet-/Service-/Secret-Stand ist in diesem Paket enthalten.
|
||||||
|
- Alertmanager- und Promtail-Konfigurationen werden inklusive der aktuell im Cluster hinterlegten Secrets bzw. Push-Ziele exportiert. Fuer andere Umgebungen muessen diese Werte ggf. angepasst oder vor einem Commit redigiert werden.
|
||||||
|
- Die Prometheus-Konfiguration ist als aktuell generiertes Secret exportiert. In einer anderen Umgebung koennen Scrape-Targets fehlen, wenn dort Cluster-Services, Endpoints oder Exporter anders heissen.
|
||||||
|
- Persistenz bleibt auf den aktuell genutzten StorageClasses (`nfs-csi`) und Groessen (`Grafana 20Gi`, `Prometheus 50Gi`, `Loki 20Gi`).
|
||||||
|
- Alertmanager ist wie im Live-Cluster als Operator-generiertes StatefulSet exportiert. Die zugehoerigen CRDs/CRs und der Prometheus-Operator selbst sind weiterhin nicht Teil dieses Pakets.
|
||||||
|
- NodePort-Services wurden mit den aktuell gesetzten Ports exportiert (`Grafana 30637`, `Prometheus 31595`, `Alertmanager 32626`, `Loki 31940/30320`).
|
||||||
|
|
||||||
|
## Reihenfolge
|
||||||
|
|
||||||
|
1. `00-namespaces.yaml`
|
||||||
|
2. `loki/01-core.yaml`, `loki/02-services.yaml`, `loki/03-statefulset.yaml`
|
||||||
|
3. `promtail/01-rbac.yaml`, `promtail/02-config.yaml`, `promtail/03-daemonset.yaml`
|
||||||
|
4. `alertmanager/01-core.yaml`, `alertmanager/02-services.yaml`, `alertmanager/03-statefulset.yaml`
|
||||||
|
5. `prometheus/01-rbac.yaml`, `prometheus/02-config.yaml`, `prometheus/03-services.yaml`, `prometheus/04-statefulset.yaml`
|
||||||
|
6. `grafana/01-rbac.yaml`, `grafana/02-core-config.yaml`, `grafana/03-services.yaml`, `grafana/04-statefulset.yaml`, `grafana/05-provisioning-configmaps.yaml`
|
||||||
@@ -0,0 +1,88 @@
|
|||||||
|
---
|
||||||
|
"kind": "ServiceAccount"
|
||||||
|
"apiVersion": "v1"
|
||||||
|
"metadata":
|
||||||
|
"name": "kube-prometheus-stack-1761-alertmanager"
|
||||||
|
"namespace": "kube-mon"
|
||||||
|
"labels":
|
||||||
|
"app": "kube-prometheus-stack-alertmanager"
|
||||||
|
"app.kubernetes.io/component": "alertmanager"
|
||||||
|
"app.kubernetes.io/instance": "kube-prometheus-stack-1761819498"
|
||||||
|
"app.kubernetes.io/managed-by": "Helm"
|
||||||
|
"app.kubernetes.io/name": "kube-prometheus-stack-alertmanager"
|
||||||
|
"app.kubernetes.io/part-of": "kube-prometheus-stack"
|
||||||
|
"app.kubernetes.io/version": "79.0.1"
|
||||||
|
"chart": "kube-prometheus-stack-79.0.1"
|
||||||
|
"heritage": "Helm"
|
||||||
|
"release": "kube-prometheus-stack-1761819498"
|
||||||
|
"annotations":
|
||||||
|
"meta.helm.sh/release-name": "kube-prometheus-stack-1761819498"
|
||||||
|
"meta.helm.sh/release-namespace": "kube-mon"
|
||||||
|
"automountServiceAccountToken": true
|
||||||
|
---
|
||||||
|
"kind": "Secret"
|
||||||
|
"apiVersion": "v1"
|
||||||
|
"metadata":
|
||||||
|
"name": "alertmanager-kube-prometheus-stack-1761-alertmanager"
|
||||||
|
"namespace": "kube-mon"
|
||||||
|
"labels":
|
||||||
|
"app": "kube-prometheus-stack-alertmanager"
|
||||||
|
"app.kubernetes.io/instance": "kube-prometheus-stack-1761819498"
|
||||||
|
"app.kubernetes.io/managed-by": "Helm"
|
||||||
|
"app.kubernetes.io/part-of": "kube-prometheus-stack"
|
||||||
|
"app.kubernetes.io/version": "79.0.1"
|
||||||
|
"chart": "kube-prometheus-stack-79.0.1"
|
||||||
|
"heritage": "Helm"
|
||||||
|
"release": "kube-prometheus-stack-1761819498"
|
||||||
|
"annotations":
|
||||||
|
"meta.helm.sh/release-name": "kube-prometheus-stack-1761819498"
|
||||||
|
"meta.helm.sh/release-namespace": "kube-mon"
|
||||||
|
"data":
|
||||||
|
"alertmanager.yaml": "Z2xvYmFsOgogIHJlc29sdmVfdGltZW91dDogNW0KICBzbXRwX2F1dGhfcGFzc3dvcmQ6IFJzMjAxMjE5ODgKICBzbXRwX2F1dGhfdXNlcm5hbWU6IGFsZXJ0aW5nQHJzaXRzZXJ2aWNlLmRlCiAgc210cF9mcm9tOiBhbGVydGluZ0Byc2l0c2VydmljZS5kZQogIHNtdHBfcmVxdWlyZV90bHM6IHRydWUKICBzbXRwX3NtYXJ0aG9zdDogbWFpbGNvdy5yc2l0c2VydmljZS5kZTo1ODcKaW5oaWJpdF9ydWxlczoKLSBlcXVhbDoKICAtIG5hbWVzcGFjZQogIC0gYWxlcnRuYW1lCiAgc291cmNlX21hdGNoZXJzOgogIC0gc2V2ZXJpdHkgPSBjcml0aWNhbAogIHRhcmdldF9tYXRjaGVyczoKICAtIHNldmVyaXR5ID1+IHdhcm5pbmd8aW5mbwotIGVxdWFsOgogIC0gbmFtZXNwYWNlCiAgLSBhbGVydG5hbWUKICBzb3VyY2VfbWF0Y2hlcnM6CiAgLSBzZXZlcml0eSA9IHdhcm5pbmcKICB0YXJnZXRfbWF0Y2hlcnM6CiAgLSBzZXZlcml0eSA9IGluZm8KLSBlcXVhbDoKICAtIG5hbWVzcGFjZQogIHNvdXJjZV9tYXRjaGVyczoKICAtIGFsZXJ0bmFtZSA9IEluZm9JbmhpYml0b3IKICB0YXJnZXRfbWF0Y2hlcnM6CiAgLSBzZXZlcml0eSA9IGluZm8KLSB0YXJnZXRfbWF0Y2hlcnM6CiAgLSBhbGVydG5hbWUgPSBJbmZvSW5oaWJpdG9yCnJlY2VpdmVyczoKLSBuYW1lOiAibnVsbCIKcm91dGU6CiAgZ3JvdXBfYnk6CiAgLSBhbGVydG5hbWUKICAtIGNsdXN0ZXIKICAtIHNlcnZpY2UKICBncm91cF9pbnRlcnZhbDogNW0KICBncm91cF93YWl0OiAzMHMKICByZWNlaXZlcjogbWFpbC1hbGVydHMKICByZWNlaXZlcnM6CiAgLSBlbWFpbF9jb25maWdzOgogICAgLSBzZW5kX3Jlc29sdmVkOiB0cnVlCiAgICAgIHRvOiBpbmZvQHJzaXRzZXJ2aWNlLmRlCiAgICBuYW1lOiBtYWlsLWFsZXJ0cwogIHJlcGVhdF9pbnRlcnZhbDogMTJoCiAgcm91dGVzOgogIC0gbWF0Y2hlcnM6CiAgICAtIGFsZXJ0bmFtZSA9ICJXYXRjaGRvZyIKICAgIHJlY2VpdmVyOiAibnVsbCIKdGVtcGxhdGVzOgotIC9ldGMvYWxlcnRtYW5hZ2VyL2NvbmZpZy8qLnRtcGw="
|
||||||
|
"type": "Opaque"
|
||||||
|
---
|
||||||
|
"kind": "Secret"
|
||||||
|
"apiVersion": "v1"
|
||||||
|
"metadata":
|
||||||
|
"name": "alertmanager-kube-prometheus-stack-1761-alertmanager-generated"
|
||||||
|
"namespace": "kube-mon"
|
||||||
|
"labels":
|
||||||
|
"app.kubernetes.io/managed-by": "prometheus-operator"
|
||||||
|
"managed-by": "prometheus-operator"
|
||||||
|
"data":
|
||||||
|
"alertmanager.yaml.gz": "H4sIAAAAAAAA/7ySy2r0MAyF934KMcsf5k8vdBOYB5gn6DJoXMUR+JLKcoaB0mcvTtppCg3tqlvpWN+xjpxPJ/StARDKyU/UKQdKRVt4CEZSUVqalngiaWEXi/c7A+AklbE7XWp7DxED5REtVXF9lZf6Nw8BAqodSGZJFaEn0ToBDrB7rM2n5D4ZZ2Rt4f4mXysclWRCP5us7kZCXVVv7wbDceATayfFVzN7UBRH2q3he8g0kbBe4PAKZ5TI0b1w7JMByKmIpU09WGFli94A0HNZlvh1Eauf/cyHX2LfXf4FdZ3LMfbpuKw0yRZ8A7c95+M85oCq4nonSmH0qEt0Dalt5ikBIzqSxqbYs2v+/dcwevMWAAD//yheIjPGAgAA"
|
||||||
|
"type": "Opaque"
|
||||||
|
---
|
||||||
|
"kind": "Secret"
|
||||||
|
"apiVersion": "v1"
|
||||||
|
"metadata":
|
||||||
|
"name": "alertmanager-kube-prometheus-stack-1761-alertmanager-web-config"
|
||||||
|
"namespace": "kube-mon"
|
||||||
|
"labels":
|
||||||
|
"app.kubernetes.io/managed-by": "prometheus-operator"
|
||||||
|
"managed-by": "prometheus-operator"
|
||||||
|
"data":
|
||||||
|
"web-config.yaml": ""
|
||||||
|
"type": "Opaque"
|
||||||
|
---
|
||||||
|
"kind": "Secret"
|
||||||
|
"apiVersion": "v1"
|
||||||
|
"metadata":
|
||||||
|
"name": "alertmanager-kube-prometheus-stack-1761-alertmanager-tls-assets-0"
|
||||||
|
"namespace": "kube-mon"
|
||||||
|
"labels":
|
||||||
|
"app.kubernetes.io/managed-by": "prometheus-operator"
|
||||||
|
"managed-by": "prometheus-operator"
|
||||||
|
"type": "Opaque"
|
||||||
|
---
|
||||||
|
"kind": "Secret"
|
||||||
|
"apiVersion": "v1"
|
||||||
|
"metadata":
|
||||||
|
"name": "alertmanager-kube-prometheus-stack-1761-alertmanager-cluster-tls-config"
|
||||||
|
"namespace": "kube-mon"
|
||||||
|
"labels":
|
||||||
|
"app.kubernetes.io/managed-by": "prometheus-operator"
|
||||||
|
"managed-by": "prometheus-operator"
|
||||||
|
"data":
|
||||||
|
"cluster-tls-config.yaml": ""
|
||||||
|
"type": "Opaque"
|
||||||
@@ -0,0 +1,91 @@
|
|||||||
|
---
|
||||||
|
"kind": "Service"
|
||||||
|
"apiVersion": "v1"
|
||||||
|
"metadata":
|
||||||
|
"name": "kube-prometheus-stack-1761-alertmanager"
|
||||||
|
"namespace": "kube-mon"
|
||||||
|
"labels":
|
||||||
|
"app": "kube-prometheus-stack-alertmanager"
|
||||||
|
"app.kubernetes.io/instance": "kube-prometheus-stack-1761819498"
|
||||||
|
"app.kubernetes.io/managed-by": "Helm"
|
||||||
|
"app.kubernetes.io/part-of": "kube-prometheus-stack"
|
||||||
|
"app.kubernetes.io/version": "79.0.1"
|
||||||
|
"chart": "kube-prometheus-stack-79.0.1"
|
||||||
|
"heritage": "Helm"
|
||||||
|
"release": "kube-prometheus-stack-1761819498"
|
||||||
|
"self-monitor": "true"
|
||||||
|
"annotations":
|
||||||
|
"meta.helm.sh/release-name": "kube-prometheus-stack-1761819498"
|
||||||
|
"meta.helm.sh/release-namespace": "kube-mon"
|
||||||
|
"spec":
|
||||||
|
"ports":
|
||||||
|
-
|
||||||
|
"name": "http-web"
|
||||||
|
"protocol": "TCP"
|
||||||
|
"port": 9093
|
||||||
|
"targetPort": 9093
|
||||||
|
-
|
||||||
|
"name": "reloader-web"
|
||||||
|
"protocol": "TCP"
|
||||||
|
"appProtocol": "http"
|
||||||
|
"port": 8080
|
||||||
|
"targetPort": "reloader-web"
|
||||||
|
"selector":
|
||||||
|
"alertmanager": "kube-prometheus-stack-1761-alertmanager"
|
||||||
|
"app.kubernetes.io/name": "alertmanager"
|
||||||
|
"type": "ClusterIP"
|
||||||
|
"sessionAffinity": "None"
|
||||||
|
---
|
||||||
|
"kind": "Service"
|
||||||
|
"apiVersion": "v1"
|
||||||
|
"metadata":
|
||||||
|
"name": "alertmanager-operated"
|
||||||
|
"namespace": "kube-mon"
|
||||||
|
"labels":
|
||||||
|
"app.kubernetes.io/managed-by": "prometheus-operator"
|
||||||
|
"managed-by": "prometheus-operator"
|
||||||
|
"operated-alertmanager": "true"
|
||||||
|
"spec":
|
||||||
|
"ports":
|
||||||
|
-
|
||||||
|
"name": "http-web"
|
||||||
|
"protocol": "TCP"
|
||||||
|
"port": 9093
|
||||||
|
"targetPort": "http-web"
|
||||||
|
-
|
||||||
|
"name": "tcp-mesh"
|
||||||
|
"protocol": "TCP"
|
||||||
|
"port": 9094
|
||||||
|
"targetPort": "mesh-tcp"
|
||||||
|
-
|
||||||
|
"name": "udp-mesh"
|
||||||
|
"protocol": "UDP"
|
||||||
|
"port": 9094
|
||||||
|
"targetPort": "mesh-udp"
|
||||||
|
"selector":
|
||||||
|
"app.kubernetes.io/name": "alertmanager"
|
||||||
|
"clusterIP": "None"
|
||||||
|
"type": "ClusterIP"
|
||||||
|
"sessionAffinity": "None"
|
||||||
|
"publishNotReadyAddresses": true
|
||||||
|
---
|
||||||
|
"kind": "Service"
|
||||||
|
"apiVersion": "v1"
|
||||||
|
"metadata":
|
||||||
|
"name": "alertmanager-nodeport"
|
||||||
|
"namespace": "kube-mon"
|
||||||
|
"labels":
|
||||||
|
"k8slens-edit-resource-version": "v1"
|
||||||
|
"spec":
|
||||||
|
"ports":
|
||||||
|
-
|
||||||
|
"name": "http-web"
|
||||||
|
"protocol": "TCP"
|
||||||
|
"port": 9093
|
||||||
|
"targetPort": "http-web"
|
||||||
|
"nodePort": 32626
|
||||||
|
"selector":
|
||||||
|
"app.kubernetes.io/name": "alertmanager"
|
||||||
|
"type": "NodePort"
|
||||||
|
"sessionAffinity": "None"
|
||||||
|
"externalTrafficPolicy": "Cluster"
|
||||||
@@ -0,0 +1,317 @@
|
|||||||
|
---
|
||||||
|
"kind": "StatefulSet"
|
||||||
|
"apiVersion": "apps/v1"
|
||||||
|
"metadata":
|
||||||
|
"name": "alertmanager-kube-prometheus-stack-1761-alertmanager"
|
||||||
|
"namespace": "kube-mon"
|
||||||
|
"labels":
|
||||||
|
"alertmanager": "kube-prometheus-stack-1761-alertmanager"
|
||||||
|
"app": "kube-prometheus-stack-alertmanager"
|
||||||
|
"app.kubernetes.io/instance": "kube-prometheus-stack-1761-alertmanager"
|
||||||
|
"app.kubernetes.io/managed-by": "prometheus-operator"
|
||||||
|
"app.kubernetes.io/name": "alertmanager"
|
||||||
|
"app.kubernetes.io/part-of": "kube-prometheus-stack"
|
||||||
|
"app.kubernetes.io/version": "79.0.1"
|
||||||
|
"chart": "kube-prometheus-stack-79.0.1"
|
||||||
|
"heritage": "Helm"
|
||||||
|
"managed-by": "prometheus-operator"
|
||||||
|
"release": "kube-prometheus-stack-1761819498"
|
||||||
|
"annotations":
|
||||||
|
"meta.helm.sh/release-name": "kube-prometheus-stack-1761819498"
|
||||||
|
"meta.helm.sh/release-namespace": "kube-mon"
|
||||||
|
"prometheus-operator-input-hash": "12770747348952997375"
|
||||||
|
"spec":
|
||||||
|
"replicas": 1
|
||||||
|
"selector":
|
||||||
|
"matchLabels":
|
||||||
|
"alertmanager": "kube-prometheus-stack-1761-alertmanager"
|
||||||
|
"app.kubernetes.io/instance": "kube-prometheus-stack-1761-alertmanager"
|
||||||
|
"app.kubernetes.io/managed-by": "prometheus-operator"
|
||||||
|
"app.kubernetes.io/name": "alertmanager"
|
||||||
|
"template":
|
||||||
|
"metadata":
|
||||||
|
"labels":
|
||||||
|
"alertmanager": "kube-prometheus-stack-1761-alertmanager"
|
||||||
|
"app.kubernetes.io/instance": "kube-prometheus-stack-1761-alertmanager"
|
||||||
|
"app.kubernetes.io/managed-by": "prometheus-operator"
|
||||||
|
"app.kubernetes.io/name": "alertmanager"
|
||||||
|
"app.kubernetes.io/version": "0.28.1"
|
||||||
|
"annotations":
|
||||||
|
"kubectl.kubernetes.io/default-container": "alertmanager"
|
||||||
|
"spec":
|
||||||
|
"volumes":
|
||||||
|
-
|
||||||
|
"name": "config-volume"
|
||||||
|
"secret":
|
||||||
|
"secretName": "alertmanager-kube-prometheus-stack-1761-alertmanager-generated"
|
||||||
|
"defaultMode": 420
|
||||||
|
-
|
||||||
|
"name": "tls-assets"
|
||||||
|
"projected":
|
||||||
|
"sources":
|
||||||
|
-
|
||||||
|
"secret":
|
||||||
|
"name": "alertmanager-kube-prometheus-stack-1761-alertmanager-tls-assets-0"
|
||||||
|
"defaultMode": 420
|
||||||
|
-
|
||||||
|
"name": "config-out"
|
||||||
|
"emptyDir":
|
||||||
|
"medium": "Memory"
|
||||||
|
-
|
||||||
|
"name": "web-config"
|
||||||
|
"secret":
|
||||||
|
"secretName": "alertmanager-kube-prometheus-stack-1761-alertmanager-web-config"
|
||||||
|
"defaultMode": 420
|
||||||
|
-
|
||||||
|
"name": "cluster-tls-config"
|
||||||
|
"secret":
|
||||||
|
"secretName": "alertmanager-kube-prometheus-stack-1761-alertmanager-cluster-tls-config"
|
||||||
|
"defaultMode": 420
|
||||||
|
"initContainers":
|
||||||
|
-
|
||||||
|
"name": "init-config-reloader"
|
||||||
|
"image": "quay.io/prometheus-operator/prometheus-config-reloader:v0.86.1"
|
||||||
|
"command":
|
||||||
|
- "/bin/prometheus-config-reloader"
|
||||||
|
"args":
|
||||||
|
- "--watch-interval=0"
|
||||||
|
- "--listen-address=:8081"
|
||||||
|
- "--config-file=/etc/alertmanager/config/alertmanager.yaml.gz"
|
||||||
|
- "--config-envsubst-file=/etc/alertmanager/config_out/alertmanager.env.yaml"
|
||||||
|
- "--watched-dir=/etc/alertmanager/config"
|
||||||
|
"ports":
|
||||||
|
-
|
||||||
|
"name": "reloader-init"
|
||||||
|
"containerPort": 8081
|
||||||
|
"protocol": "TCP"
|
||||||
|
"env":
|
||||||
|
-
|
||||||
|
"name": "POD_NAME"
|
||||||
|
"valueFrom":
|
||||||
|
"fieldRef":
|
||||||
|
"apiVersion": "v1"
|
||||||
|
"fieldPath": "metadata.name"
|
||||||
|
-
|
||||||
|
"name": "SHARD"
|
||||||
|
"value": "-1"
|
||||||
|
"resources": {}
|
||||||
|
"volumeMounts":
|
||||||
|
-
|
||||||
|
"name": "config-volume"
|
||||||
|
"readOnly": true
|
||||||
|
"mountPath": "/etc/alertmanager/config"
|
||||||
|
-
|
||||||
|
"name": "config-out"
|
||||||
|
"mountPath": "/etc/alertmanager/config_out"
|
||||||
|
-
|
||||||
|
"name": "web-config"
|
||||||
|
"readOnly": true
|
||||||
|
"mountPath": "/etc/alertmanager/web_config/web-config.yaml"
|
||||||
|
"subPath": "web-config.yaml"
|
||||||
|
"terminationMessagePath": "/dev/termination-log"
|
||||||
|
"terminationMessagePolicy": "FallbackToLogsOnError"
|
||||||
|
"imagePullPolicy": "IfNotPresent"
|
||||||
|
"securityContext":
|
||||||
|
"capabilities":
|
||||||
|
"drop":
|
||||||
|
- "ALL"
|
||||||
|
"readOnlyRootFilesystem": true
|
||||||
|
"allowPrivilegeEscalation": false
|
||||||
|
"containers":
|
||||||
|
-
|
||||||
|
"name": "alertmanager"
|
||||||
|
"image": "quay.io/prometheus/alertmanager:v0.28.1"
|
||||||
|
"args":
|
||||||
|
- "--config.file=/etc/alertmanager/config_out/alertmanager.env.yaml"
|
||||||
|
- "--storage.path=/alertmanager"
|
||||||
|
- "--data.retention=120h"
|
||||||
|
- "--cluster.listen-address="
|
||||||
|
- "--web.listen-address=:9093"
|
||||||
|
- "--web.external-url=http://kube-prometheus-stack-1761-alertmanager.kube-mon:9093"
|
||||||
|
- "--web.route-prefix=/"
|
||||||
|
- "--cluster.label=kube-mon/kube-prometheus-stack-1761-alertmanager"
|
||||||
|
- "--cluster.peer=alertmanager-kube-prometheus-stack-1761-alertmanager-0.alertmanager-operated:9094"
|
||||||
|
- "--cluster.reconnect-timeout=5m"
|
||||||
|
- "--web.config.file=/etc/alertmanager/web_config/web-config.yaml"
|
||||||
|
"ports":
|
||||||
|
-
|
||||||
|
"name": "http-web"
|
||||||
|
"containerPort": 9093
|
||||||
|
"protocol": "TCP"
|
||||||
|
-
|
||||||
|
"name": "mesh-tcp"
|
||||||
|
"containerPort": 9094
|
||||||
|
"protocol": "TCP"
|
||||||
|
-
|
||||||
|
"name": "mesh-udp"
|
||||||
|
"containerPort": 9094
|
||||||
|
"protocol": "UDP"
|
||||||
|
"env":
|
||||||
|
-
|
||||||
|
"name": "POD_IP"
|
||||||
|
"valueFrom":
|
||||||
|
"fieldRef":
|
||||||
|
"apiVersion": "v1"
|
||||||
|
"fieldPath": "status.podIP"
|
||||||
|
"resources":
|
||||||
|
"requests":
|
||||||
|
"memory": "200Mi"
|
||||||
|
"volumeMounts":
|
||||||
|
-
|
||||||
|
"name": "config-volume"
|
||||||
|
"mountPath": "/etc/alertmanager/config"
|
||||||
|
-
|
||||||
|
"name": "config-out"
|
||||||
|
"readOnly": true
|
||||||
|
"mountPath": "/etc/alertmanager/config_out"
|
||||||
|
-
|
||||||
|
"name": "tls-assets"
|
||||||
|
"readOnly": true
|
||||||
|
"mountPath": "/etc/alertmanager/certs"
|
||||||
|
-
|
||||||
|
"name": "alertmanager-kube-prometheus-stack-1761-alertmanager-db"
|
||||||
|
"mountPath": "/alertmanager"
|
||||||
|
"subPath": "alertmanager-db"
|
||||||
|
-
|
||||||
|
"name": "web-config"
|
||||||
|
"readOnly": true
|
||||||
|
"mountPath": "/etc/alertmanager/web_config/web-config.yaml"
|
||||||
|
"subPath": "web-config.yaml"
|
||||||
|
-
|
||||||
|
"name": "cluster-tls-config"
|
||||||
|
"readOnly": true
|
||||||
|
"mountPath": "/etc/alertmanager/cluster_tls_config/cluster-tls-config.yaml"
|
||||||
|
"subPath": "cluster-tls-config.yaml"
|
||||||
|
"livenessProbe":
|
||||||
|
"httpGet":
|
||||||
|
"path": "/-/healthy"
|
||||||
|
"port": "http-web"
|
||||||
|
"scheme": "HTTP"
|
||||||
|
"timeoutSeconds": 3
|
||||||
|
"periodSeconds": 10
|
||||||
|
"successThreshold": 1
|
||||||
|
"failureThreshold": 10
|
||||||
|
"readinessProbe":
|
||||||
|
"httpGet":
|
||||||
|
"path": "/-/ready"
|
||||||
|
"port": "http-web"
|
||||||
|
"scheme": "HTTP"
|
||||||
|
"initialDelaySeconds": 3
|
||||||
|
"timeoutSeconds": 3
|
||||||
|
"periodSeconds": 5
|
||||||
|
"successThreshold": 1
|
||||||
|
"failureThreshold": 10
|
||||||
|
"terminationMessagePath": "/dev/termination-log"
|
||||||
|
"terminationMessagePolicy": "FallbackToLogsOnError"
|
||||||
|
"imagePullPolicy": "IfNotPresent"
|
||||||
|
"securityContext":
|
||||||
|
"capabilities":
|
||||||
|
"drop":
|
||||||
|
- "ALL"
|
||||||
|
"readOnlyRootFilesystem": true
|
||||||
|
"allowPrivilegeEscalation": false
|
||||||
|
-
|
||||||
|
"name": "config-reloader"
|
||||||
|
"image": "quay.io/prometheus-operator/prometheus-config-reloader:v0.86.1"
|
||||||
|
"command":
|
||||||
|
- "/bin/prometheus-config-reloader"
|
||||||
|
"args":
|
||||||
|
- "--listen-address=:8080"
|
||||||
|
- "--web-config-file=/etc/alertmanager/web_config/web-config.yaml"
|
||||||
|
- "--reload-url=http://127.0.0.1:9093/-/reload"
|
||||||
|
- "--config-file=/etc/alertmanager/config/alertmanager.yaml.gz"
|
||||||
|
- "--config-envsubst-file=/etc/alertmanager/config_out/alertmanager.env.yaml"
|
||||||
|
- "--watched-dir=/etc/alertmanager/config"
|
||||||
|
"ports":
|
||||||
|
-
|
||||||
|
"name": "reloader-web"
|
||||||
|
"containerPort": 8080
|
||||||
|
"protocol": "TCP"
|
||||||
|
"env":
|
||||||
|
-
|
||||||
|
"name": "POD_NAME"
|
||||||
|
"valueFrom":
|
||||||
|
"fieldRef":
|
||||||
|
"apiVersion": "v1"
|
||||||
|
"fieldPath": "metadata.name"
|
||||||
|
-
|
||||||
|
"name": "SHARD"
|
||||||
|
"value": "-1"
|
||||||
|
"resources": {}
|
||||||
|
"volumeMounts":
|
||||||
|
-
|
||||||
|
"name": "config-volume"
|
||||||
|
"readOnly": true
|
||||||
|
"mountPath": "/etc/alertmanager/config"
|
||||||
|
-
|
||||||
|
"name": "config-out"
|
||||||
|
"mountPath": "/etc/alertmanager/config_out"
|
||||||
|
-
|
||||||
|
"name": "web-config"
|
||||||
|
"readOnly": true
|
||||||
|
"mountPath": "/etc/alertmanager/web_config/web-config.yaml"
|
||||||
|
"subPath": "web-config.yaml"
|
||||||
|
"terminationMessagePath": "/dev/termination-log"
|
||||||
|
"terminationMessagePolicy": "FallbackToLogsOnError"
|
||||||
|
"imagePullPolicy": "IfNotPresent"
|
||||||
|
"securityContext":
|
||||||
|
"capabilities":
|
||||||
|
"drop":
|
||||||
|
- "ALL"
|
||||||
|
"readOnlyRootFilesystem": true
|
||||||
|
"allowPrivilegeEscalation": false
|
||||||
|
"restartPolicy": "Always"
|
||||||
|
"terminationGracePeriodSeconds": 120
|
||||||
|
"dnsPolicy": "ClusterFirst"
|
||||||
|
"serviceAccountName": "kube-prometheus-stack-1761-alertmanager"
|
||||||
|
"serviceAccount": "kube-prometheus-stack-1761-alertmanager"
|
||||||
|
"automountServiceAccountToken": true
|
||||||
|
"securityContext":
|
||||||
|
"runAsUser": 1000
|
||||||
|
"runAsGroup": 2000
|
||||||
|
"runAsNonRoot": true
|
||||||
|
"fsGroup": 2000
|
||||||
|
"seccompProfile":
|
||||||
|
"type": "RuntimeDefault"
|
||||||
|
"affinity":
|
||||||
|
"podAntiAffinity":
|
||||||
|
"preferredDuringSchedulingIgnoredDuringExecution":
|
||||||
|
-
|
||||||
|
"weight": 100
|
||||||
|
"podAffinityTerm":
|
||||||
|
"labelSelector":
|
||||||
|
"matchExpressions":
|
||||||
|
-
|
||||||
|
"key": "app.kubernetes.io/name"
|
||||||
|
"operator": "In"
|
||||||
|
"values":
|
||||||
|
- "alertmanager"
|
||||||
|
-
|
||||||
|
"key": "alertmanager"
|
||||||
|
"operator": "In"
|
||||||
|
"values":
|
||||||
|
- "kube-prometheus-stack-1761-alertmanager"
|
||||||
|
"topologyKey": "kubernetes.io/hostname"
|
||||||
|
"schedulerName": "default-scheduler"
|
||||||
|
"volumeClaimTemplates":
|
||||||
|
-
|
||||||
|
"kind": "PersistentVolumeClaim"
|
||||||
|
"apiVersion": "v1"
|
||||||
|
"metadata":
|
||||||
|
"name": "alertmanager-kube-prometheus-stack-1761-alertmanager-db"
|
||||||
|
"spec":
|
||||||
|
"accessModes":
|
||||||
|
- "ReadWriteOnce"
|
||||||
|
"resources":
|
||||||
|
"requests":
|
||||||
|
"storage": "50Gi"
|
||||||
|
"storageClassName": "nfs-csi"
|
||||||
|
"volumeMode": "Filesystem"
|
||||||
|
"serviceName": "alertmanager-operated"
|
||||||
|
"podManagementPolicy": "Parallel"
|
||||||
|
"updateStrategy":
|
||||||
|
"type": "RollingUpdate"
|
||||||
|
"revisionHistoryLimit": 10
|
||||||
|
"persistentVolumeClaimRetentionPolicy":
|
||||||
|
"whenDeleted": "Retain"
|
||||||
|
"whenScaled": "Retain"
|
||||||
@@ -0,0 +1,104 @@
|
|||||||
|
---
|
||||||
|
"kind": "ServiceAccount"
|
||||||
|
"apiVersion": "v1"
|
||||||
|
"metadata":
|
||||||
|
"name": "kube-prometheus-stack-1761819498-grafana"
|
||||||
|
"namespace": "kube-mon"
|
||||||
|
"labels":
|
||||||
|
"app.kubernetes.io/instance": "kube-prometheus-stack-1761819498"
|
||||||
|
"app.kubernetes.io/managed-by": "Helm"
|
||||||
|
"app.kubernetes.io/name": "grafana"
|
||||||
|
"app.kubernetes.io/version": "12.2.1"
|
||||||
|
"helm.sh/chart": "grafana-10.1.4"
|
||||||
|
"annotations":
|
||||||
|
"meta.helm.sh/release-name": "kube-prometheus-stack-1761819498"
|
||||||
|
"meta.helm.sh/release-namespace": "kube-mon"
|
||||||
|
"automountServiceAccountToken": true
|
||||||
|
---
|
||||||
|
"kind": "Role"
|
||||||
|
"apiVersion": "rbac.authorization.k8s.io/v1"
|
||||||
|
"metadata":
|
||||||
|
"name": "kube-prometheus-stack-1761819498-grafana"
|
||||||
|
"namespace": "kube-mon"
|
||||||
|
"labels":
|
||||||
|
"app.kubernetes.io/instance": "kube-prometheus-stack-1761819498"
|
||||||
|
"app.kubernetes.io/managed-by": "Helm"
|
||||||
|
"app.kubernetes.io/name": "grafana"
|
||||||
|
"app.kubernetes.io/version": "12.2.1"
|
||||||
|
"helm.sh/chart": "grafana-10.1.4"
|
||||||
|
"annotations":
|
||||||
|
"meta.helm.sh/release-name": "kube-prometheus-stack-1761819498"
|
||||||
|
"meta.helm.sh/release-namespace": "kube-mon"
|
||||||
|
"rules": []
|
||||||
|
---
|
||||||
|
"kind": "RoleBinding"
|
||||||
|
"apiVersion": "rbac.authorization.k8s.io/v1"
|
||||||
|
"metadata":
|
||||||
|
"name": "kube-prometheus-stack-1761819498-grafana"
|
||||||
|
"namespace": "kube-mon"
|
||||||
|
"labels":
|
||||||
|
"app.kubernetes.io/instance": "kube-prometheus-stack-1761819498"
|
||||||
|
"app.kubernetes.io/managed-by": "Helm"
|
||||||
|
"app.kubernetes.io/name": "grafana"
|
||||||
|
"app.kubernetes.io/version": "12.2.1"
|
||||||
|
"helm.sh/chart": "grafana-10.1.4"
|
||||||
|
"annotations":
|
||||||
|
"meta.helm.sh/release-name": "kube-prometheus-stack-1761819498"
|
||||||
|
"meta.helm.sh/release-namespace": "kube-mon"
|
||||||
|
"subjects":
|
||||||
|
-
|
||||||
|
"kind": "ServiceAccount"
|
||||||
|
"name": "kube-prometheus-stack-1761819498-grafana"
|
||||||
|
"namespace": "kube-mon"
|
||||||
|
"roleRef":
|
||||||
|
"apiGroup": "rbac.authorization.k8s.io"
|
||||||
|
"kind": "Role"
|
||||||
|
"name": "kube-prometheus-stack-1761819498-grafana"
|
||||||
|
---
|
||||||
|
"kind": "ClusterRole"
|
||||||
|
"apiVersion": "rbac.authorization.k8s.io/v1"
|
||||||
|
"metadata":
|
||||||
|
"name": "kube-prometheus-stack-1761819498-grafana-clusterrole"
|
||||||
|
"labels":
|
||||||
|
"app.kubernetes.io/instance": "kube-prometheus-stack-1761819498"
|
||||||
|
"app.kubernetes.io/managed-by": "Helm"
|
||||||
|
"app.kubernetes.io/name": "grafana"
|
||||||
|
"app.kubernetes.io/version": "12.2.1"
|
||||||
|
"helm.sh/chart": "grafana-10.1.4"
|
||||||
|
"annotations":
|
||||||
|
"meta.helm.sh/release-name": "kube-prometheus-stack-1761819498"
|
||||||
|
"meta.helm.sh/release-namespace": "kube-mon"
|
||||||
|
"rules":
|
||||||
|
-
|
||||||
|
"verbs":
|
||||||
|
- "get"
|
||||||
|
- "watch"
|
||||||
|
- "list"
|
||||||
|
"apiGroups":
|
||||||
|
- ""
|
||||||
|
"resources":
|
||||||
|
- "configmaps"
|
||||||
|
- "secrets"
|
||||||
|
---
|
||||||
|
"kind": "ClusterRoleBinding"
|
||||||
|
"apiVersion": "rbac.authorization.k8s.io/v1"
|
||||||
|
"metadata":
|
||||||
|
"name": "kube-prometheus-stack-1761819498-grafana-clusterrolebinding"
|
||||||
|
"labels":
|
||||||
|
"app.kubernetes.io/instance": "kube-prometheus-stack-1761819498"
|
||||||
|
"app.kubernetes.io/managed-by": "Helm"
|
||||||
|
"app.kubernetes.io/name": "grafana"
|
||||||
|
"app.kubernetes.io/version": "12.2.1"
|
||||||
|
"helm.sh/chart": "grafana-10.1.4"
|
||||||
|
"annotations":
|
||||||
|
"meta.helm.sh/release-name": "kube-prometheus-stack-1761819498"
|
||||||
|
"meta.helm.sh/release-namespace": "kube-mon"
|
||||||
|
"subjects":
|
||||||
|
-
|
||||||
|
"kind": "ServiceAccount"
|
||||||
|
"name": "kube-prometheus-stack-1761819498-grafana"
|
||||||
|
"namespace": "kube-mon"
|
||||||
|
"roleRef":
|
||||||
|
"apiGroup": "rbac.authorization.k8s.io"
|
||||||
|
"kind": "ClusterRole"
|
||||||
|
"name": "kube-prometheus-stack-1761819498-grafana-clusterrole"
|
||||||
@@ -0,0 +1,83 @@
|
|||||||
|
---
|
||||||
|
"kind": "ConfigMap"
|
||||||
|
"apiVersion": "v1"
|
||||||
|
"metadata":
|
||||||
|
"name": "kube-prometheus-stack-1761819498-grafana"
|
||||||
|
"namespace": "kube-mon"
|
||||||
|
"labels":
|
||||||
|
"app.kubernetes.io/instance": "kube-prometheus-stack-1761819498"
|
||||||
|
"app.kubernetes.io/managed-by": "Helm"
|
||||||
|
"app.kubernetes.io/name": "grafana"
|
||||||
|
"app.kubernetes.io/version": "12.2.1"
|
||||||
|
"helm.sh/chart": "grafana-10.1.4"
|
||||||
|
"annotations":
|
||||||
|
"meta.helm.sh/release-name": "kube-prometheus-stack-1761819498"
|
||||||
|
"meta.helm.sh/release-namespace": "kube-mon"
|
||||||
|
"data":
|
||||||
|
"grafana.ini": |
|
||||||
|
[analytics]
|
||||||
|
check_for_updates = true
|
||||||
|
[grafana_net]
|
||||||
|
url = https://grafana.net
|
||||||
|
[log]
|
||||||
|
mode = console
|
||||||
|
[paths]
|
||||||
|
data = /var/lib/grafana/
|
||||||
|
logs = /var/log/grafana
|
||||||
|
plugins = /var/lib/grafana/plugins
|
||||||
|
provisioning = /etc/grafana/provisioning
|
||||||
|
[server]
|
||||||
|
domain = ''
|
||||||
|
|
||||||
|
---
|
||||||
|
"kind": "ConfigMap"
|
||||||
|
"apiVersion": "v1"
|
||||||
|
"metadata":
|
||||||
|
"name": "kube-prometheus-stack-1761819498-grafana-config-dashboards"
|
||||||
|
"namespace": "kube-mon"
|
||||||
|
"labels":
|
||||||
|
"app.kubernetes.io/instance": "kube-prometheus-stack-1761819498"
|
||||||
|
"app.kubernetes.io/managed-by": "Helm"
|
||||||
|
"app.kubernetes.io/name": "grafana"
|
||||||
|
"app.kubernetes.io/version": "12.2.1"
|
||||||
|
"helm.sh/chart": "grafana-10.1.4"
|
||||||
|
"annotations":
|
||||||
|
"meta.helm.sh/release-name": "kube-prometheus-stack-1761819498"
|
||||||
|
"meta.helm.sh/release-namespace": "kube-mon"
|
||||||
|
"data":
|
||||||
|
"provider.yaml": |
|
||||||
|
apiVersion: 1
|
||||||
|
providers:
|
||||||
|
- name: 'sidecarProvider'
|
||||||
|
orgId: 1
|
||||||
|
folder: ''
|
||||||
|
folderUid: ''
|
||||||
|
type: file
|
||||||
|
disableDeletion: true
|
||||||
|
allowUiUpdates: false
|
||||||
|
updateIntervalSeconds: 30
|
||||||
|
options:
|
||||||
|
foldersFromFilesStructure: false
|
||||||
|
path: /tmp/dashboards
|
||||||
|
---
|
||||||
|
"kind": "Secret"
|
||||||
|
"apiVersion": "v1"
|
||||||
|
"metadata":
|
||||||
|
"name": "kube-prometheus-stack-1761819498-grafana"
|
||||||
|
"namespace": "kube-mon"
|
||||||
|
"labels":
|
||||||
|
"app.kubernetes.io/component": "admin-secret"
|
||||||
|
"app.kubernetes.io/instance": "kube-prometheus-stack-1761819498"
|
||||||
|
"app.kubernetes.io/managed-by": "Helm"
|
||||||
|
"app.kubernetes.io/name": "grafana"
|
||||||
|
"app.kubernetes.io/version": "12.2.1"
|
||||||
|
"helm.sh/chart": "grafana-10.1.4"
|
||||||
|
"k8slens-edit-resource-version": "v1"
|
||||||
|
"annotations":
|
||||||
|
"meta.helm.sh/release-name": "kube-prometheus-stack-1761819498"
|
||||||
|
"meta.helm.sh/release-namespace": "kube-mon"
|
||||||
|
"data":
|
||||||
|
"admin-password": "UnMyMDEyMTk4OCE="
|
||||||
|
"admin-user": "YWRtaW4="
|
||||||
|
"ldap-toml": ""
|
||||||
|
"type": "Opaque"
|
||||||
@@ -0,0 +1,78 @@
|
|||||||
|
---
|
||||||
|
"kind": "Service"
|
||||||
|
"apiVersion": "v1"
|
||||||
|
"metadata":
|
||||||
|
"name": "kube-prometheus-stack-1761819498-grafana"
|
||||||
|
"namespace": "kube-mon"
|
||||||
|
"labels":
|
||||||
|
"app.kubernetes.io/instance": "kube-prometheus-stack-1761819498"
|
||||||
|
"app.kubernetes.io/managed-by": "Helm"
|
||||||
|
"app.kubernetes.io/name": "grafana"
|
||||||
|
"app.kubernetes.io/version": "12.2.1"
|
||||||
|
"helm.sh/chart": "grafana-10.1.4"
|
||||||
|
"k8slens-edit-resource-version": "v1"
|
||||||
|
"annotations":
|
||||||
|
"meta.helm.sh/release-name": "kube-prometheus-stack-1761819498"
|
||||||
|
"meta.helm.sh/release-namespace": "kube-mon"
|
||||||
|
"spec":
|
||||||
|
"ports":
|
||||||
|
-
|
||||||
|
"name": "http-web"
|
||||||
|
"protocol": "TCP"
|
||||||
|
"port": 80
|
||||||
|
"targetPort": "grafana"
|
||||||
|
"selector":
|
||||||
|
"app.kubernetes.io/instance": "kube-prometheus-stack-1761819498"
|
||||||
|
"app.kubernetes.io/name": "grafana"
|
||||||
|
"type": "ClusterIP"
|
||||||
|
"sessionAffinity": "None"
|
||||||
|
---
|
||||||
|
"kind": "Service"
|
||||||
|
"apiVersion": "v1"
|
||||||
|
"metadata":
|
||||||
|
"name": "kube-prometheus-stack-1761819498-grafana-headless"
|
||||||
|
"namespace": "kube-mon"
|
||||||
|
"labels":
|
||||||
|
"app.kubernetes.io/instance": "kube-prometheus-stack-1761819498"
|
||||||
|
"app.kubernetes.io/managed-by": "Helm"
|
||||||
|
"app.kubernetes.io/name": "grafana"
|
||||||
|
"app.kubernetes.io/version": "12.2.1"
|
||||||
|
"helm.sh/chart": "grafana-10.1.4"
|
||||||
|
"annotations":
|
||||||
|
"meta.helm.sh/release-name": "kube-prometheus-stack-1761819498"
|
||||||
|
"meta.helm.sh/release-namespace": "kube-mon"
|
||||||
|
"spec":
|
||||||
|
"ports":
|
||||||
|
-
|
||||||
|
"name": "gossip-tcp"
|
||||||
|
"protocol": "TCP"
|
||||||
|
"port": 9094
|
||||||
|
"targetPort": "gossip-tcp"
|
||||||
|
"selector":
|
||||||
|
"app.kubernetes.io/instance": "kube-prometheus-stack-1761819498"
|
||||||
|
"app.kubernetes.io/name": "grafana"
|
||||||
|
"type": "ClusterIP"
|
||||||
|
"sessionAffinity": "None"
|
||||||
|
"clusterIP": "None"
|
||||||
|
---
|
||||||
|
"kind": "Service"
|
||||||
|
"apiVersion": "v1"
|
||||||
|
"metadata":
|
||||||
|
"name": "grafana-nodeport"
|
||||||
|
"namespace": "kube-mon"
|
||||||
|
"labels":
|
||||||
|
"k8slens-edit-resource-version": "v1"
|
||||||
|
"spec":
|
||||||
|
"ports":
|
||||||
|
-
|
||||||
|
"name": "http-web"
|
||||||
|
"protocol": "TCP"
|
||||||
|
"port": 80
|
||||||
|
"targetPort": "grafana"
|
||||||
|
"nodePort": 30637
|
||||||
|
"selector":
|
||||||
|
"app.kubernetes.io/instance": "kube-prometheus-stack-1761819498"
|
||||||
|
"app.kubernetes.io/name": "grafana"
|
||||||
|
"type": "NodePort"
|
||||||
|
"sessionAffinity": "None"
|
||||||
|
"externalTrafficPolicy": "Cluster"
|
||||||
@@ -0,0 +1,333 @@
|
|||||||
|
---
|
||||||
|
"kind": "StatefulSet"
|
||||||
|
"apiVersion": "apps/v1"
|
||||||
|
"metadata":
|
||||||
|
"name": "kube-prometheus-stack-1761819498-grafana"
|
||||||
|
"namespace": "kube-mon"
|
||||||
|
"labels":
|
||||||
|
"app.kubernetes.io/instance": "kube-prometheus-stack-1761819498"
|
||||||
|
"app.kubernetes.io/managed-by": "Helm"
|
||||||
|
"app.kubernetes.io/name": "grafana"
|
||||||
|
"app.kubernetes.io/version": "12.2.1"
|
||||||
|
"helm.sh/chart": "grafana-10.1.4"
|
||||||
|
"k8slens-edit-resource-version": "v1"
|
||||||
|
"annotations":
|
||||||
|
"meta.helm.sh/release-name": "kube-prometheus-stack-1761819498"
|
||||||
|
"meta.helm.sh/release-namespace": "kube-mon"
|
||||||
|
"spec":
|
||||||
|
"replicas": 1
|
||||||
|
"selector":
|
||||||
|
"matchLabels":
|
||||||
|
"app.kubernetes.io/instance": "kube-prometheus-stack-1761819498"
|
||||||
|
"app.kubernetes.io/name": "grafana"
|
||||||
|
"template":
|
||||||
|
"metadata":
|
||||||
|
"labels":
|
||||||
|
"app.kubernetes.io/instance": "kube-prometheus-stack-1761819498"
|
||||||
|
"app.kubernetes.io/name": "grafana"
|
||||||
|
"app.kubernetes.io/version": "12.2.1"
|
||||||
|
"helm.sh/chart": "grafana-10.1.4"
|
||||||
|
"annotations":
|
||||||
|
"checksum/config": "d4994ce00e7811465a2fa6543bf581120fee2eef2b029c1877d15c2a3886deae"
|
||||||
|
"checksum/dashboards-json-config": "01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b"
|
||||||
|
"checksum/sc-dashboard-provider-config": "77f303eadac6bf5e0f42c223d042ba2827635e029336a34ae30a97433b486bdb"
|
||||||
|
"checksum/secret": "68ab9c5d48640ff3232bd4e6b4f93001b47e8cc44ae8bbd347e5af4fa2bafa55"
|
||||||
|
"kubectl.kubernetes.io/default-container": "grafana"
|
||||||
|
"spec":
|
||||||
|
"volumes":
|
||||||
|
-
|
||||||
|
"name": "config"
|
||||||
|
"configMap":
|
||||||
|
"name": "kube-prometheus-stack-1761819498-grafana"
|
||||||
|
"defaultMode": 420
|
||||||
|
-
|
||||||
|
"name": "sc-dashboard-volume"
|
||||||
|
"emptyDir": {}
|
||||||
|
-
|
||||||
|
"name": "sc-dashboard-provider"
|
||||||
|
"configMap":
|
||||||
|
"name": "kube-prometheus-stack-1761819498-grafana-config-dashboards"
|
||||||
|
"defaultMode": 420
|
||||||
|
-
|
||||||
|
"name": "sc-datasources-volume"
|
||||||
|
"emptyDir": {}
|
||||||
|
"initContainers":
|
||||||
|
-
|
||||||
|
"name": "init-chown-data"
|
||||||
|
"image": "docker.io/library/busybox:1.31.1"
|
||||||
|
"command":
|
||||||
|
- "chown"
|
||||||
|
- "-R"
|
||||||
|
- "472:472"
|
||||||
|
- "/var/lib/grafana"
|
||||||
|
"resources": {}
|
||||||
|
"volumeMounts":
|
||||||
|
-
|
||||||
|
"name": "storage"
|
||||||
|
"mountPath": "/var/lib/grafana"
|
||||||
|
"terminationMessagePath": "/dev/termination-log"
|
||||||
|
"terminationMessagePolicy": "File"
|
||||||
|
"imagePullPolicy": "IfNotPresent"
|
||||||
|
"securityContext":
|
||||||
|
"capabilities":
|
||||||
|
"add":
|
||||||
|
- "CHOWN"
|
||||||
|
"drop":
|
||||||
|
- "ALL"
|
||||||
|
"runAsUser": 0
|
||||||
|
"runAsNonRoot": false
|
||||||
|
"readOnlyRootFilesystem": false
|
||||||
|
"seccompProfile":
|
||||||
|
"type": "RuntimeDefault"
|
||||||
|
"containers":
|
||||||
|
-
|
||||||
|
"name": "grafana-sc-dashboard"
|
||||||
|
"image": "quay.io/kiwigrid/k8s-sidecar:1.30.10"
|
||||||
|
"env":
|
||||||
|
-
|
||||||
|
"name": "METHOD"
|
||||||
|
"value": "WATCH"
|
||||||
|
-
|
||||||
|
"name": "LABEL"
|
||||||
|
"value": "grafana_dashboard"
|
||||||
|
-
|
||||||
|
"name": "LABEL_VALUE"
|
||||||
|
"value": "1"
|
||||||
|
-
|
||||||
|
"name": "FOLDER"
|
||||||
|
"value": "/tmp/dashboards"
|
||||||
|
-
|
||||||
|
"name": "RESOURCE"
|
||||||
|
"value": "both"
|
||||||
|
-
|
||||||
|
"name": "NAMESPACE"
|
||||||
|
"value": "ALL"
|
||||||
|
-
|
||||||
|
"name": "SKIP_TLS_VERIFY"
|
||||||
|
"value": "true"
|
||||||
|
-
|
||||||
|
"name": "REQ_USERNAME"
|
||||||
|
"valueFrom":
|
||||||
|
"secretKeyRef":
|
||||||
|
"name": "kube-prometheus-stack-1761819498-grafana"
|
||||||
|
"key": "admin-user"
|
||||||
|
-
|
||||||
|
"name": "REQ_PASSWORD"
|
||||||
|
"valueFrom":
|
||||||
|
"secretKeyRef":
|
||||||
|
"name": "kube-prometheus-stack-1761819498-grafana"
|
||||||
|
"key": "admin-password"
|
||||||
|
-
|
||||||
|
"name": "REQ_URL"
|
||||||
|
"value": "http://localhost:3000/api/admin/provisioning/dashboards/reload"
|
||||||
|
-
|
||||||
|
"name": "REQ_METHOD"
|
||||||
|
"value": "POST"
|
||||||
|
"resources": {}
|
||||||
|
"volumeMounts":
|
||||||
|
-
|
||||||
|
"name": "sc-dashboard-volume"
|
||||||
|
"mountPath": "/tmp/dashboards"
|
||||||
|
"terminationMessagePath": "/dev/termination-log"
|
||||||
|
"terminationMessagePolicy": "File"
|
||||||
|
"imagePullPolicy": "IfNotPresent"
|
||||||
|
"securityContext":
|
||||||
|
"capabilities":
|
||||||
|
"drop":
|
||||||
|
- "ALL"
|
||||||
|
"allowPrivilegeEscalation": false
|
||||||
|
"seccompProfile":
|
||||||
|
"type": "RuntimeDefault"
|
||||||
|
-
|
||||||
|
"name": "grafana-sc-datasources"
|
||||||
|
"image": "quay.io/kiwigrid/k8s-sidecar:1.30.10"
|
||||||
|
"env":
|
||||||
|
-
|
||||||
|
"name": "METHOD"
|
||||||
|
"value": "WATCH"
|
||||||
|
-
|
||||||
|
"name": "LABEL"
|
||||||
|
"value": "grafana_datasource"
|
||||||
|
-
|
||||||
|
"name": "LABEL_VALUE"
|
||||||
|
"value": "1"
|
||||||
|
-
|
||||||
|
"name": "FOLDER"
|
||||||
|
"value": "/etc/grafana/provisioning/datasources"
|
||||||
|
-
|
||||||
|
"name": "RESOURCE"
|
||||||
|
"value": "both"
|
||||||
|
-
|
||||||
|
"name": "SKIP_TLS_VERIFY"
|
||||||
|
"value": "true"
|
||||||
|
-
|
||||||
|
"name": "REQ_USERNAME"
|
||||||
|
"valueFrom":
|
||||||
|
"secretKeyRef":
|
||||||
|
"name": "kube-prometheus-stack-1761819498-grafana"
|
||||||
|
"key": "admin-user"
|
||||||
|
-
|
||||||
|
"name": "REQ_PASSWORD"
|
||||||
|
"valueFrom":
|
||||||
|
"secretKeyRef":
|
||||||
|
"name": "kube-prometheus-stack-1761819498-grafana"
|
||||||
|
"key": "admin-password"
|
||||||
|
-
|
||||||
|
"name": "REQ_URL"
|
||||||
|
"value": "http://localhost:3000/api/admin/provisioning/datasources/reload"
|
||||||
|
-
|
||||||
|
"name": "REQ_METHOD"
|
||||||
|
"value": "POST"
|
||||||
|
"resources": {}
|
||||||
|
"volumeMounts":
|
||||||
|
-
|
||||||
|
"name": "sc-datasources-volume"
|
||||||
|
"mountPath": "/etc/grafana/provisioning/datasources"
|
||||||
|
"terminationMessagePath": "/dev/termination-log"
|
||||||
|
"terminationMessagePolicy": "File"
|
||||||
|
"imagePullPolicy": "IfNotPresent"
|
||||||
|
"securityContext":
|
||||||
|
"capabilities":
|
||||||
|
"drop":
|
||||||
|
- "ALL"
|
||||||
|
"allowPrivilegeEscalation": false
|
||||||
|
"seccompProfile":
|
||||||
|
"type": "RuntimeDefault"
|
||||||
|
-
|
||||||
|
"name": "grafana"
|
||||||
|
"image": "docker.io/grafana/grafana:13.1.0-24485707904"
|
||||||
|
"ports":
|
||||||
|
-
|
||||||
|
"name": "grafana"
|
||||||
|
"containerPort": 3000
|
||||||
|
"protocol": "TCP"
|
||||||
|
-
|
||||||
|
"name": "gossip-tcp"
|
||||||
|
"containerPort": 9094
|
||||||
|
"protocol": "TCP"
|
||||||
|
-
|
||||||
|
"name": "gossip-udp"
|
||||||
|
"containerPort": 9094
|
||||||
|
"protocol": "UDP"
|
||||||
|
-
|
||||||
|
"name": "profiling"
|
||||||
|
"containerPort": 6060
|
||||||
|
"protocol": "TCP"
|
||||||
|
"env":
|
||||||
|
-
|
||||||
|
"name": "POD_IP"
|
||||||
|
"valueFrom":
|
||||||
|
"fieldRef":
|
||||||
|
"apiVersion": "v1"
|
||||||
|
"fieldPath": "status.podIP"
|
||||||
|
-
|
||||||
|
"name": "GF_SECURITY_ADMIN_USER"
|
||||||
|
"valueFrom":
|
||||||
|
"secretKeyRef":
|
||||||
|
"name": "kube-prometheus-stack-1761819498-grafana"
|
||||||
|
"key": "admin-user"
|
||||||
|
-
|
||||||
|
"name": "GF_SECURITY_ADMIN_PASSWORD"
|
||||||
|
"valueFrom":
|
||||||
|
"secretKeyRef":
|
||||||
|
"name": "kube-prometheus-stack-1761819498-grafana"
|
||||||
|
"key": "admin-password"
|
||||||
|
-
|
||||||
|
"name": "GF_PATHS_DATA"
|
||||||
|
"value": "/var/lib/grafana/"
|
||||||
|
-
|
||||||
|
"name": "GF_PATHS_LOGS"
|
||||||
|
"value": "/var/log/grafana"
|
||||||
|
-
|
||||||
|
"name": "GF_PATHS_PLUGINS"
|
||||||
|
"value": "/var/lib/grafana/plugins"
|
||||||
|
-
|
||||||
|
"name": "GF_PATHS_PROVISIONING"
|
||||||
|
"value": "/etc/grafana/provisioning"
|
||||||
|
"resources": {}
|
||||||
|
"volumeMounts":
|
||||||
|
-
|
||||||
|
"name": "config"
|
||||||
|
"mountPath": "/etc/grafana/grafana.ini"
|
||||||
|
"subPath": "grafana.ini"
|
||||||
|
-
|
||||||
|
"name": "storage"
|
||||||
|
"mountPath": "/var/lib/grafana"
|
||||||
|
-
|
||||||
|
"name": "sc-dashboard-volume"
|
||||||
|
"mountPath": "/tmp/dashboards"
|
||||||
|
-
|
||||||
|
"name": "sc-dashboard-provider"
|
||||||
|
"mountPath": "/etc/grafana/provisioning/dashboards/sc-dashboardproviders.yaml"
|
||||||
|
"subPath": "provider.yaml"
|
||||||
|
-
|
||||||
|
"name": "sc-datasources-volume"
|
||||||
|
"mountPath": "/etc/grafana/provisioning/datasources"
|
||||||
|
"livenessProbe":
|
||||||
|
"httpGet":
|
||||||
|
"path": "/api/health"
|
||||||
|
"port": 3000
|
||||||
|
"scheme": "HTTP"
|
||||||
|
"initialDelaySeconds": 60
|
||||||
|
"timeoutSeconds": 30
|
||||||
|
"periodSeconds": 10
|
||||||
|
"successThreshold": 1
|
||||||
|
"failureThreshold": 10
|
||||||
|
"readinessProbe":
|
||||||
|
"httpGet":
|
||||||
|
"path": "/api/health"
|
||||||
|
"port": 3000
|
||||||
|
"scheme": "HTTP"
|
||||||
|
"timeoutSeconds": 1
|
||||||
|
"periodSeconds": 10
|
||||||
|
"successThreshold": 1
|
||||||
|
"failureThreshold": 3
|
||||||
|
"terminationMessagePath": "/dev/termination-log"
|
||||||
|
"terminationMessagePolicy": "File"
|
||||||
|
"imagePullPolicy": "IfNotPresent"
|
||||||
|
"securityContext":
|
||||||
|
"capabilities":
|
||||||
|
"drop":
|
||||||
|
- "ALL"
|
||||||
|
"allowPrivilegeEscalation": false
|
||||||
|
"seccompProfile":
|
||||||
|
"type": "RuntimeDefault"
|
||||||
|
"restartPolicy": "Always"
|
||||||
|
"terminationGracePeriodSeconds": 30
|
||||||
|
"dnsPolicy": "ClusterFirst"
|
||||||
|
"serviceAccountName": "kube-prometheus-stack-1761819498-grafana"
|
||||||
|
"serviceAccount": "kube-prometheus-stack-1761819498-grafana"
|
||||||
|
"automountServiceAccountToken": true
|
||||||
|
"shareProcessNamespace": false
|
||||||
|
"securityContext":
|
||||||
|
"runAsUser": 472
|
||||||
|
"runAsGroup": 472
|
||||||
|
"runAsNonRoot": true
|
||||||
|
"fsGroup": 472
|
||||||
|
"schedulerName": "default-scheduler"
|
||||||
|
"enableServiceLinks": true
|
||||||
|
"volumeClaimTemplates":
|
||||||
|
-
|
||||||
|
"kind": "PersistentVolumeClaim"
|
||||||
|
"apiVersion": "v1"
|
||||||
|
"metadata":
|
||||||
|
"name": "storage"
|
||||||
|
"spec":
|
||||||
|
"accessModes":
|
||||||
|
- "ReadWriteOnce"
|
||||||
|
"resources":
|
||||||
|
"requests":
|
||||||
|
"storage": "20Gi"
|
||||||
|
"storageClassName": "nfs-csi"
|
||||||
|
"volumeMode": "Filesystem"
|
||||||
|
"serviceName": "kube-prometheus-stack-1761819498-grafana-headless"
|
||||||
|
"podManagementPolicy": "OrderedReady"
|
||||||
|
"updateStrategy":
|
||||||
|
"type": "RollingUpdate"
|
||||||
|
"rollingUpdate":
|
||||||
|
"partition": 0
|
||||||
|
"maxUnavailable": 1
|
||||||
|
"revisionHistoryLimit": 10
|
||||||
|
"persistentVolumeClaimRetentionPolicy":
|
||||||
|
"whenDeleted": "Retain"
|
||||||
|
"whenScaled": "Retain"
|
||||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,71 @@
|
|||||||
|
---
|
||||||
|
"kind": "ServiceAccount"
|
||||||
|
"apiVersion": "v1"
|
||||||
|
"metadata":
|
||||||
|
"name": "loki"
|
||||||
|
"namespace": "loki"
|
||||||
|
---
|
||||||
|
"kind": "ConfigMap"
|
||||||
|
"apiVersion": "v1"
|
||||||
|
"metadata":
|
||||||
|
"name": "loki-config"
|
||||||
|
"namespace": "loki"
|
||||||
|
"data":
|
||||||
|
"loki.yaml": |
|
||||||
|
auth_enabled: false
|
||||||
|
|
||||||
|
server:
|
||||||
|
http_listen_port: 3100
|
||||||
|
grpc_listen_port: 9096
|
||||||
|
|
||||||
|
common:
|
||||||
|
instance_addr: 127.0.0.1
|
||||||
|
path_prefix: /loki
|
||||||
|
storage:
|
||||||
|
filesystem:
|
||||||
|
chunks_directory: /loki/chunks
|
||||||
|
rules_directory: /loki/rules
|
||||||
|
replication_factor: 1
|
||||||
|
ring:
|
||||||
|
kvstore:
|
||||||
|
store: inmemory
|
||||||
|
|
||||||
|
schema_config:
|
||||||
|
configs:
|
||||||
|
- from: "2024-04-01"
|
||||||
|
store: tsdb
|
||||||
|
object_store: filesystem
|
||||||
|
schema: v13
|
||||||
|
index:
|
||||||
|
prefix: index_
|
||||||
|
period: 24h
|
||||||
|
|
||||||
|
limits_config:
|
||||||
|
allow_structured_metadata: true
|
||||||
|
reject_old_samples: true
|
||||||
|
reject_old_samples_max_age: 168h
|
||||||
|
ingestion_rate_mb: 16
|
||||||
|
ingestion_burst_size_mb: 32
|
||||||
|
max_cache_freshness_per_query: 10m
|
||||||
|
|
||||||
|
storage_config:
|
||||||
|
filesystem:
|
||||||
|
directory: /loki/chunks
|
||||||
|
tsdb_shipper:
|
||||||
|
active_index_directory: /loki/index
|
||||||
|
cache_location: /loki/index_cache
|
||||||
|
|
||||||
|
---
|
||||||
|
"kind": "PersistentVolumeClaim"
|
||||||
|
"apiVersion": "v1"
|
||||||
|
"metadata":
|
||||||
|
"name": "loki-data"
|
||||||
|
"namespace": "loki"
|
||||||
|
"spec":
|
||||||
|
"accessModes":
|
||||||
|
- "ReadWriteOnce"
|
||||||
|
"resources":
|
||||||
|
"requests":
|
||||||
|
"storage": "20Gi"
|
||||||
|
"storageClassName": "nfs-csi"
|
||||||
|
"volumeMode": "Filesystem"
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
---
|
||||||
|
"kind": "Service"
|
||||||
|
"apiVersion": "v1"
|
||||||
|
"metadata":
|
||||||
|
"name": "loki"
|
||||||
|
"namespace": "loki"
|
||||||
|
"labels":
|
||||||
|
"k8slens-edit-resource-version": "v1"
|
||||||
|
"spec":
|
||||||
|
"ports":
|
||||||
|
-
|
||||||
|
"name": "http-metrics"
|
||||||
|
"protocol": "TCP"
|
||||||
|
"port": 3100
|
||||||
|
"targetPort": "http-metrics"
|
||||||
|
"nodePort": 31940
|
||||||
|
-
|
||||||
|
"name": "grpc"
|
||||||
|
"protocol": "TCP"
|
||||||
|
"port": 9096
|
||||||
|
"targetPort": "grpc"
|
||||||
|
"nodePort": 30320
|
||||||
|
"selector":
|
||||||
|
"app": "loki"
|
||||||
|
"type": "NodePort"
|
||||||
|
"sessionAffinity": "None"
|
||||||
|
"externalTrafficPolicy": "Cluster"
|
||||||
|
---
|
||||||
|
"kind": "Service"
|
||||||
|
"apiVersion": "v1"
|
||||||
|
"metadata":
|
||||||
|
"name": "loki-headless"
|
||||||
|
"namespace": "loki"
|
||||||
|
"spec":
|
||||||
|
"ports":
|
||||||
|
-
|
||||||
|
"name": "http-metrics"
|
||||||
|
"protocol": "TCP"
|
||||||
|
"port": 3100
|
||||||
|
"targetPort": "http-metrics"
|
||||||
|
-
|
||||||
|
"name": "grpc"
|
||||||
|
"protocol": "TCP"
|
||||||
|
"port": 9096
|
||||||
|
"targetPort": "grpc"
|
||||||
|
"selector":
|
||||||
|
"app": "loki"
|
||||||
|
"type": "ClusterIP"
|
||||||
|
"sessionAffinity": "None"
|
||||||
|
"clusterIP": "None"
|
||||||
@@ -0,0 +1,100 @@
|
|||||||
|
---
|
||||||
|
"kind": "StatefulSet"
|
||||||
|
"apiVersion": "apps/v1"
|
||||||
|
"metadata":
|
||||||
|
"name": "loki"
|
||||||
|
"namespace": "loki"
|
||||||
|
"spec":
|
||||||
|
"replicas": 1
|
||||||
|
"selector":
|
||||||
|
"matchLabels":
|
||||||
|
"app": "loki"
|
||||||
|
"template":
|
||||||
|
"metadata":
|
||||||
|
"labels":
|
||||||
|
"app": "loki"
|
||||||
|
"spec":
|
||||||
|
"volumes":
|
||||||
|
-
|
||||||
|
"name": "config"
|
||||||
|
"configMap":
|
||||||
|
"name": "loki-config"
|
||||||
|
"defaultMode": 420
|
||||||
|
-
|
||||||
|
"name": "storage"
|
||||||
|
"persistentVolumeClaim":
|
||||||
|
"claimName": "loki-data"
|
||||||
|
"containers":
|
||||||
|
-
|
||||||
|
"name": "loki"
|
||||||
|
"image": "grafana/loki:3.4.2"
|
||||||
|
"args":
|
||||||
|
- "-config.file=/etc/loki/config/loki.yaml"
|
||||||
|
"ports":
|
||||||
|
-
|
||||||
|
"name": "http-metrics"
|
||||||
|
"containerPort": 3100
|
||||||
|
"protocol": "TCP"
|
||||||
|
-
|
||||||
|
"name": "grpc"
|
||||||
|
"containerPort": 9096
|
||||||
|
"protocol": "TCP"
|
||||||
|
"resources":
|
||||||
|
"limits":
|
||||||
|
"cpu": "1"
|
||||||
|
"memory": "1Gi"
|
||||||
|
"requests":
|
||||||
|
"cpu": "100m"
|
||||||
|
"memory": "256Mi"
|
||||||
|
"volumeMounts":
|
||||||
|
-
|
||||||
|
"name": "storage"
|
||||||
|
"mountPath": "/loki"
|
||||||
|
-
|
||||||
|
"name": "config"
|
||||||
|
"mountPath": "/etc/loki/config"
|
||||||
|
"livenessProbe":
|
||||||
|
"httpGet":
|
||||||
|
"path": "/ready"
|
||||||
|
"port": "http-metrics"
|
||||||
|
"scheme": "HTTP"
|
||||||
|
"initialDelaySeconds": 45
|
||||||
|
"timeoutSeconds": 1
|
||||||
|
"periodSeconds": 10
|
||||||
|
"successThreshold": 1
|
||||||
|
"failureThreshold": 3
|
||||||
|
"readinessProbe":
|
||||||
|
"httpGet":
|
||||||
|
"path": "/ready"
|
||||||
|
"port": "http-metrics"
|
||||||
|
"scheme": "HTTP"
|
||||||
|
"initialDelaySeconds": 45
|
||||||
|
"timeoutSeconds": 1
|
||||||
|
"periodSeconds": 10
|
||||||
|
"successThreshold": 1
|
||||||
|
"failureThreshold": 3
|
||||||
|
"terminationMessagePath": "/dev/termination-log"
|
||||||
|
"terminationMessagePolicy": "File"
|
||||||
|
"imagePullPolicy": "IfNotPresent"
|
||||||
|
"restartPolicy": "Always"
|
||||||
|
"terminationGracePeriodSeconds": 30
|
||||||
|
"dnsPolicy": "ClusterFirst"
|
||||||
|
"serviceAccountName": "loki"
|
||||||
|
"serviceAccount": "loki"
|
||||||
|
"securityContext":
|
||||||
|
"runAsUser": 10001
|
||||||
|
"runAsGroup": 10001
|
||||||
|
"runAsNonRoot": true
|
||||||
|
"fsGroup": 10001
|
||||||
|
"schedulerName": "default-scheduler"
|
||||||
|
"serviceName": "loki"
|
||||||
|
"podManagementPolicy": "OrderedReady"
|
||||||
|
"updateStrategy":
|
||||||
|
"type": "RollingUpdate"
|
||||||
|
"rollingUpdate":
|
||||||
|
"partition": 0
|
||||||
|
"maxUnavailable": 1
|
||||||
|
"revisionHistoryLimit": 10
|
||||||
|
"persistentVolumeClaimRetentionPolicy":
|
||||||
|
"whenDeleted": "Retain"
|
||||||
|
"whenScaled": "Retain"
|
||||||
@@ -0,0 +1,102 @@
|
|||||||
|
---
|
||||||
|
"kind": "ServiceAccount"
|
||||||
|
"apiVersion": "v1"
|
||||||
|
"metadata":
|
||||||
|
"name": "kube-prometheus-stack-1761-prometheus"
|
||||||
|
"namespace": "kube-mon"
|
||||||
|
"labels":
|
||||||
|
"app": "kube-prometheus-stack-prometheus"
|
||||||
|
"app.kubernetes.io/component": "prometheus"
|
||||||
|
"app.kubernetes.io/instance": "kube-prometheus-stack-1761819498"
|
||||||
|
"app.kubernetes.io/managed-by": "Helm"
|
||||||
|
"app.kubernetes.io/name": "kube-prometheus-stack-prometheus"
|
||||||
|
"app.kubernetes.io/part-of": "kube-prometheus-stack"
|
||||||
|
"app.kubernetes.io/version": "79.0.1"
|
||||||
|
"chart": "kube-prometheus-stack-79.0.1"
|
||||||
|
"heritage": "Helm"
|
||||||
|
"release": "kube-prometheus-stack-1761819498"
|
||||||
|
"annotations":
|
||||||
|
"meta.helm.sh/release-name": "kube-prometheus-stack-1761819498"
|
||||||
|
"meta.helm.sh/release-namespace": "kube-mon"
|
||||||
|
"automountServiceAccountToken": true
|
||||||
|
---
|
||||||
|
"kind": "ClusterRole"
|
||||||
|
"apiVersion": "rbac.authorization.k8s.io/v1"
|
||||||
|
"metadata":
|
||||||
|
"name": "kube-prometheus-stack-1761-prometheus"
|
||||||
|
"labels":
|
||||||
|
"app": "kube-prometheus-stack-prometheus"
|
||||||
|
"app.kubernetes.io/instance": "kube-prometheus-stack-1761819498"
|
||||||
|
"app.kubernetes.io/managed-by": "Helm"
|
||||||
|
"app.kubernetes.io/part-of": "kube-prometheus-stack"
|
||||||
|
"app.kubernetes.io/version": "79.0.1"
|
||||||
|
"chart": "kube-prometheus-stack-79.0.1"
|
||||||
|
"heritage": "Helm"
|
||||||
|
"release": "kube-prometheus-stack-1761819498"
|
||||||
|
"annotations":
|
||||||
|
"meta.helm.sh/release-name": "kube-prometheus-stack-1761819498"
|
||||||
|
"meta.helm.sh/release-namespace": "kube-mon"
|
||||||
|
"rules":
|
||||||
|
-
|
||||||
|
"verbs":
|
||||||
|
- "get"
|
||||||
|
- "list"
|
||||||
|
- "watch"
|
||||||
|
"apiGroups":
|
||||||
|
- ""
|
||||||
|
"resources":
|
||||||
|
- "nodes"
|
||||||
|
- "nodes/metrics"
|
||||||
|
- "services"
|
||||||
|
- "endpoints"
|
||||||
|
- "pods"
|
||||||
|
-
|
||||||
|
"verbs":
|
||||||
|
- "get"
|
||||||
|
- "list"
|
||||||
|
- "watch"
|
||||||
|
"apiGroups":
|
||||||
|
- "discovery.k8s.io"
|
||||||
|
"resources":
|
||||||
|
- "endpointslices"
|
||||||
|
-
|
||||||
|
"verbs":
|
||||||
|
- "get"
|
||||||
|
- "list"
|
||||||
|
- "watch"
|
||||||
|
"apiGroups":
|
||||||
|
- "networking.k8s.io"
|
||||||
|
"resources":
|
||||||
|
- "ingresses"
|
||||||
|
-
|
||||||
|
"verbs":
|
||||||
|
- "get"
|
||||||
|
"nonResourceURLs":
|
||||||
|
- "/metrics"
|
||||||
|
- "/metrics/cadvisor"
|
||||||
|
---
|
||||||
|
"kind": "ClusterRoleBinding"
|
||||||
|
"apiVersion": "rbac.authorization.k8s.io/v1"
|
||||||
|
"metadata":
|
||||||
|
"name": "kube-prometheus-stack-1761-prometheus"
|
||||||
|
"labels":
|
||||||
|
"app": "kube-prometheus-stack-prometheus"
|
||||||
|
"app.kubernetes.io/instance": "kube-prometheus-stack-1761819498"
|
||||||
|
"app.kubernetes.io/managed-by": "Helm"
|
||||||
|
"app.kubernetes.io/part-of": "kube-prometheus-stack"
|
||||||
|
"app.kubernetes.io/version": "79.0.1"
|
||||||
|
"chart": "kube-prometheus-stack-79.0.1"
|
||||||
|
"heritage": "Helm"
|
||||||
|
"release": "kube-prometheus-stack-1761819498"
|
||||||
|
"annotations":
|
||||||
|
"meta.helm.sh/release-name": "kube-prometheus-stack-1761819498"
|
||||||
|
"meta.helm.sh/release-namespace": "kube-mon"
|
||||||
|
"subjects":
|
||||||
|
-
|
||||||
|
"kind": "ServiceAccount"
|
||||||
|
"name": "kube-prometheus-stack-1761-prometheus"
|
||||||
|
"namespace": "kube-mon"
|
||||||
|
"roleRef":
|
||||||
|
"apiGroup": "rbac.authorization.k8s.io"
|
||||||
|
"kind": "ClusterRole"
|
||||||
|
"name": "kube-prometheus-stack-1761-prometheus"
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,80 @@
|
|||||||
|
---
|
||||||
|
"kind": "Service"
|
||||||
|
"apiVersion": "v1"
|
||||||
|
"metadata":
|
||||||
|
"name": "kube-prometheus-stack-1761-prometheus"
|
||||||
|
"namespace": "kube-mon"
|
||||||
|
"labels":
|
||||||
|
"app": "kube-prometheus-stack-prometheus"
|
||||||
|
"app.kubernetes.io/instance": "kube-prometheus-stack-1761819498"
|
||||||
|
"app.kubernetes.io/managed-by": "Helm"
|
||||||
|
"app.kubernetes.io/part-of": "kube-prometheus-stack"
|
||||||
|
"app.kubernetes.io/version": "79.0.1"
|
||||||
|
"chart": "kube-prometheus-stack-79.0.1"
|
||||||
|
"heritage": "Helm"
|
||||||
|
"release": "kube-prometheus-stack-1761819498"
|
||||||
|
"self-monitor": "true"
|
||||||
|
"annotations":
|
||||||
|
"meta.helm.sh/release-name": "kube-prometheus-stack-1761819498"
|
||||||
|
"meta.helm.sh/release-namespace": "kube-mon"
|
||||||
|
"spec":
|
||||||
|
"ports":
|
||||||
|
-
|
||||||
|
"name": "http-web"
|
||||||
|
"protocol": "TCP"
|
||||||
|
"port": 9090
|
||||||
|
"targetPort": 9090
|
||||||
|
-
|
||||||
|
"name": "reloader-web"
|
||||||
|
"protocol": "TCP"
|
||||||
|
"appProtocol": "http"
|
||||||
|
"port": 8080
|
||||||
|
"targetPort": "reloader-web"
|
||||||
|
"selector":
|
||||||
|
"app.kubernetes.io/name": "prometheus"
|
||||||
|
"operator.prometheus.io/name": "kube-prometheus-stack-1761-prometheus"
|
||||||
|
"type": "ClusterIP"
|
||||||
|
"sessionAffinity": "None"
|
||||||
|
---
|
||||||
|
"kind": "Service"
|
||||||
|
"apiVersion": "v1"
|
||||||
|
"metadata":
|
||||||
|
"name": "prometheus-operated"
|
||||||
|
"namespace": "kube-mon"
|
||||||
|
"labels":
|
||||||
|
"app.kubernetes.io/managed-by": "prometheus-operator"
|
||||||
|
"managed-by": "prometheus-operator"
|
||||||
|
"operated-prometheus": "true"
|
||||||
|
"spec":
|
||||||
|
"ports":
|
||||||
|
-
|
||||||
|
"name": "http-web"
|
||||||
|
"protocol": "TCP"
|
||||||
|
"port": 9090
|
||||||
|
"targetPort": "http-web"
|
||||||
|
"selector":
|
||||||
|
"app.kubernetes.io/name": "prometheus"
|
||||||
|
"type": "ClusterIP"
|
||||||
|
"sessionAffinity": "None"
|
||||||
|
"clusterIP": "None"
|
||||||
|
---
|
||||||
|
"kind": "Service"
|
||||||
|
"apiVersion": "v1"
|
||||||
|
"metadata":
|
||||||
|
"name": "prometheus-operated-nodeport"
|
||||||
|
"namespace": "kube-mon"
|
||||||
|
"labels":
|
||||||
|
"k8slens-edit-resource-version": "v1"
|
||||||
|
"spec":
|
||||||
|
"ports":
|
||||||
|
-
|
||||||
|
"name": "http-web"
|
||||||
|
"protocol": "TCP"
|
||||||
|
"port": 9090
|
||||||
|
"targetPort": "http-web"
|
||||||
|
"nodePort": 31595
|
||||||
|
"selector":
|
||||||
|
"app.kubernetes.io/name": "prometheus"
|
||||||
|
"type": "NodePort"
|
||||||
|
"sessionAffinity": "None"
|
||||||
|
"externalTrafficPolicy": "Cluster"
|
||||||
@@ -0,0 +1,302 @@
|
|||||||
|
---
|
||||||
|
"kind": "StatefulSet"
|
||||||
|
"apiVersion": "apps/v1"
|
||||||
|
"metadata":
|
||||||
|
"name": "prometheus-kube-prometheus-stack-1761-prometheus"
|
||||||
|
"namespace": "kube-mon"
|
||||||
|
"labels":
|
||||||
|
"app": "kube-prometheus-stack-prometheus"
|
||||||
|
"app.kubernetes.io/instance": "kube-prometheus-stack-1761-prometheus"
|
||||||
|
"app.kubernetes.io/managed-by": "prometheus-operator"
|
||||||
|
"app.kubernetes.io/name": "prometheus"
|
||||||
|
"app.kubernetes.io/part-of": "kube-prometheus-stack"
|
||||||
|
"app.kubernetes.io/version": "79.0.1"
|
||||||
|
"chart": "kube-prometheus-stack-79.0.1"
|
||||||
|
"heritage": "Helm"
|
||||||
|
"k8slens-edit-resource-version": "v1"
|
||||||
|
"managed-by": "prometheus-operator"
|
||||||
|
"operator.prometheus.io/mode": "server"
|
||||||
|
"operator.prometheus.io/name": "kube-prometheus-stack-1761-prometheus"
|
||||||
|
"operator.prometheus.io/shard": "0"
|
||||||
|
"prometheus": "kube-prometheus-stack-1761-prometheus"
|
||||||
|
"release": "kube-prometheus-stack-1761819498"
|
||||||
|
"annotations":
|
||||||
|
"meta.helm.sh/release-name": "kube-prometheus-stack-1761819498"
|
||||||
|
"meta.helm.sh/release-namespace": "kube-mon"
|
||||||
|
"prometheus-operator-input-hash": "5891682108210749018"
|
||||||
|
"spec":
|
||||||
|
"replicas": 1
|
||||||
|
"selector":
|
||||||
|
"matchLabels":
|
||||||
|
"app.kubernetes.io/instance": "kube-prometheus-stack-1761-prometheus"
|
||||||
|
"app.kubernetes.io/managed-by": "prometheus-operator"
|
||||||
|
"app.kubernetes.io/name": "prometheus"
|
||||||
|
"operator.prometheus.io/name": "kube-prometheus-stack-1761-prometheus"
|
||||||
|
"operator.prometheus.io/shard": "0"
|
||||||
|
"prometheus": "kube-prometheus-stack-1761-prometheus"
|
||||||
|
"template":
|
||||||
|
"metadata":
|
||||||
|
"labels":
|
||||||
|
"app.kubernetes.io/instance": "kube-prometheus-stack-1761-prometheus"
|
||||||
|
"app.kubernetes.io/managed-by": "prometheus-operator"
|
||||||
|
"app.kubernetes.io/name": "prometheus"
|
||||||
|
"app.kubernetes.io/version": "3.7.2"
|
||||||
|
"operator.prometheus.io/name": "kube-prometheus-stack-1761-prometheus"
|
||||||
|
"operator.prometheus.io/shard": "0"
|
||||||
|
"prometheus": "kube-prometheus-stack-1761-prometheus"
|
||||||
|
"annotations":
|
||||||
|
"kubectl.kubernetes.io/default-container": "prometheus"
|
||||||
|
"spec":
|
||||||
|
"volumes":
|
||||||
|
-
|
||||||
|
"name": "config"
|
||||||
|
"secret":
|
||||||
|
"secretName": "prometheus-kube-prometheus-stack-1761-prometheus"
|
||||||
|
"defaultMode": 420
|
||||||
|
-
|
||||||
|
"name": "tls-assets"
|
||||||
|
"projected":
|
||||||
|
"sources":
|
||||||
|
-
|
||||||
|
"secret":
|
||||||
|
"name": "prometheus-kube-prometheus-stack-1761-prometheus-tls-assets-0"
|
||||||
|
"defaultMode": 420
|
||||||
|
-
|
||||||
|
"name": "config-out"
|
||||||
|
"emptyDir":
|
||||||
|
"medium": "Memory"
|
||||||
|
-
|
||||||
|
"name": "prometheus-kube-prometheus-stack-1761-prometheus-rulefiles-0"
|
||||||
|
"configMap":
|
||||||
|
"name": "prometheus-kube-prometheus-stack-1761-prometheus-rulefiles-0"
|
||||||
|
"defaultMode": 420
|
||||||
|
-
|
||||||
|
"name": "web-config"
|
||||||
|
"secret":
|
||||||
|
"secretName": "prometheus-kube-prometheus-stack-1761-prometheus-web-config"
|
||||||
|
"defaultMode": 420
|
||||||
|
"initContainers":
|
||||||
|
-
|
||||||
|
"name": "init-config-reloader"
|
||||||
|
"image": "quay.io/prometheus-operator/prometheus-config-reloader:v0.86.1"
|
||||||
|
"command":
|
||||||
|
- "/bin/prometheus-config-reloader"
|
||||||
|
"args":
|
||||||
|
- "--watch-interval=0"
|
||||||
|
- "--listen-address=:8081"
|
||||||
|
- "--config-file=/etc/prometheus/config/prometheus.yaml.gz"
|
||||||
|
- "--config-envsubst-file=/etc/prometheus/config_out/prometheus.env.yaml"
|
||||||
|
- "--watched-dir=/etc/prometheus/rules/prometheus-kube-prometheus-stack-1761-prometheus-rulefiles-0"
|
||||||
|
"ports":
|
||||||
|
-
|
||||||
|
"name": "reloader-init"
|
||||||
|
"containerPort": 8081
|
||||||
|
"protocol": "TCP"
|
||||||
|
"env":
|
||||||
|
-
|
||||||
|
"name": "POD_NAME"
|
||||||
|
"valueFrom":
|
||||||
|
"fieldRef":
|
||||||
|
"apiVersion": "v1"
|
||||||
|
"fieldPath": "metadata.name"
|
||||||
|
-
|
||||||
|
"name": "SHARD"
|
||||||
|
"value": "0"
|
||||||
|
"resources": {}
|
||||||
|
"volumeMounts":
|
||||||
|
-
|
||||||
|
"name": "config"
|
||||||
|
"mountPath": "/etc/prometheus/config"
|
||||||
|
-
|
||||||
|
"name": "config-out"
|
||||||
|
"mountPath": "/etc/prometheus/config_out"
|
||||||
|
-
|
||||||
|
"name": "prometheus-kube-prometheus-stack-1761-prometheus-rulefiles-0"
|
||||||
|
"mountPath": "/etc/prometheus/rules/prometheus-kube-prometheus-stack-1761-prometheus-rulefiles-0"
|
||||||
|
"terminationMessagePath": "/dev/termination-log"
|
||||||
|
"terminationMessagePolicy": "FallbackToLogsOnError"
|
||||||
|
"imagePullPolicy": "IfNotPresent"
|
||||||
|
"securityContext":
|
||||||
|
"capabilities":
|
||||||
|
"drop":
|
||||||
|
- "ALL"
|
||||||
|
"readOnlyRootFilesystem": true
|
||||||
|
"allowPrivilegeEscalation": false
|
||||||
|
"containers":
|
||||||
|
-
|
||||||
|
"name": "prometheus"
|
||||||
|
"image": "quay.io/prometheus/prometheus:v3.7.2"
|
||||||
|
"args":
|
||||||
|
- "--config.file=/etc/prometheus/config_out/prometheus.env.yaml"
|
||||||
|
- "--web.enable-lifecycle"
|
||||||
|
- "--web.external-url=http://kube-prometheus-stack-1761-prometheus.kube-mon:9090"
|
||||||
|
- "--web.route-prefix=/"
|
||||||
|
- "--storage.tsdb.retention.time=10d"
|
||||||
|
- "--storage.tsdb.path=/prometheus"
|
||||||
|
- "--storage.tsdb.wal-compression"
|
||||||
|
- "--web.config.file=/etc/prometheus/web_config/web-config.yaml"
|
||||||
|
"ports":
|
||||||
|
-
|
||||||
|
"name": "http-web"
|
||||||
|
"containerPort": 9090
|
||||||
|
"protocol": "TCP"
|
||||||
|
"resources": {}
|
||||||
|
"volumeMounts":
|
||||||
|
-
|
||||||
|
"name": "config-out"
|
||||||
|
"readOnly": true
|
||||||
|
"mountPath": "/etc/prometheus/config_out"
|
||||||
|
-
|
||||||
|
"name": "tls-assets"
|
||||||
|
"readOnly": true
|
||||||
|
"mountPath": "/etc/prometheus/certs"
|
||||||
|
-
|
||||||
|
"name": "prometheus-kube-prometheus-stack-1761-prometheus-db"
|
||||||
|
"mountPath": "/prometheus"
|
||||||
|
"subPath": "prometheus-db"
|
||||||
|
-
|
||||||
|
"name": "prometheus-kube-prometheus-stack-1761-prometheus-rulefiles-0"
|
||||||
|
"mountPath": "/etc/prometheus/rules/prometheus-kube-prometheus-stack-1761-prometheus-rulefiles-0"
|
||||||
|
-
|
||||||
|
"name": "web-config"
|
||||||
|
"readOnly": true
|
||||||
|
"mountPath": "/etc/prometheus/web_config/web-config.yaml"
|
||||||
|
"subPath": "web-config.yaml"
|
||||||
|
"livenessProbe":
|
||||||
|
"httpGet":
|
||||||
|
"path": "/-/healthy"
|
||||||
|
"port": "http-web"
|
||||||
|
"scheme": "HTTP"
|
||||||
|
"timeoutSeconds": 3
|
||||||
|
"periodSeconds": 5
|
||||||
|
"successThreshold": 1
|
||||||
|
"failureThreshold": 6
|
||||||
|
"readinessProbe":
|
||||||
|
"httpGet":
|
||||||
|
"path": "/-/ready"
|
||||||
|
"port": "http-web"
|
||||||
|
"scheme": "HTTP"
|
||||||
|
"timeoutSeconds": 3
|
||||||
|
"periodSeconds": 5
|
||||||
|
"successThreshold": 1
|
||||||
|
"failureThreshold": 3
|
||||||
|
"startupProbe":
|
||||||
|
"httpGet":
|
||||||
|
"path": "/-/ready"
|
||||||
|
"port": "http-web"
|
||||||
|
"scheme": "HTTP"
|
||||||
|
"timeoutSeconds": 3
|
||||||
|
"periodSeconds": 15
|
||||||
|
"successThreshold": 1
|
||||||
|
"failureThreshold": 60
|
||||||
|
"terminationMessagePath": "/dev/termination-log"
|
||||||
|
"terminationMessagePolicy": "FallbackToLogsOnError"
|
||||||
|
"imagePullPolicy": "IfNotPresent"
|
||||||
|
"securityContext":
|
||||||
|
"capabilities":
|
||||||
|
"drop":
|
||||||
|
- "ALL"
|
||||||
|
"readOnlyRootFilesystem": true
|
||||||
|
"allowPrivilegeEscalation": false
|
||||||
|
-
|
||||||
|
"name": "config-reloader"
|
||||||
|
"image": "quay.io/prometheus-operator/prometheus-config-reloader:v0.86.1"
|
||||||
|
"command":
|
||||||
|
- "/bin/prometheus-config-reloader"
|
||||||
|
"args":
|
||||||
|
- "--listen-address=:8080"
|
||||||
|
- "--reload-url=http://127.0.0.1:9090/-/reload"
|
||||||
|
- "--config-file=/etc/prometheus/config/prometheus.yaml.gz"
|
||||||
|
- "--config-envsubst-file=/etc/prometheus/config_out/prometheus.env.yaml"
|
||||||
|
- "--watched-dir=/etc/prometheus/rules/prometheus-kube-prometheus-stack-1761-prometheus-rulefiles-0"
|
||||||
|
"ports":
|
||||||
|
-
|
||||||
|
"name": "reloader-web"
|
||||||
|
"containerPort": 8080
|
||||||
|
"protocol": "TCP"
|
||||||
|
"env":
|
||||||
|
-
|
||||||
|
"name": "POD_NAME"
|
||||||
|
"valueFrom":
|
||||||
|
"fieldRef":
|
||||||
|
"apiVersion": "v1"
|
||||||
|
"fieldPath": "metadata.name"
|
||||||
|
-
|
||||||
|
"name": "SHARD"
|
||||||
|
"value": "0"
|
||||||
|
"resources": {}
|
||||||
|
"volumeMounts":
|
||||||
|
-
|
||||||
|
"name": "config"
|
||||||
|
"mountPath": "/etc/prometheus/config"
|
||||||
|
-
|
||||||
|
"name": "config-out"
|
||||||
|
"mountPath": "/etc/prometheus/config_out"
|
||||||
|
-
|
||||||
|
"name": "prometheus-kube-prometheus-stack-1761-prometheus-rulefiles-0"
|
||||||
|
"mountPath": "/etc/prometheus/rules/prometheus-kube-prometheus-stack-1761-prometheus-rulefiles-0"
|
||||||
|
"terminationMessagePath": "/dev/termination-log"
|
||||||
|
"terminationMessagePolicy": "FallbackToLogsOnError"
|
||||||
|
"imagePullPolicy": "IfNotPresent"
|
||||||
|
"securityContext":
|
||||||
|
"capabilities":
|
||||||
|
"drop":
|
||||||
|
- "ALL"
|
||||||
|
"readOnlyRootFilesystem": true
|
||||||
|
"allowPrivilegeEscalation": false
|
||||||
|
"restartPolicy": "Always"
|
||||||
|
"terminationGracePeriodSeconds": 600
|
||||||
|
"dnsPolicy": "ClusterFirst"
|
||||||
|
"serviceAccountName": "kube-prometheus-stack-1761-prometheus"
|
||||||
|
"serviceAccount": "kube-prometheus-stack-1761-prometheus"
|
||||||
|
"automountServiceAccountToken": true
|
||||||
|
"shareProcessNamespace": false
|
||||||
|
"securityContext":
|
||||||
|
"runAsUser": 1000
|
||||||
|
"runAsGroup": 2000
|
||||||
|
"runAsNonRoot": true
|
||||||
|
"fsGroup": 2000
|
||||||
|
"seccompProfile":
|
||||||
|
"type": "RuntimeDefault"
|
||||||
|
"affinity":
|
||||||
|
"podAntiAffinity":
|
||||||
|
"preferredDuringSchedulingIgnoredDuringExecution":
|
||||||
|
-
|
||||||
|
"weight": 100
|
||||||
|
"podAffinityTerm":
|
||||||
|
"labelSelector":
|
||||||
|
"matchExpressions":
|
||||||
|
-
|
||||||
|
"key": "app.kubernetes.io/name"
|
||||||
|
"operator": "In"
|
||||||
|
"values":
|
||||||
|
- "prometheus"
|
||||||
|
-
|
||||||
|
"key": "app.kubernetes.io/instance"
|
||||||
|
"operator": "In"
|
||||||
|
"values":
|
||||||
|
- "kube-prometheus-stack-1761-prometheus"
|
||||||
|
"topologyKey": "kubernetes.io/hostname"
|
||||||
|
"schedulerName": "default-scheduler"
|
||||||
|
"volumeClaimTemplates":
|
||||||
|
-
|
||||||
|
"kind": "PersistentVolumeClaim"
|
||||||
|
"apiVersion": "v1"
|
||||||
|
"metadata":
|
||||||
|
"name": "prometheus-kube-prometheus-stack-1761-prometheus-db"
|
||||||
|
"spec":
|
||||||
|
"accessModes":
|
||||||
|
- "ReadWriteOnce"
|
||||||
|
"resources":
|
||||||
|
"requests":
|
||||||
|
"storage": "50Gi"
|
||||||
|
"storageClassName": "nfs-csi"
|
||||||
|
"volumeMode": "Filesystem"
|
||||||
|
"serviceName": "prometheus-operated"
|
||||||
|
"podManagementPolicy": "Parallel"
|
||||||
|
"updateStrategy":
|
||||||
|
"type": "RollingUpdate"
|
||||||
|
"revisionHistoryLimit": 10
|
||||||
|
"persistentVolumeClaimRetentionPolicy":
|
||||||
|
"whenDeleted": "Retain"
|
||||||
|
"whenScaled": "Retain"
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
---
|
||||||
|
"kind": "ServiceAccount"
|
||||||
|
"apiVersion": "v1"
|
||||||
|
"metadata":
|
||||||
|
"name": "promtail"
|
||||||
|
"namespace": "loki"
|
||||||
|
---
|
||||||
|
"kind": "ClusterRole"
|
||||||
|
"apiVersion": "rbac.authorization.k8s.io/v1"
|
||||||
|
"metadata":
|
||||||
|
"name": "promtail"
|
||||||
|
"rules":
|
||||||
|
-
|
||||||
|
"verbs":
|
||||||
|
- "get"
|
||||||
|
- "list"
|
||||||
|
- "watch"
|
||||||
|
"apiGroups":
|
||||||
|
- ""
|
||||||
|
"resources":
|
||||||
|
- "nodes"
|
||||||
|
- "nodes/proxy"
|
||||||
|
- "services"
|
||||||
|
- "endpoints"
|
||||||
|
- "pods"
|
||||||
|
---
|
||||||
|
"kind": "ClusterRoleBinding"
|
||||||
|
"apiVersion": "rbac.authorization.k8s.io/v1"
|
||||||
|
"metadata":
|
||||||
|
"name": "promtail"
|
||||||
|
"subjects":
|
||||||
|
-
|
||||||
|
"kind": "ServiceAccount"
|
||||||
|
"name": "promtail"
|
||||||
|
"namespace": "loki"
|
||||||
|
"roleRef":
|
||||||
|
"apiGroup": "rbac.authorization.k8s.io"
|
||||||
|
"kind": "ClusterRole"
|
||||||
|
"name": "promtail"
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
---
|
||||||
|
"kind": "ConfigMap"
|
||||||
|
"apiVersion": "v1"
|
||||||
|
"metadata":
|
||||||
|
"name": "promtail-config"
|
||||||
|
"namespace": "loki"
|
||||||
|
"data":
|
||||||
|
"promtail.yaml": |
|
||||||
|
server:
|
||||||
|
http_listen_port: 9080
|
||||||
|
grpc_listen_port: 0
|
||||||
|
|
||||||
|
clients:
|
||||||
|
- url: http://loki.loki.svc.cluster.local:3100/loki/api/v1/push
|
||||||
|
|
||||||
|
positions:
|
||||||
|
filename: /run/promtail/positions.yaml
|
||||||
|
|
||||||
|
scrape_configs:
|
||||||
|
- job_name: kubernetes-pods
|
||||||
|
pipeline_stages:
|
||||||
|
- cri: {}
|
||||||
|
kubernetes_sd_configs:
|
||||||
|
- role: pod
|
||||||
|
relabel_configs:
|
||||||
|
- action: replace
|
||||||
|
source_labels: [__meta_kubernetes_pod_node_name]
|
||||||
|
target_label: __host__
|
||||||
|
- action: replace
|
||||||
|
source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_name]
|
||||||
|
regex: (.+)
|
||||||
|
target_label: app
|
||||||
|
- action: replace
|
||||||
|
source_labels: [__meta_kubernetes_pod_label_app]
|
||||||
|
regex: (.+)
|
||||||
|
target_label: app
|
||||||
|
- action: replace
|
||||||
|
source_labels: [__meta_kubernetes_namespace]
|
||||||
|
target_label: namespace
|
||||||
|
- action: replace
|
||||||
|
source_labels: [__meta_kubernetes_pod_name]
|
||||||
|
target_label: pod
|
||||||
|
- action: replace
|
||||||
|
source_labels: [__meta_kubernetes_pod_container_name]
|
||||||
|
target_label: container
|
||||||
|
- action: replace
|
||||||
|
source_labels: [__meta_kubernetes_pod_uid, __meta_kubernetes_pod_container_name]
|
||||||
|
separator: /
|
||||||
|
replacement: /var/log/pods/*$1/*.log
|
||||||
|
target_label: __path__
|
||||||
@@ -0,0 +1,84 @@
|
|||||||
|
---
|
||||||
|
"kind": "DaemonSet"
|
||||||
|
"apiVersion": "apps/v1"
|
||||||
|
"metadata":
|
||||||
|
"name": "promtail"
|
||||||
|
"namespace": "loki"
|
||||||
|
"spec":
|
||||||
|
"selector":
|
||||||
|
"matchLabels":
|
||||||
|
"app": "promtail"
|
||||||
|
"template":
|
||||||
|
"metadata":
|
||||||
|
"labels":
|
||||||
|
"app": "promtail"
|
||||||
|
"spec":
|
||||||
|
"volumes":
|
||||||
|
-
|
||||||
|
"name": "config"
|
||||||
|
"configMap":
|
||||||
|
"name": "promtail-config"
|
||||||
|
"defaultMode": 420
|
||||||
|
-
|
||||||
|
"name": "run"
|
||||||
|
"hostPath":
|
||||||
|
"path": "/run/promtail"
|
||||||
|
"type": ""
|
||||||
|
-
|
||||||
|
"name": "pods"
|
||||||
|
"hostPath":
|
||||||
|
"path": "/var/log/pods"
|
||||||
|
"type": ""
|
||||||
|
"containers":
|
||||||
|
-
|
||||||
|
"name": "promtail"
|
||||||
|
"image": "grafana/promtail:3.4.2"
|
||||||
|
"args":
|
||||||
|
- "-config.file=/etc/promtail/promtail.yaml"
|
||||||
|
- "-config.expand-env=true"
|
||||||
|
"ports":
|
||||||
|
-
|
||||||
|
"name": "http-metrics"
|
||||||
|
"containerPort": 9080
|
||||||
|
"protocol": "TCP"
|
||||||
|
"env":
|
||||||
|
-
|
||||||
|
"name": "HOSTNAME"
|
||||||
|
"valueFrom":
|
||||||
|
"fieldRef":
|
||||||
|
"apiVersion": "v1"
|
||||||
|
"fieldPath": "spec.nodeName"
|
||||||
|
"resources": {}
|
||||||
|
"volumeMounts":
|
||||||
|
-
|
||||||
|
"name": "config"
|
||||||
|
"mountPath": "/etc/promtail"
|
||||||
|
-
|
||||||
|
"name": "run"
|
||||||
|
"mountPath": "/run/promtail"
|
||||||
|
-
|
||||||
|
"name": "pods"
|
||||||
|
"readOnly": true
|
||||||
|
"mountPath": "/var/log/pods"
|
||||||
|
"terminationMessagePath": "/dev/termination-log"
|
||||||
|
"terminationMessagePolicy": "File"
|
||||||
|
"imagePullPolicy": "IfNotPresent"
|
||||||
|
"securityContext":
|
||||||
|
"privileged": true
|
||||||
|
"runAsUser": 0
|
||||||
|
"restartPolicy": "Always"
|
||||||
|
"terminationGracePeriodSeconds": 30
|
||||||
|
"dnsPolicy": "ClusterFirst"
|
||||||
|
"serviceAccountName": "promtail"
|
||||||
|
"serviceAccount": "promtail"
|
||||||
|
"securityContext": {}
|
||||||
|
"schedulerName": "default-scheduler"
|
||||||
|
"tolerations":
|
||||||
|
-
|
||||||
|
"operator": "Exists"
|
||||||
|
"updateStrategy":
|
||||||
|
"type": "RollingUpdate"
|
||||||
|
"rollingUpdate":
|
||||||
|
"maxUnavailable": 1
|
||||||
|
"maxSurge": 0
|
||||||
|
"revisionHistoryLimit": 10
|
||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user