]> git.frustrated-labs.net Git - dotfiles.git/commitdiff
feat: add configs for OTEL collector and tempo deployments
authorAlexander Goussas <[email protected]>
Sun, 31 May 2026 03:51:04 +0000 (22:51 -0500)
committerAlexander Goussas <[email protected]>
Sun, 31 May 2026 03:51:04 +0000 (22:51 -0500)
k8s/otelcol.yaml [new file with mode: 0644]
k8s/tempo.yaml [new file with mode: 0644]

diff --git a/k8s/otelcol.yaml b/k8s/otelcol.yaml
new file mode 100644 (file)
index 0000000..bdf2148
--- /dev/null
@@ -0,0 +1,38 @@
+apiVersion: opentelemetry.io/v1beta1
+kind: OpenTelemetryCollector
+metadata:
+  name: otel
+spec:
+  config:
+    receivers:
+      otlp:
+        protocols:
+          grpc:
+            endpoint: 0.0.0.0:4317
+          http:
+            endpoint: 0.0.0.0:4318
+    processors:
+      memory_limiter:
+        check_interval: 1s
+        limit_percentage: 75
+        spike_limit_percentage: 15
+    exporters:
+      prometheus:
+        endpoint: "0.0.0.0:8887"
+      otlp/tempo:
+        endpoint: "tempo:4317"
+        tls:
+          insecure: true
+    service:
+      pipelines:
+        metrics:
+          receivers:
+            - otlp
+          processors:
+            - memory_limiter
+          exporters:
+            - prometheus
+        traces:
+          receivers: [otlp]
+          processors: [memory_limiter]
+          exporters: [otlp/tempo]
diff --git a/k8s/tempo.yaml b/k8s/tempo.yaml
new file mode 100644 (file)
index 0000000..d847ed0
--- /dev/null
@@ -0,0 +1,92 @@
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: tempo-config
+data:
+  tempo-config: |
+    stream_over_http_enabled: true
+    server:
+      http_listen_port: 3200
+      log_level: info
+    
+    query_frontend:
+      search:
+        duration_slo: 5s
+        throughput_bytes_slo: 1.073741824e+09
+        metadata_slo:
+          duration_slo: 5s
+          throughput_bytes_slo: 1.073741824e+09
+      trace_by_id:
+        duration_slo: 5s
+    
+    distributor:
+      receivers:
+        otlp:
+          protocols:
+            grpc:
+    
+    ingester:
+      max_block_duration: 5m
+    
+    compactor:
+      compaction:
+        block_retention: 1h
+    
+    storage:
+      trace:
+        backend: local
+        wal:
+          path: /var/tempo/wal
+        local:
+          path: /var/tempo/blocks
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: tempo
+spec:
+  selector:
+    matchLabels:
+      app: tempo
+  replicas: 1
+  template:
+    metadata:
+      labels:
+        app: tempo
+    spec:
+      volumes:
+        - name: tempo-config-vol
+          configMap:
+            name: tempo-config
+            items:
+              - key: tempo-config
+                path: tempo.yaml
+      containers:
+        - name: tempo
+          image: grafana/tempo:2.10.5
+          ports:
+            - containerPort: 4317
+            - containerPort: 3200
+          args: [ "-config.file=/conf/tempo.yaml" ]
+          volumeMounts:
+            - name: tempo-config-vol
+              mountPath: /conf
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: tempo
+  labels:
+    app: tempo
+spec:
+  selector:
+    app: tempo
+  ports:
+  - port: 4317
+    name: tempo-otel-grpc
+    protocol: TCP
+    targetPort: 4317
+  - port: 3200
+    name: tempo-http-frontend
+    targetPort: 3200