grafana e prometeus
This commit is contained in:
28
monitoring/prometheus/prometheus.yml
Normal file
28
monitoring/prometheus/prometheus.yml
Normal file
@@ -0,0 +1,28 @@
|
||||
global:
|
||||
scrape_interval: 15s
|
||||
evaluation_interval: 15s
|
||||
scrape_timeout: 10s
|
||||
|
||||
alerting:
|
||||
alertmanagers:
|
||||
- static_configs:
|
||||
- targets:
|
||||
- alertmanager:9093
|
||||
|
||||
rule_files:
|
||||
- "rules/*.yml"
|
||||
|
||||
scrape_configs:
|
||||
- job_name: 'prometheus'
|
||||
static_configs:
|
||||
- targets: ['localhost:9090']
|
||||
|
||||
- job_name: 'api-portaljuru'
|
||||
metrics_path: '/metrics'
|
||||
scrape_interval: 10s
|
||||
static_configs:
|
||||
- targets: ['host.docker.internal:8066']
|
||||
|
||||
- job_name: 'node-exporter'
|
||||
static_configs:
|
||||
- targets: ['node-exporter:9100']
|
||||
52
monitoring/prometheus/rules/portaljuru_alerts.yml
Normal file
52
monitoring/prometheus/rules/portaljuru_alerts.yml
Normal file
@@ -0,0 +1,52 @@
|
||||
groups:
|
||||
- name: portaljuru_api
|
||||
rules:
|
||||
# Alerta se a API ficar inacessível por mais de 1 minuto
|
||||
- alert: PortalJuruApiDown
|
||||
expr: up{job="api-portaljuru"} == 0
|
||||
for: 1m
|
||||
labels:
|
||||
severity: critical
|
||||
annotations:
|
||||
summary: "Portal Jurunense API fora do ar"
|
||||
description: "A API do Portal Jurunense está inacessível há pelo menos 1 minuto."
|
||||
|
||||
# Alerta se a taxa de erro HTTP for maior que 5% em 5 minutos
|
||||
- alert: HighErrorRate
|
||||
expr: sum(rate(http_request_total{job="api-portaljuru", statusCode=~"5.."}[5m])) / sum(rate(http_request_total{job="api-portaljuru"}[5m])) > 0.05
|
||||
for: 2m
|
||||
labels:
|
||||
severity: warning
|
||||
annotations:
|
||||
summary: "Taxa de erro elevada na API"
|
||||
description: "A taxa de erros HTTP 5xx está acima de 5% nos últimos 5 minutos."
|
||||
|
||||
# Alerta se o tempo de resposta estiver muito alto
|
||||
- alert: SlowResponseTime
|
||||
expr: histogram_quantile(0.95, sum(rate(http_request_duration_seconds_bucket{job="api-portaljuru"}[5m])) by (le)) > 1
|
||||
for: 5m
|
||||
labels:
|
||||
severity: warning
|
||||
annotations:
|
||||
summary: "Tempo de resposta elevado na API"
|
||||
description: "95% das requisições estão levando mais de 1 segundo para completar."
|
||||
|
||||
# Alerta para uso alto de memória
|
||||
- alert: HighMemoryUsage
|
||||
expr: process_resident_memory_bytes{job="api-portaljuru"} > 350000000
|
||||
for: 5m
|
||||
labels:
|
||||
severity: warning
|
||||
annotations:
|
||||
summary: "Uso elevado de memória"
|
||||
description: "A API está usando mais de 350MB de memória por mais de 5 minutos."
|
||||
|
||||
# Alerta para pool de conexões quase esgotado
|
||||
- alert: DatabaseConnectionPoolNearlyFull
|
||||
expr: api_db_connection_pool_used{job="api-portaljuru"} / api_db_connection_pool_total{job="api-portaljuru"} > 0.8
|
||||
for: 2m
|
||||
labels:
|
||||
severity: warning
|
||||
annotations:
|
||||
summary: "Pool de conexões quase cheio"
|
||||
description: "O pool de conexões está usando mais de 80% da capacidade máxima."
|
||||
Reference in New Issue
Block a user