Telelemetry
Integration with Multiple Backends
When we install the helm chart for OBLV Deploy, it installs an OTel collector and a Prometheus backend.
Users can configure this Otel collector to send telemetry data in multiple backends.
-
Get the config map into a file:
kubectl get cm oblv-deploy-stack-oblv-deploy-chart-collector-config \
-n kube-system -o yaml > /tmp/collector-config.yaml
cat /tmp/collector-config.yaml
apiVersion: v1
data:
collector-config.yaml: |
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
http:
endpoint: 0.0.0.0:4318
exporters:
debug:
verbosity: detailed
prometheus: # pull based exporter
endpoint: 0.0.0.0:8889
send_timestamps: true
service:
pipelines:
traces:
receivers: [otlp]
exporters: [debug]
metrics:
receivers: [otlp]
exporters: [debug, prometheus]
logs:
receivers: [otlp]
exporters: [debug]
kind: ConfigMap -
Next, we can edit this config file to add multiple backends for different telemetry data. We can add Loki backend for logs and a Jaeger backend for traces:
apiVersion: v1
data:
collector-config.yaml: |
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
http:
endpoint: 0.0.0.0:4318
exporters:
debug:
verbosity: detailed
prometheus: # pull based exporter
endpoint: 0.0.0.0:8889
send_timestamps: true
otlp/jaeger:
endpoint: https://jaeger.oblv.com:4317
loki:
endpoint: https://loki.example.com:3100/loki/api/v1/push
service:
pipelines:
traces:
receivers: [otlp]
exporters: [debug, otlp/jaeger]
metrics:
receivers: [otlp]
exporters: [debug, prometheus]
logs:
receivers: [otlp]
exporters: [debug, loki]
kind: ConfigMap -
After editing the file, we can apply the changes to the configmap:
kubectl apply -f /tmp/collector-config.yaml -n kube-system
configmap/oblv-deploy-stack-oblv-deploy-chart-collector-config configured -
Once, the config map has been updated, we can restart the pod for the collector:
kubectl rollout restart \
deployment/oblv-deploy-stack-oblv-deploy-chart-collector \
-n kube-system
deployment.apps/oblv-deploy-stack-oblv-deploy-chart-collector restarted