Enxergue
cada requisição.
Do trace distribuído ao deploy que quebrou o SLO: spans, flame graph, service map, APDEX, error budget e logs de 7 serviços em produção — instrumentados com OpenTelemetry e correlacionados no Zabbix 8.0. Uma tela por pilar de observabilidade, sem trocar de ferramenta.
Z
Observabilidade APM/Serviços/CATÁLOGO (RED)
Catálogo de serviços · método RED
Rate · Errors · Duration · 7 serviços / 12 rotas · APDEX T=500ms · SLO 24h · heat de erro 0% → 12,34%| Serviço | Versão | Req/s | Tend. | Erros | Erro% | P50 | P95 | P99 | APDEX | Traces | Req 24h | Err 24h | Alvo | Disp. | Burn 1h | SLO |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
pedidos-api loja · prod · 5 rotas · 6d |
v3.1.0 | 1,05 |
246 | 6,49% | 13,2 | 247,8 | 345,1 | 0,88 | 3.791 | 46.273 | 2.618 | 99,9% | 94,342% | 0,9× | VIOLADO | |
auth-service loja · prod · 1 rota · 6d |
v3.1.0 | 0,61 |
0 | 0% | 1,47 | 10,6 | 18,2 | 0,99 | 2.207 | 26.952 | 0 | 99,9% | 100% | 0,0× | OK | |
fatura-api faturamento · stg · 2 rotas |
v1.2.0 | 0,49 |
32 | 1,82% | 36,5 | 100,8 | 171,8 | 0,97 | 1.755 | 21.375 | 450 | 99,9% | 97,894% | 0,4× | VIOLADO | |
estoque-service loja · prod · 1 rota · 6d |
v3.1.0 | 0,31 |
0 | 0% | 34,5 | 63,0 | 85,0 | 0,98 | 1.108 | 13.479 | 0 | 99,9% | 100% | 0,0× | OK | |
pagamento-service loja · prod · regressão 19:25 |
v3.1.1 | 0,31 |
136 | 12,34% | 103,0 | 185,0 | 248,0 | 0,85 | 1.102 | 13.478 | 1.271 | 99,5% | 90,574% | 14,4× | VIOLADO | |
notificacao-service loja · prod · 1 rota · 6d |
v3.1.0 | 0,27 |
0 | 0% | 14,0 | 26,7 | 38,8 | 0,99 | 981 | 12.206 | 0 | 99,9% | 100% | 0,0× | OK | |
cobranca-service faturamento · stg · 1 rota |
v1.2.0 | 0,24 |
32 | 3,66% | 29,9 | 44,8 | 57,7 | 0,96 | 875 | 10.690 | 451 | 99,9% | 95,780% | 0,3× | VIOLADO |
| Rota | Serviço | Req | Erros | Erro% | P50 | P95 | P99 | Tempo | Share do tempo total | % |
|---|---|---|---|---|---|---|---|---|---|---|
| GET/pedido/{item} | pedidos-api | 1.103 | 136 502 | 12,33% | 38 | 328 | 470 | 3,6 min | 41,2% | |
| GET/cobrar/{item} | pagamento-service | 1.102 | 136 502 | 12,34% | 88 | 184 | 248 | 2,0 min | 22,9% | |
| GET/fatura/{cliente} | fatura-api | 875 | 32 502 | 3,66% | 41 | 122 | 172 | 1,0 min | 11,5% | |
| GET/reserva/{item} | estoque-service | 1.108 | 0 | 0% | 35 | 63 | 85 | 40,0 s | 7,6% | |
| GET/cobrar | cobranca-service | 875 | 32 502 | 3,66% | 30 | 45 | 58 | 26,4 s | 5,0% | |
| GET/pedidos | pedidos-api | 1.103 | 0 | 0% | 12 | 47 | 68 | 21,6 s | 4,1% | |
| GET/enviar | notificacao-service | 981 | 0 | 0% | 14 | 27 | 39 | 14,3 s | 2,7% | |
| GET/faturas | fatura-api | 880 | 0 | 0% | 9 | 32 | 55 | 10,3 s | 2,0% | |
| GET/valida | auth-service | 2.207 | 0 | 0% | 1,5 | 11 | 18 | 6,0 s | 1,1% | |
| GET/trabalho | pedidos-api | 375 | 0 | 0% | 8 | 17 | 24 | 4,4 s | 0,8% | |
| GET/ | pedidos-api | 1.100 | 0 | 0% | 4 | 10 | 14 | 4,1 s | 0,8% | |
| GET/erro | pedidos-api | 110 | 110 RuntimeErr | 100% | 4 | 17 | 24 | 555 ms | 0,1% |
Z
Observabilidade APM/Serviços/SAÚDE (RED)
tolerante 340 · frustrado 446
11.819 traces · 197 req/min
0,12 err/s · pico 0,44 @ 20:30
global 208,3 · pico 870 · SLA 500
4 com erro · 2 CRIT · 2 WARN
amostragem 100% · 12 rotas
4 SLOs violados · 1h35 em curso
Problemas ativos
2 · severidade ALTA · fonte OTel · 5xx > 5% · janela 1hdo
incidente
Correlação do incidente · deploy → 5xx → propagação
19:25 → 21:00 · 5 marcos · 336 × 502 + 110 × RuntimeErrorrollout 100% · 2 vCPU
12,34% · P95 185 ms
336 × 502 acumulados
6,49% · /pedido/{item}
446 erros · 2 ativos
Serviços · método RED
rate · errors · duration · 7 serviços + 3 agregados · APDEX T=500 ms| Serviço | Versão | Req/s | Traces | Erros | Erro% | P50 | P95 | P99 | APDEX | Req/s 1h | Budget | SLO 24h |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| pedidos-api | v3.1.0 | 1,05 | 3.791 | 246 | 6,49% | 13,2 | 247,8 | 345,1 | 0,88 | 0% | VIOLADO 94,342% | |
| auth-service | v3.1.0 | 0,61 | 2.207 | 0 | 0% | 1,47 | 10,6 | 18,2 | 0,99 | 100% | OK 100% | |
| fatura-api | v1.2.0 | 0,49 | 1.755 | 32 | 1,82% | 36,5 | 100,8 | 171,8 | 0,97 | 0% | VIOLADO 97,894% | |
| estoque-service | v3.1.0 | 0,31 | 1.108 | 0 | 0% | 34,5 | 63,0 | 85,0 | 0,98 | 100% | OK 100% | |
| pagamento-service | v3.1.1 | 0,31 | 1.102 | 136 | 12,34% | 103,0 | 185,0 | 248,0 | 0,85 | 0% | VIOLADO 90,574% | |
| notificacao-service | v3.1.0 | 0,27 | 981 | 0 | 0% | 14,0 | 26,7 | 38,8 | 0,99 | 100% | OK 100% | |
| cobranca-service | v1.2.0 | 0,24 | 875 | 32 | 3,66% | 29,9 | 44,8 | 57,7 | 0,96 | 0% | VIOLADO 95,780% | |
| Σ loja (5 svc) | v3.1.0/1 | 2,55 | 9.189 | 382 | 4,16% | 13,8 | 247,8 | 345,1 | 0,94 | 0% | 3 violados · 2 OK | |
| Σ faturamento (2 svc) | v1.2.0 | 0,73 | 2.630 | 64 | 2,43% | 34,3 | 100,8 | 171,8 | 0,97 | 0% | 2 violados · 0 OK | |
| Σ TOTAL · 7 serviços | 3 versões | 3,28 | 11.819 | 446 | 3,77% | 12,5 | 208,3 | 870 | 0,95 | 0% | 4 violados · 3 OK |
Tráfego × Erros
req/s 3,28 · err/s 0,12 · pico 0,44 · Σ 446Tempo de execução por camada
54,27 ms / req · 2,54 spans OTel por req · 4 camadas| Camada | Tempo/req | % tempo | Chamadas 1h | Cham./req | P95 do span | Serviços |
|---|---|---|---|---|---|---|
| web · http.server | 50,37 ms | 92,81% | 11.819 | 1,00 | 208,3 ms | 7 |
| db · postgres | 1,86 ms | 3,43% | 4.342 | 0,37 | 4,2 ms | 2 |
| internal · app | 1,16 ms | 2,14% | 11.819 | 1,00 | 3,1 ms | 7 |
| cache · redis | 0,88 ms | 1,62% | 1.980 | 0,17 | 0,9 ms | 1 |
| Σ por requisição | 54,27 ms | 100,00% | 29.960 | 2,54 | 208,3 ms | 10 nós |
Distribuição de latência P95
7 séries · escala log 5 → 1000 ms · SLA 500 ms
Z
Observabilidade APM/Serviços/MAPA DE SERVIÇOS
Mapa de serviços · topologia em 4 camadas
10 nós · 15 arestas · 2 críticas · profundidade máx 3 saltos · rótulo = hits/s · derivado de spans OTLP · 26.449 spans/hArestas · fluxo par-a-par (15)
ordenado por hits/s · 2 críticas · Σ 7,35/s · 26.449 spans/h · 446 erros · janela 1h · prod| Aresta (origem → destino) | Salto | Fluxo | hits/s | err% | erros | P95 ms | spans/h | % malha |
|---|---|---|---|---|---|---|---|---|
| auth-service→loja (db) | L1→L3 | 1,22 | 0% | 0 | 1,2 | 4.392 | 16,6% | |
| user→pedidos-api | L0→L1 | 1,05 | 6,49% | 246 | 247,8 | 3.791 | 14,3% | |
| pedidos-api→loja (db) | L1→L3 | 0,90 | 0% | 0 | 1,8 | 3.240 | 12,2% | |
| user→auth-service | L0→L1 | 0,61 | 0% | 0 | 10,6 | 2.207 | 8,3% | |
| pedidos-api→redis (cache) | L1→L3 | 0,55 | 0% | 0 | 0,4 | 1.980 | 7,5% | |
| fatura-api→loja (db) | L1→L3 | 0,49 | 0% | 0 | 3,0 | 1.755 | 6,7% | |
| user→fatura-api | L0→L1 | 0,42 | 1,82% | 32 | 100,8 | 1.512 | 5,7% | |
| pedidos-api→pagamento-service | L1→L2 | 0,31 | 12,34% | 136 | 185,0 | 1.102 | 4,2% |
| Aresta (origem → destino) | Salto | Fluxo | hits/s | err% | erros | P95 ms | spans/h | % malha |
|---|---|---|---|---|---|---|---|---|
| pedidos-api→estoque-service | L1→L2 | 0,31 | 0% | 0 | 63,0 | 1.108 | 4,2% | |
| pagamento-service→loja (db) | L2→L3 | 0,31 | 0% | 0 | 2,4 | 1.102 | 4,2% | |
| estoque-service→loja (db) | L2→L3 | 0,31 | 0% | 0 | 2,1 | 1.108 | 4,2% | |
| notificacao-service→redis | L2→L3 | 0,27 | 0% | 0 | 0,5 | 981 | 3,7% | |
| fatura-api→cobranca-service | L1→L2 | 0,24 | 3,66% | 32 | 44,8 | 875 | 3,3% | |
| pedidos-api→notificacao-service | L1→L2 | 0,18 | 0% | 0 | 26,7 | 648 | 2,4% | |
| cobranca-service→loja (db) | L2→L3 | 0,18 | 0% | 0 | 1,9 | 648 | 2,4% | |
| Σ 15 arestas·10 nós | L0→L3 | 7,35 | 1,69% | 446 | 208,3 | 26.449 | 100% |
Caminho crítico do 502
trace 0ecf2e3e · 104,27 ms| Salto | Tipo | tempo | % trace | spans |
|---|---|---|---|---|
| user root | web | 0,00 ms | — | 1 |
| pedidos-api self | internal | 3,50 ms | 3,4% | 3 |
| ↳ redis GET | cache | 0,22 ms | incl. | 1 |
| estoque-service | web | 3,90 ms | 3,7% | 1 |
| ↳ notificacao | web | 0,90 ms | incl. | 1 |
| pagamento-service | web | 95,10 ms | 91,2% | 4 |
| loja (db) | db | 1,77 ms | 1,7% | 2 |
Nós por hits/s
10 nós · ranqueado · 1h| Nó | Fluxo | /s | err% | P95 ms | spans |
|---|---|---|---|---|---|
| loja db | 3,41 | 0% | 3,0 | 12.245 | |
| user borda | 2,08 | 3,70% | 248 | 7.510 | |
| pedidos-api | 1,05 | 6,49% | 247,8 | 3.791 | |
| redis cache | 0,82 | 0% | 0,5 | 2.961 | |
| auth-service | 0,61 | 0% | 10,6 | 2.207 | |
| fatura-api | 0,49 | 1,82% | 100,8 | 1.755 | |
| estoque-service | 0,31 | 0% | 63,0 | 1.108 | |
| pagamento-service | 0,31 | 12,34% | 185,0 | 1.102 | |
| notificacao-service | 0,27 | 0% | 26,7 | 981 | |
| cobranca-service | 0,24 | 3,66% | 44,8 | 875 |
Camadas da malha
saídas por camada · 1h| Camada | nós | arestas | hits/s | err% | spans/h |
|---|---|---|---|---|---|
| L0 borda | 1 | ↗ 3 | 2,08 | 3,70% | 7.510 |
| L1 svc borda | 3 | ↗ 8 | 4,20 | 1,11% | 15.100 |
| L2 svc interno | 4 | ↗ 4 | 1,07 | 0% | 3.839 |
| L3 infra | 2 | ↙ 8 | 4,23 | 0% | 15.206 |
| Σ malha saídas | 10 | 15 | 7,35 | 1,69% | 26.449 |
Z
Observabilidade APM/Endpoints/12 ROTAS
Endpoints monitorados · http.server.request
12 rotas · ordenado por tempo total · latência em ms · janela 1h · prod| Endpoint | Serviço | Ver. | Requests | req/s | % tot. | Tempo tot. | P50 | P95 | P99 | Tend. P95 · 5 min 20:0020:3021:00 |
Erros | Err% | APDEX | SLO 24h |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| GET/pedido/{item} | pedidos-api | v3.1.0 | 1.103 | 0,31 | 9,3% | 3,6 min | 38 | 328 | 470 | 412 | 136 | 12,33% | 0,88 | 94,34% |
| GET/cobrar/{item} | pagamento | v3.1.1 | 1.102 | 0,31 | 9,3% | 2,0 min | 88 | 184 | 248 | 231 | 136 | 12,34% | 0,88 | 90,57% |
| GET/fatura/{cliente} | fatura-api | v1.2.0 | 875 | 0,24 | 7,4% | 1,0 min | 41 | 122 | 172 | 158 | 32 | 3,66% | 0,96 | 97,89% |
| GET/reserva/{item} | estoque | v3.1.0 | 1.108 | 0,31 | 9,4% | 40 s | 35 | 63 | 85 | 79 | 0 | 0% | 1,00 | 100% |
| GET/cobrar | cobranca | v1.2.0 | 875 | 0,24 | 7,4% | 26,4 s | 30 | 45 | 58 | 54 | 32 | 3,66% | 0,96 | 95,78% |
| GET/pedidos | pedidos-api | v3.1.0 | 1.103 | 0,31 | 9,3% | 21,6 s | 12 | 47 | 68 | 61 | 0 | 0% | 1,00 | 94,34% |
| GET/enviar | notificacao | v3.1.0 | 981 | 0,27 | 8,3% | 14,3 s | 14 | 27 | 39 | 36 | 0 | 0% | 1,00 | 100% |
| GET/faturas | fatura-api | v1.2.0 | 880 | 0,24 | 7,4% | 10,3 s | 9 | 32 | 55 | 48 | 0 | 0% | 1,00 | 97,89% |
| GET/valida | auth-service | v3.1.0 | 2.207 | 0,61 | 18,7% | 6,0 s | 1,5 | 11 | 18 | 16 | 0 | 0% | 1,00 | 100% |
| GET/trabalho | pedidos-api | v3.1.0 | 375 | 0,10 | 3,2% | 4,4 s | 8 | 17 | 24 | 22 | 0 | 0% | 1,00 | 94,34% |
| GET/ | pedidos-api | v3.1.0 | 1.100 | 0,31 | 9,3% | 4,1 s | 4 | 10 | 14 | 13 | 0 | 0% | 1,00 | 94,34% |
| GET/erro | pedidos-api | v3.1.0 | 110 | 0,03 | 0,9% | 555 ms | 4 | 17 | 24 | 21 | 110 | 100% | 0,00 | 94,34% |
Distribuição de requests por serviço
Σ 11.819 requests · 7 serviços · 12 rotas · 2 apps · 3,28 req/s| Serviço | App | Ver. | Rotas | Traces | Participação | % | req/s | Erros | Err% | P50 | P95 | P99 | APDEX | SLO 24h |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| pedidos-api | loja | v3.1.0 | 5 | 3.791 | 32,1% | 1,05 | 246 | 6,49% | 13,2 | 247,8 | 345,1 | 0,88 | 94,34% | |
| auth-service | loja | v3.1.0 | 1 | 2.207 | 18,7% | 0,61 | 0 | 0% | 1,47 | 10,6 | 18,2 | 0,99 | 100% | |
| fatura-api | faturamento | v1.2.0 | 2 | 1.755 | 14,8% | 0,49 | 32 | 1,82% | 36,5 | 100,8 | 171,8 | 0,97 | 97,89% | |
| estoque-service | loja | v3.1.0 | 1 | 1.108 | 9,4% | 0,31 | 0 | 0% | 34,5 | 63,0 | 85,0 | 0,98 | 100% | |
| pagamento-service | loja | v3.1.1 | 1 | 1.102 | 9,3% | 0,31 | 136 | 12,34% | 103,0 | 185,0 | 248,0 | 0,85 | 90,57% | |
| notificacao-service | loja | v3.1.0 | 1 | 981 | 8,3% | 0,27 | 0 | 0% | 14,0 | 26,7 | 38,8 | 0,99 | 100% | |
| cobranca-service | faturamento | v1.2.0 | 1 | 875 | 7,4% | 0,24 | 32 | 3,66% | 29,9 | 44,8 | 57,7 | 0,96 | 95,78% | |
| Σ 7 serviços | 2 apps | 3 versões | 12 | 11.819 | 4 serviços com 5xx · 3 limpos | 100% | 3,28 | 446 | 3,77% | 12,5 | 208,3 | 870 | 0,95 | 96,68% |
Top 5 · latência P50→P95→P99
SLA 500 ms · cauda em /pedido/{item}Top 5 · erros por endpoint
5 rotas de 12 · 446 ocorr. · faixa = bucket de 5 min
Z
Observabilidade APM/Traces/GET /pedido/{item} · 502
Waterfall · árvore de chamada do trace 0ecf2e3e
13 spans · L0–L3 · 5 spans 502 · base 104,27 ms · Σ self 104,27 msFlame Graph
4 níveis · 13 spans · pagamento 91,2%Atributos do span
CLIENT · ERROR · 22 attrsEventos & exceção
5 eventos · 1 exceptionFile "app/main.py", line 136, in cobrar_item
resp = gw.charge(item=9137, valor=249.90)
File "app/gateway.py", line 84, in charge
RuntimeError: falha simulada no pagamento
I/O e correlação
2 SQL · 3 redis · 2 logsDistribuição de execução
self-time · 104,27 ms
Z
Observabilidade APM/Traces/TRACES & APDEX
Duração dos traces
log Y 0,1ms–1s · 11.819 pontos · 20:00→21:00 · exemplars linkam traceDistribuição
16 buckets · 11.819APDEX
T=500ms · 0,95 · 11.819 traces| Serviço | APDEX | Nível | Traces | Erros | Err% | P95 |
|---|---|---|---|---|---|---|
| pagamento-service | 0,85 | 1.102 | 136 | 12,34% | 185,0 | |
| pedidos-api | 0,88 | 3.791 | 246 | 6,49% | 247,8 | |
| cobranca-service | 0,96 | 875 | 32 | 3,66% | 44,8 | |
| fatura-api | 0,97 | 1.755 | 32 | 1,82% | 100,8 | |
| estoque-service | 0,98 | 1.108 | 0 | 0% | 63,0 | |
| auth-service | 0,99 | 2.207 | 0 | 0% | 10,6 | |
| notificacao-service | 0,99 | 981 | 0 | 0% | 26,7 | |
| Σ 7 serviços | 0,95 | 11.819 | 446 | 3,77% | 208,3 |
Traces recentes
15 traces · 117 spans · 6 de 7 serviços · self-time e Δ vs P95 da rota · amostragem 100%| Trace ID | Serviço raiz | Operação | Status | Spans | Svc | Prof. | Duração | Self | P95 rota | Δ P95 | Perfil | Erro | Início |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| b0f3551f… | pedidos-api | GET /pedidos | 200 | 9 | 3 | L2 | 6,42ms | 0,41ms | 47ms | −86% | — | 20:59:04 | |
| 0ecf2e3e… | pedidos-api | GET /pedido/{item} | 502 | 13 | 6 | L3 | 104,27ms | 0,30ms | 328ms | −68% | HTTP 502 | 20:59:01 | |
| 5624f009… | pedidos-api | GET / | 200 | 3 | 1 | L1 | 0,60ms | 0,22ms | 10ms | −94% | — | 20:58:57 | |
| 35861e44… | fatura-api | GET /faturas | 200 | 6 | 2 | L2 | 9,00ms | 0,64ms | 32ms | −72% | — | 20:58:52 | |
| 8483e4ba… | fatura-api | GET /fatura/{cliente} | 200 | 9 | 3 | L2 | 55,91ms | 1,12ms | 122ms | −54% | — | 20:58:44 | |
| 2ffc2402… | pedidos-api | GET /erro | 500 | 3 | 1 | L1 | 4,10ms | 3,80ms | 17ms | −76% | RuntimeError | 20:58:39 | |
| 90d9e7d6… | pedidos-api | GET /pedidos | 200 | 11 | 3 | L2 | 17,79ms | 0,55ms | 47ms | −62% | — | 20:58:31 | |
| f2e8f699… | pedidos-api | GET /pedido/{item} | 200 | 26 | 6 | L3 | 207,56ms | 0,48ms | 328ms | −37% | — (P95) | 20:58:22 | |
| e418ccef… | pagamento-service | GET /cobrar/{item} | 502 | 7 | 3 | L2 | 96,84ms | 0,36ms | 184ms | −47% | HTTP 502 | 20:58:15 | |
| 49210933… | fatura-api | GET /faturas | 200 | 6 | 2 | L2 | 14,68ms | 0,58ms | 32ms | −54% | — | 20:58:10 | |
| 7c1a4d02… | auth-service | GET /valida | 200 | 2 | 1 | L1 | 1,47ms | 1,10ms | 11ms | −87% | — | 20:58:03 | |
| a35f7b18… | estoque-service | GET /reserva/{item} | 200 | 4 | 2 | L1 | 34,50ms | 0,72ms | 63ms | −45% | — | 20:57:58 | |
| 96d43524… | fatura-api | GET /fatura/{cliente} | 200 | 9 | 3 | L2 | 78,05ms | 1,04ms | 122ms | −36% | — | 20:57:49 | |
| c9b2e740… | notificacao-service | GET /enviar | 200 | 4 | 2 | L1 | 14,02ms | 0,88ms | 27ms | −48% | — | 20:57:41 | |
| 3fa9c1d7… | pedidos-api | GET /trabalho | 200 | 5 | 2 | L2 | 8,31ms | 0,66ms | 17ms | −51% | — | 20:57:32 |
Percentis
P50 · P95 · P99 · 0–1s| Rota | Req | P50 | P95 | P99 | Erros |
|---|---|---|---|---|---|
| GET /pedido/{item} | 1.103 | 38 | 328 | 470 | 136 |
| GET /cobrar/{item} | 1.102 | 88 | 184 | 248 | 136 |
| GET /fatura/{cliente} | 875 | 41 | 122 | 172 | 32 |
| GET /reserva/{item} | 1.108 | 35 | 63 | 85 | 0 |
| GET /pedidos | 1.103 | 12 | 47 | 68 | 0 |
Z
Observabilidade APM/Erros/ERROS & EXCEÇÕES
Erros por serviço
446 ocorr. · 1h| Serviço | Ocorr. | % | 502 | R.Err | Err% | P95 ms |
|---|---|---|---|---|---|---|
| pedidos-api | 246 | 55,2% | 136 | 110 | 6,49% | 247,8 |
| pagamento-service | 136 | 30,5% | 136 | 0 | 12,34% | 185,0 |
| cobranca-service | 32 | 7,2% | 32 | 0 | 3,66% | 44,8 |
| fatura-api | 32 | 7,2% | 32 | 0 | 1,82% | 100,8 |
| Σ 4 serviços | 446 | 100% | 336 | 110 | 3,77% | 208,3 |
Erros no tempo · por serviço
err/min · pico 26/min @ 20:30Erros por rota · http.server.request
5 de 12 rotas com erro · 446 / 11.819 req · 3,77%| Rota | Serviço | Tipo | Req | Erros | Err% | Volume | P50 | P95 | P99 | Tempo tot. |
|---|---|---|---|---|---|---|---|---|---|---|
| GET /pedido/{item} | pedidos-api | 502 | 1.103 | 136 | 12,33% | 38 | 328 | 470 | 3,6 min | |
| GET /cobrar/{item} | pagamento-service | 502 | 1.102 | 136 | 12,34% | 88 | 184 | 248 | 2,0 min | |
| GET /erro | pedidos-api | 500 | 110 | 110 | 100% | 4 | 17 | 24 | 555 ms | |
| GET /fatura/{cliente} | fatura-api | 502 | 875 | 32 | 3,66% | 41 | 122 | 172 | 1,0 min | |
| GET /cobrar | cobranca-service | 502 | 875 | 32 | 3,66% | 30 | 45 | 58 | 26,4 s | |
| GET /reserva/{item} | estoque-service | OK | 1.108 | 0 | 0% | 35 | 63 | 85 | 40 s | |
| GET /pedidos | pedidos-api | OK | 1.103 | 0 | 0% | 12 | 47 | 68 | 21,6 s | |
| GET /enviar | notificacao-service | OK | 981 | 0 | 0% | 14 | 27 | 39 | 14,3 s | |
| GET /faturas | fatura-api | OK | 880 | 0 | 0% | 9 | 32 | 55 | 10,3 s | |
| GET /valida | auth-service | OK | 2.207 | 0 | 0% | 1,5 | 11 | 18 | 6,0 s | |
| GET /trabalho | pedidos-api | OK | 375 | 0 | 0% | 8 | 17 | 24 | 4,4 s | |
| GET / | pedidos-api | OK | 1.100 | 0 | 0% | 4 | 10 | 14 | 4,1 s | |
| Σ 12 rotas | 7 serviços | 5 c/ erro | 11.819 | 446 | 3,77% | 12,5 | 208,3 | 870 | 8,7 min |
Stack trace · RuntimeError
110 · 2,24/min · d2678bd5Versões & error budget
3 versões · 24h| Versão | Svc | req/s | Erros | Err% | P95 ms | Estado |
|---|---|---|---|---|---|---|
| v3.1.1 | 1 | 0,31 | 136 | 12,34% | 185,0 | regressão |
| v3.1.0 | 4 | 2,24 | 246 | 3,04% | 247,8 | 6d em prod |
| v1.2.0 | 2 | 0,73 | 64 | 2,43% | 100,8 | 15d estável |
| Σ 3 | 7 | 3,28 | 446 | 3,77% | 208,3 | deploy 19:25 |
| Serviço | Disp. 24h | Req 24h | Erros | Burn 1h | Budget |
|---|---|---|---|---|---|
| pagamento-service | 90,574% | 13.478 | 1.271 | 14,4× | ESGOTADO |
| pedidos-api | 94,342% | 46.273 | 2.618 | 0,9× | ESGOTADO |
| cobranca-service | 95,780% | 10.690 | 451 | 0,3× | ESGOTADO |
| fatura-api | 97,894% | 21.375 | 450 | 0,4× | ESGOTADO |
| 3 serviços sem erro | 100% | 52.637 | 0 | 0,0× | 100% rest. |
| Σ 7 serviços | 96,68% | 144.453 | 4.790 | — | 4 violados · 3 OK |
Grupos de erro · assinatura de exceção
5 grupos · ativos até 21:00 · 1º visto alinha ao deploy 19:25| Ocorr. | % total | Tendência | Tipo | Assinatura · rota | Serviço · ambiente | Versão | 1º visto | Duração | Trace |
|---|---|---|---|---|---|---|---|---|---|
1361,43/min |
30,5% | HTTP 502 | GET /cobrar/{item}gateway de pagamento · P95 184 ms |
pagamento-serviceprod · 1.102 traces |
v3.1.1 | 30/07 19:25 | 1h35 | e418ccef | |
1361,43/min |
30,5% | HTTP 502 | GET /pedido/{item}propagação do 502 · P95 328 ms |
pedidos-apiprod · 3.791 traces |
v3.1.0 | 30/07 19:25 | 1h35 | e418ccef | |
1102,24/min |
24,7% | RuntimeError | GET /erromain.py:136 in erro · HTTP 500 |
pedidos-apiprod · 110 req · 100% |
v3.1.0 | 30/07 20:11 | 49 min | d2678bd5 | |
320,09/min |
7,2% | HTTP 502 | GET /cobrarcobrança recorrente · P95 45 ms |
cobranca-servicestaging · 875 traces |
v1.2.0 | 30/07 15:03 | 5h57 | ec6080ce | |
320,09/min |
7,2% | HTTP 502 | GET /fatura/{cliente}emissão de fatura · P95 122 ms |
fatura-apistaging · 1.755 traces |
v1.2.0 | 30/07 15:03 | 5h57 | ec6080ce | |
4467,43/min |
100% | 5 assin. | 2 tipos | 5 de 12 rotas · dedup | 4 de 7 serviços | 3 versões | 30/07 15:03 | 5h57 | 5 exempl. |
Z
Observabilidade APM/Serviços/SLOs & ERROR BUDGET
Error budget · SLI duplo
disponibilidade + latência + minutos · janela 24hBurndown do error budget · 24h
budget restante por serviço · zerou às 20:30SLO por serviço
disp · latência · minutos de indisponibilidade · 24h| Serviço | Disp 24h | Alvo d. | Δ pp | Lat ≤500ms | Alvo l. | Req 24h | Erros | Min perm | Min gastos | Consum. | St. |
|---|---|---|---|---|---|---|---|---|---|---|---|
| pagamento-service | 90,574% | 99,5% | −8,93 | 99,89% | 90% | 13.478 | 1.271 | 7,20 | 135,7 | 1.885% | |
| pedidos-api | 94,342% | 99,9% | −5,56 | 99,68% | 95% | 46.273 | 2.618 | 1,44 | 81,5 | 5.658% | |
| cobranca-service | 95,780% | 99,9% | −4,12 | 99,99% | 95% | 10.690 | 451 | 1,44 | 60,8 | 4.220% | |
| fatura-api | 97,894% | 99,9% | −2,01 | 99,88% | 95% | 21.375 | 450 | 1,44 | 30,3 | 2.106% | |
| auth-service | 100% | 99,9% | +0,10 | 99,99% | 95% | 26.952 | 0 | 1,44 | 0,0 | 0% | |
| estoque-service | 100% | 99,9% | +0,10 | 99,95% | 95% | 13.479 | 0 | 1,44 | 0,0 | 0% | |
| notificacao-service | 100% | 99,9% | +0,10 | 100% | 95% | 12.206 | 0 | 1,44 | 0,0 | 0% | |
| GLOBAL · 7 serviços | 96,68% | 99,9% | −3,22 | 99,86% | 95% | 144.453 | 4.790 | 15,84 | 308,3 | 1.946% |
Burn rate multi-janela
1h · 6h · 24h · fast burn ≥ 14× → página P1| Serviço | Erros 1h | P95 ms | Err% 24h | 1h | 6h | 24h | Consumido | Restante | Esgota em | Alerta |
|---|---|---|---|---|---|---|---|---|---|---|
| pagamento-service | 136 | 185,0 | 9,43% | 14,4× | 6,0× | 2,0× | 1.885% | 0% | esgotou 20:30 | FAST BURN P1 |
| pedidos-api | 246 | 247,8 | 5,66% | 0,9× | 2,8× | 1,3× | 5.658% | 0% | esgotou 20:38 | recuperando |
| cobranca-service | 32 | 44,8 | 4,22% | 0,3× | 0,9× | 0,6× | 4.220% | 0% | esgotou 17:42 | estável |
| fatura-api | 32 | 100,8 | 2,11% | 0,4× | 1,2× | 0,9× | 2.106% | 0% | esgotou 18:06 | recuperando |
| auth-service | 0 | 10,6 | 0% | 0,0× | 0,0× | 0,0× | 0% | 100% | não esgota | sem consumo |
| estoque-service | 0 | 63,0 | 0% | 0,0× | 0,0× | 0,0× | 0% | 100% | não esgota | sem consumo |
| notificacao-service | 0 | 26,7 | 0% | 0,0× | 0,0× | 0,0× | 0% | 100% | não esgota | sem consumo |
| GLOBAL · 7 serviços | 446 | 208,3 | 3,32% | 14,4× máx | 6,0× máx | 2,0× máx | 1.946% | 0% | 4 de 7 esgotados | 1 P1 ativo |
Política de alerta multi-janela
curta + longa · avaliação a cada 60 s · budget 24h = 1.440 min
Z
Observabilidade APM/Serviços/pedidos-api
🐍 Python 3.11 · v3.1.0
loja · prod
3.791 requests
19.606 spans
Distribuição de latência
3.791 req · 23 buckets OTel · bimodal · exemplar 0ecf2e3e · 104,27 msStatus HTTP & vazão
3.791 respostas · 246 5xx · 0 4xx| Status | Req | % | P50 | P95 | Rota dominante |
|---|---|---|---|---|---|
| 200 OK | 3.545 | 93,51% | 12,4 | 241,0 | /pedidos · / |
| 502 Bad Gateway | 136 | 3,59% | 88,0 | 185,0 | /pedido/{item} |
| 500 Internal | 110 | 2,90% | 4,0 | 17,0 | /erro |
| Σ 3 códigos | 3.791 | 100% | 13,2 | 247,8 | 5 rotas |
Percentis por rota
5 rotas · método GET · escala log 1–500 ms| http.route | Req | P50 | P75 | P90 | P95 | P99 | P50→P99 | Err% |
|---|---|---|---|---|---|---|---|---|
| /pedido/{item} | 1.103 | 38 | 218 | 297 | 328 | 470 | 12,33% | |
| /pedidos | 1.103 | 12 | 26 | 41 | 47 | 68 | 0% | |
| / | 1.100 | 4 | 6 | 9 | 10 | 14 | 0% | |
| /trabalho | 375 | 8 | 12 | 15 | 17 | 24 | 0% | |
| /erro | 110 | 4 | 8 | 14 | 17 | 24 | 100% | |
| Σ serviço | 3.791 | 13,2 | 131,5 | 211,8 | 247,8 | 345,1 | 6,49% |
Operações mais lentas do serviço
span.name · 9 operações = 100% do tempo de execução · janela 1h| # | span.name | Tipo | Chamadas | P50 | P95 | Tempo | % do tempo | Erros |
|---|---|---|---|---|---|---|---|---|
| 1 | GET /cobrar/{item} → pagamento-service | WEB | 1.102 | 103,0 | 185,0 | 120,0 s | 48,6% | 136 |
| 2 | GET /reserva/{item} → estoque-service | WEB | 1.108 | 34,5 | 63,0 | 40,0 s | 16,2% | 0 |
| 3 | pedidos.montar_resposta | INTERNAL | 3.681 | 6,9 | 21,4 | 31,1 s | 12,6% | 0 |
| 4 | http.server.request · self do pedidos-api | INTERNAL | 3.791 | 5,8 | 14,2 | 28,7 s | 11,6% | 246 |
| 5 | GET /enviar → notificacao-service | WEB | 648 | 14,0 | 26,7 | 9,1 s | 3,7% | 0 |
| 6 | pedidos.serializar_json | INTERNAL | 3.681 | 1,9 | 5,4 | 9,1 s | 3,7% | 0 |
| 7 | trabalho.processar_pesado | INTERNAL | 375 | 11,2 | 17,0 | 4,4 s | 1,8% | 0 |
| 8 | SELECT loja.pedidos | DB | 3.240 | 1,2 | 1,8 | 3,9 s | 1,6% | 0 |
| 9 | GET pedidos:cache → redis | CACHE | 1.980 | 0,22 | 0,40 | 0,4 s | 0,2% | 0 |
Latência por dependência
6 alvos · 246,7 s = 100%Alvos de saída · P50 · P95 · tempo
5 externos + self| Dependência | Tipo | Spans | P50 | P95 | Err% | Tempo | % |
|---|---|---|---|---|---|---|---|
| pagamento-service | WEB | 1.102 | 103,0 | 185,0 | 12,34% | 120,0 s | 48,6% |
| estoque-service | WEB | 1.108 | 34,5 | 63,0 | 0% | 40,0 s | 16,2% |
| notificacao-service | WEB | 648 | 14,0 | 26,7 | 0% | 9,1 s | 3,7% |
| loja · PostgreSQL | DB | 3.240 | 1,2 | 1,8 | 0% | 3,9 s | 1,6% |
| redis · cache | CACHE | 1.980 | 0,22 | 0,40 | 0% | 0,4 s | 0,2% |
| pedidos-api · self | INTERNAL | 11.528 | 5,8 | 21,4 | 6,49% | 73,3 s | 29,7% |
Erros & error budget
246 erros · buckets 5 min · tracejado 16 err · SLO violado
Z
Observabilidade APM/Serviços/DEPLOY & DEPENDÊNCIAS
Linha do tempo do incidente
deploy → 5xx → propagação · 30/07 · janela 19:00–21:00 · em curso há 1h35 · 446 errosRuntime · pagamento-service
método USE · CPython 3.11.9 · uvicorn 0.30.1Versões em produção por serviço
Σ 7 serviços · 3,28 req/s · 11.819 traces · 446 erros · 3,77%| Serviço | Versão | req/s | Traces | Erros | Err% | P50 | P95 | P99 | APDEX | SLO 24h |
|---|---|---|---|---|---|---|---|---|---|---|
| pedidos-api | v3.1.0 | 1,05 | 3.791 | 246 | 6,49% | 13,2 | 247,8 | 345,1 | 0,88 | 94,342% |
| auth-service | v3.1.0 | 0,61 | 2.207 | 0 | 0% | 1,47 | 10,6 | 18,2 | 0,99 | 100% |
| fatura-api | v1.2.0 | 0,49 | 1.755 | 32 | 1,82% | 36,5 | 100,8 | 171,8 | 0,97 | 97,894% |
| estoque-service | v3.1.0 | 0,31 | 1.108 | 0 | 0% | 34,5 | 63,0 | 85,0 | 0,98 | 100% |
| pagamento-service | v3.1.1 | 0,31 | 1.102 | 136 | 12,34% | 103,0 | 185,0 | 248,0 | 0,85 | 90,574% |
| notificacao-service | v3.1.0 | 0,27 | 981 | 0 | 0% | 14,0 | 26,7 | 38,8 | 0,99 | 100% |
| cobranca-service | v1.2.0 | 0,24 | 875 | 32 | 3,66% | 29,9 | 44,8 | 57,7 | 0,96 | 95,780% |
| Σ 7 serviços | 3 vers. | 3,28 | 11.819 | 446 | 3,77% | 12,5 | 208,3 | 870 | 0,95 | 4 viol. |
Histórico de deploys · 7 dias
24/07 → 30/07 · 8 eventos| Quando | Serviço | Versão | Tipo | Dur. | Resultado | Err% | P95 |
|---|---|---|---|---|---|---|---|
| 30/07 19:25 | pagamento | v3.1.1 | deploy | 3m12 | REGRESSÃO | 12,34% | 185,0 |
| 28/07 22:40 | pagamento | v3.1.1-rc1 | canário | 4m05 | REVERTIDO | 1,84% | 128,0 |
| 27/07 16:18 | pedidos-api | v3.1.0 | config | 0m52 | OK | 0,00% | 152,0 |
| 26/07 09:35 | notificacao | v3.1.0 | deploy | 2m18 | OK | 0,00% | 26,7 |
| 25/07 14:20 | estoque | v3.1.0 | deploy | 2m47 | OK | 0,00% | 63,0 |
| 25/07 10:05 | auth | v3.1.0 | deploy | 1m58 | OK | 0,00% | 10,6 |
| 24/07 21:22 | pagamento | v3.1.0 | deploy | 2m56 | OK | 0,03% | 123,0 |
| 24/07 21:05 | pedidos-api | v3.1.0 | deploy | 3m40 | OK | 0,05% | 156,0 |
Dependências · pedidos-api
6 conexões · 1 crítica · 2,25/s de saída| Dependência | Tipo | Hits/s | Spans/h | P50 | P95 | P99 | Err% | T.out/retry |
|---|---|---|---|---|---|---|---|---|
in← user | web | 1,05 | 3.791 | 13,2 | 247,8 | 345,1 | 6,49% | 30.000/0 |
pypagamento | web | 0,31 | 1.102 | 103,0 | 185,0 | 248,0 | 12,34% | 3.000/2 |
pgloja (db) | db | 0,90 | 3.240 | 0,8 | 1,8 | 4,1 | 0% | 1.000/1 |
rdredis | cache | 0,55 | 1.980 | 0,2 | 0,4 | 0,9 | 0% | 250/0 |
pyestoque | web | 0,31 | 1.108 | 34,5 | 63,0 | 85,0 | 0% | 2.000/1 |
pynotificacao | web | 0,18 | 648 | 14,0 | 26,7 | 38,8 | 0% | 1.500/3 |
| Σ 5 de saída | 4 tipos | 2,25 | 8.078 | — | — | — | 1,68% | 7 retries |
Z
Observabilidade APM/Serviços/LOGS & PADRÕES
Padrões de log agregados
dedup por template · 9 templates · 5.000 linhas · 24 pares padrão×serviço · 6 campos variáveisAmostras de linha crua
tail −f · últimas 8 de 5.000 · 83,3 linhas/min · atraso de ingestão 1,2 s · OTLP logsDistribuição por nível
4 níveis · 2 ativos · 5.000Padrões por serviço
7 serviços · 24 pares · 5.000Campos variáveis extraídos
6 campos · 333 distintosVolume de log no tempo
Σ 5.000 · pico 112/min @ 20:30Cobertura log ↔ trace
2.602 de 5.000 · 52,0%Amostra correlacionada
nível ERROR · 12 atributos OTel1º 20:11 · últ. 21:00 · 1,8/min · 24,7% dos erros
Instrumente em minutos.
O Agent APM nasce do que você já tem: exporte seus traces via OpenTelemetry (OTLP) e o Zabbix 8.0 passa a mostrar spans, APDEX, error budget e service map — sem trocar de stack, sem reescrever aplicação.
Instrumente com OTel
Adicione o OpenTelemetry SDK ao serviço (auto-instrumentação p/ Python, Node, Java, Go).
Aponte o OTLP p/ o Zabbix
Configure o OTLP exporter para o coletor do Zabbix 8.0. Nada de agente novo em cada host.
Observe no ar
Traces, APDEX, SLO & error budget e service map ao vivo — correlacionados aos alertas do Zabbix.
Comercial · Flowbix✓
Conta verificada
