Sign inSign up

leontoetenel/alert_streamer

By leontoetenel

•Updated 11 months ago

Kafka consumer that forwards alerts to Dynatrace Events API (with Redis/Valkey lookup).

Image
Monitoring & observability
0

1.1K

leontoetenel/alert_streamer repository overview

⁠alert_streamer

alert_streamer is een Python-service die alerts consumeert via de Kafka REST API, deze verrijkt met Dynatrace entity ID’s uit Redis/Valkey, en ze doorstuurt als CUSTOM_ALERT events naar de Dynatrace Events API v2.


⁠Features

  • Kafka REST consumer voor alert-ingestie
  • Redis/Valkey cache lookup voor Dynatrace entityId’s
  • Dynatrace Events API v2 integratie
  • Periodieke heartbeat-logs elke 60s
  • TLS-modus: safe (certificaten gevalideerd) of unsafe (equivalent van curl -k)
  • Klaar voor OpenShift en Docker (non-root, arbitrary UID-proof)

⁠Voorbeeld JSON alert

{
  "type": "HOST | PROCESS_GROUP | PROCESS_GROUP_INSTANCE",
  "name": "Naam van de host of (process group / instance)",
  "timestamp": "2025-10-15T11:15:00Z",
  "alert_name": "Korte titel van de alert",
  "message": "Uitgebreide beschrijving van het probleem",
  "severity": "info | warning | error | critical",
  "link_to_source": "http://url.naar/bron/log/of/dashboard",
  "timeout": 600
}

⁠Environment variables

VariableRequiredExample valueDescription
KAFKA_REST_URL✅https://kafka-rest.mycompany.comKafka REST API base URL
KAFKA_USER✅a336856a-62c3-10e3-d217-...Kafka REST username
KAFKA_PASS✅4c9190fc-28cd-d51b-d33e-...Kafka REST password
KAFKA_TOPIC✅alerts.dynatraceKafka topic voor inkomende alerts
VALKEY_HOST✅valkeyHostname van Valkey/Redis
DT_API_URL✅https://<tenant>.live.dynatrace.comDynatrace environment base URL
DT_API_TOKEN✅dt0c01...Dynatrace API Token (Events v2)
SECURITY_MODE✅safe (default) / unsafeTLS-validatie: safe = certificaten checken, unsafe = gedrag als curl -k

⁠Local run (Docker)

docker run --rm \
  -e KAFKA_BOOTSTRAP=kafka:9092 \
  -e KAFKA_TOPIC=alerts.dynatrace \
  -e VALKEY_HOST=valkey \
  -e DT_API_URL=https://<tenant>.live.dynatrace.com \
  -e DT_API_TOKEN=*** \
  leontoetenel/alert_streamer:latest

⁠OpenShift / Kubernetes deployment

⁠ConfigMap
apiVersion: v1
kind: ConfigMap
metadata:
  name: alert-streamer-config
data:
  DT_API_URL: "https://<tenant>.live.dynatrace.com"
  KAFKA_REST_URL: "https://kafka-rest.mycompany.com"
  KAFKA_TOPIC: "alerts.dynatrace"
  VALKEY_HOST: "valkey"
  SECURITY_MODE: "safe"
⁠Secret
apiVersion: v1
kind: Secret
metadata:
  name: alert-streamer-secrets
type: Opaque
stringData:
  DT_API_URL: "https://<tenant>.live.dynatrace.com"
  DT_API_TOKEN: "<your-api-token>"
⁠Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
  name: alert-streamer
spec:
  replicas: 1
  selector:
    matchLabels:
      app: alert-streamer
  template:
    metadata:
      labels:
        app: alert-streamer
    spec:
      containers:
      - name: alert-streamer
        image: docker.io/leontoetenel/alert_streamer:latest
        imagePullPolicy: IfNotPresent
        envFrom:
        - configMapRef:
            name: alert-streamer-config
        - secretRef:
            name: alert-streamer-secrets
        resources:
          requests:
            cpu: "100m"
            memory: "128Mi"
          limits:
            cpu: "500m"
            memory: "512Mi"
        securityContext:
          allowPrivilegeEscalation: false
          runAsNonRoot: true
          seccompProfile:
            type: RuntimeDefault
      securityContext:
        fsGroup: 0

Tag summary

Content type

Image

Digest

sha256:ea22effd5…

Size

75.6 MB

Last updated

12 months ago

docker pull leontoetenel/alert_streamer