aula-15: implementação completa APM (Tempo + OTel + demo app)
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.
This commit is contained in:
88
aula-15/otel-collector-values.yaml
Normal file
88
aula-15/otel-collector-values.yaml
Normal file
@@ -0,0 +1,88 @@
|
||||
# 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]
|
||||
Reference in New Issue
Block a user