Componentes: - tempo-values.yaml: Grafana Tempo monolithic, 256Mi, 10Gi PVC - otel-collector-values.yaml: recebe OTLP, exporta traces→Tempo, gera span metrics (RED)→Victoria Metrics via spanmetrics connector - demo-app/: Node.js com rotas /fast (1 query), /slow (N+1, 51 queries), /fixed (JOIN), auto-instrumentado com OpenTelemetry - alerts/latency-alerts.yaml: VMRule com Doherty threshold (p95>400ms) - setup.sh: instala Tempo, OTel Collector, configura Grafana datasource, deploy demo app via ConfigMap (sem Docker build necessário) - cleanup.sh: remove apenas recursos da aula-15, preserva aula-12 Zero hardcoded hostnames. Tudo via .env e placeholders.
89 lines
1.8 KiB
YAML
89 lines
1.8 KiB
YAML
# OpenTelemetry Collector
|
|
# Chart: open-telemetry/opentelemetry-collector
|
|
# Recebe telemetria das apps e encaminha para Tempo (traces) e Victoria Metrics (metrics)
|
|
|
|
mode: deployment
|
|
|
|
replicaCount: 1
|
|
|
|
image:
|
|
repository: otel/opentelemetry-collector-contrib
|
|
|
|
resources:
|
|
requests:
|
|
cpu: 50m
|
|
memory: 128Mi
|
|
limits:
|
|
cpu: 200m
|
|
memory: 256Mi
|
|
|
|
# Only expose OTLP ports (disable jaeger, zipkin)
|
|
ports:
|
|
otlp:
|
|
enabled: true
|
|
containerPort: 4317
|
|
servicePort: 4317
|
|
protocol: TCP
|
|
appProtocol: grpc
|
|
otlp-http:
|
|
enabled: true
|
|
containerPort: 4318
|
|
servicePort: 4318
|
|
protocol: TCP
|
|
jaeger-compact:
|
|
enabled: false
|
|
jaeger-thrift:
|
|
enabled: false
|
|
jaeger-grpc:
|
|
enabled: false
|
|
zipkin:
|
|
enabled: false
|
|
|
|
config:
|
|
receivers:
|
|
otlp:
|
|
protocols:
|
|
grpc:
|
|
endpoint: "0.0.0.0:4317"
|
|
http:
|
|
endpoint: "0.0.0.0:4318"
|
|
|
|
connectors:
|
|
spanmetrics:
|
|
histogram:
|
|
explicit:
|
|
buckets: [5ms, 10ms, 25ms, 50ms, 100ms, 250ms, 500ms, 1s, 2.5s, 5s, 10s]
|
|
dimensions:
|
|
- name: http.method
|
|
- name: http.route
|
|
- name: http.status_code
|
|
namespace: ""
|
|
|
|
exporters:
|
|
otlp/tempo:
|
|
endpoint: "tempo.monitoring:4317"
|
|
tls:
|
|
insecure: true
|
|
prometheusremotewrite:
|
|
endpoint: "http://vmsingle-monitoring-victoria-metrics-k8s-stack.monitoring:8429/api/v1/write"
|
|
|
|
processors:
|
|
batch:
|
|
timeout: 5s
|
|
send_batch_size: 1024
|
|
memory_limiter:
|
|
check_interval: 5s
|
|
limit_percentage: 80
|
|
spike_limit_percentage: 25
|
|
|
|
service:
|
|
pipelines:
|
|
traces:
|
|
receivers: [otlp]
|
|
processors: [memory_limiter, batch]
|
|
exporters: [otlp/tempo, spanmetrics]
|
|
metrics/spanmetrics:
|
|
receivers: [spanmetrics]
|
|
processors: [batch]
|
|
exporters: [prometheusremotewrite]
|