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:
ArgoCD Setup
2026-03-14 02:30:35 -03:00
parent 6a8f076d8c
commit 9b3168b996
14 changed files with 1294 additions and 0 deletions

View File

@@ -0,0 +1,17 @@
{
"name": "demo-app",
"version": "1.0.0",
"description": "Demo app for APM with OpenTelemetry - Workshop Aula 15",
"main": "app.js",
"scripts": {
"start": "node --require ./tracing.js app.js"
},
"dependencies": {
"express": "^4.21.2",
"pg": "^8.13.1",
"@opentelemetry/sdk-node": "^0.57.2",
"@opentelemetry/auto-instrumentations-node": "^0.56.1",
"@opentelemetry/exporter-trace-otlp-grpc": "^0.57.2",
"@opentelemetry/exporter-metrics-otlp-grpc": "^0.57.2"
}
}