Como monitorar o desempenho do n8n com Prometheus e Grafana
Você precisa garantir que seus fluxos no n8n rodem sem travar, consumam poucos recursos e não falhem silenciosamente. Sem monitoramento, erros como fluxos travados, alto consumo de CPU/RAM ou falhas em webhooks só aparecem quando o cliente reclama ou o sistema cai. O n8n expõe métricas via endpoint /metrics, mas você precisa configurá-lo para enviá-las ao Prometheus e visualizá-las no Grafana.
Neste guia, você aprenderá a instalar e configurar o Prometheus para coletar dados do n8n, criar um dashboard no Grafana com métricas essenciais e até mesmo configurar alertas para quando um fluxo falhar. Tudo sem gastar com soluções enterprise e usando ferramentas open source auto-hospedadas.
Por que monitorar o n8n é essencial para suas automações
Sem monitoramento, você descobre problemas tarde demais. Um fluxo que consome memória sem parar pode travar seu servidor. Uma automação de pagamento que falha silenciosamente perde clientes. Fluxos de integração com APIs externas podem travar por timeouts não detectados.
Exemplos reais: um webhook que não responde há 3 horas, um nó de SQL consumindo 90% da CPU por dias sem alerta, ou um fluxo de disparo de emails que trava após 10 mil execuções sem que você saiba. O n8n não monitora nada disso por padrão — você precisa expor suas métricas e analisá-las.
A documentação oficial do n8n sobre métricas explica que o endpoint /metrics fornece dados como tempo de execução de nós, taxa de erros e uso de recursos, mas só estão disponíveis se você ativar a variável de ambiente N8N_METRICS_ENABLED=true.
Documentação oficial do n8n sobre métricas
Configurando o n8n para expor métricas via endpoint /metrics
Ative as métricas no n8n adicionando a variável de ambiente N8N_METRICS_ENABLED=true na inicialização. Se estiver usando Docker, adicione ao docker run ou ao docker-compose.yml:
environment:
- N8N_METRICS_ENABLED=true
Se estiver usando o n8n sem container, defina a variável no arquivo de configuração ou na linha de comando:
N8N_METRICS_ENABLED=true npm start
Teste se as métricas estão expostas acessando http://SEU_DNS:5678/metrics no navegador ou via curl:
curl http://localhost:5678/metrics
Você verá saídas como n8n_workflow_execution_time_seconds_sum e n8n_node_execution_errors_total. Se não funcionar, verifique se a porta 5678 está acessível e se o n8n não está bloqueando o endpoint.
Para entender como funcionam APIs como essa, confira nosso guia sobre como usar APIs em automações.
Instalando e configurando o Prometheus para coletar dados do n8n
Instale o Prometheus via Docker para monitorar seu n8n. Crie um arquivo prometheus.yml com o seguinte conteúdo:
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'n8n'
static_configs:
- targets: ['n8n:5678']
Substitua n8n pelo nome do container ou IP do servidor onde o n8n roda. Inicie o Prometheus com:
docker run -d \
--name=prometheus \
-p 9090:9090 \
-v $(pwd)/prometheus.yml:/etc/prometheus/prometheus.yml \
prom/prometheus
Para validar que o Prometheus está coletando as métricas, acesse http://localhost:9090/targets e verifique se o job n8n aparece como UP.
A tabela abaixo lista as métricas mais úteis do n8n que você pode usar no Prometheus:
| Métrica | Descrição | Exemplo de uso |
|---|---|---|
n8n_workflow_execution_time_seconds |
Tempo total de execução de um workflow | Gráfico de latência por fluxo |
n8n_node_execution_time_seconds |
Tempo de execução de cada nó dentro de um fluxo | Identificar nós lentos |
n8n_node_execution_errors_total |
Total de erros por nó | Alertar quando erro > 5% |
n8n_workflow_executions_total |
Total de execuções de cada fluxo | Monitorar throughput |
process_cpu_seconds_total |
Uso de CPU do processo do n8n | Ajustar limites de container |
process_resident_memory_bytes |
Uso de memória RAM | Evitar OOM kills |
Como criar um dashboard no Grafana para visualizar o desempenho do n8n
Instale o Grafana via Docker para criar dashboards com as métricas do Prometheus:
docker run -d \
--name=grafana \
-p 3000:3000 \
grafana/grafana
Acesse http://localhost:3000 e faça login com usuário admin e senha admin. Adicione o Prometheus como fonte de dados:
- Clique em Configuration > Data Sources > Add data source.
- Selecione Prometheus e configure o URL como
http://prometheus:9090. - Salve e teste a conexão.
Para não começar do zero, importe um dashboard pronto como o ID 1860 do Grafana, específico para n8n. Clique em Dashboards > Import, digite 1860 e selecione a fonte de dados do Prometheus.
Personalize o dashboard criando painéis para:
- Tempo médio de execução dos 5 fluxos mais lentos.
- Taxa de erros por nó.
- Uso de CPU e RAM do container do n8n.
Se precisar de ajuda para configurar o Docker, confira nosso guia sobre como instalar Docker e Docker Compose no Linux.
Monitorando fluxos específicos: tempo de execução e taxa de sucesso por nó
Você quer saber qual nó do seu fluxo é o gargalo ou está falhando? As métricas do n8n incluem labels como workflow_id, node_name e status que permitem filtrar dados por nó específico. No Prometheus, use queries como rate(n8n_node_execution_time_seconds_sum[5m]) by (node_name) para ver o tempo médio de execução dos últimos 5 minutos por nó.
No Grafana, crie um gráfico com essa query e adicione um painel de "Taxa de erros por nó" usando rate(n8n_node_execution_errors_total[1h]) by (node_name). Se um nó como "HTTP Request" estiver com erro constante, você verá um pico no gráfico. Para isso, clique em Add Panel > Add Query e selecione sua fonte de dados do Prometheus.
Curiosidade: as labels do n8n incluem também type (ex: "n8n-nodes-base.httpRequest") e position (onde o nó está no fluxo). Use isso para criar dashboards avançados, como "Fluxos com nós do tipo API que falham mais de 10 vezes por hora".
Configurando alertas para falhas e performance crítica do n8n
Alertas no Prometheus são regras que disparam notificações quando uma condição é violada. As notificações são enviadas via Alertmanager, que pode integrar com Telegram, Slack, Email ou até PagerDuty. A diferença é simples: alertas são regras que verificam métricas; notificações são o meio de entrega (ex: "Enviar mensagem no Slack quando o fluxo X falhar 5 vezes em 1 hora").
Para criar um alerta, edite o arquivo prometheus.yml e adicione uma seção rule_files. Crie um arquivo alert.rules.yml com regras como:
groups:
- name: n8n-alerts
rules:
- alert: HighNodeErrorRate
expr: rate(n8n_node_execution_errors_total[5m]) by (node_name) > 0.05
for: 5m
labels:
severity: critical
annotations:
summary: "Alto taxa de erros no nó {{ $labels.node_name }}"
description: "O nó {{ $labels.node_name }} está falhando em mais de 5% das execuções nos últimos 5 minutos."
Instale o Alertmanager via Docker e configure a integração com Telegram:
docker run -d \
--name=alertmanager \
-p 9093:9093 \
-v $(pwd)/alert.rules.yml:/etc/prometheus/alert.rules.yml \
prom/alertmanager
Edite o prometheus.yml para apontar para o Alertmanager:
alerting:
alertmanagers:
- static_configs:
- targets:
- alertmanager:9093
No Alertmanager, configure o receptor para Telegram usando a API do bot. Envie um teste com curl -X POST http://localhost:9093/api/v2/alerts -d @test-alert.json para validar.
Curiosidade: você pode criar alertas para timeout de webhooks usando increase(n8n_workflow_executions_total{status="failed"}[1h]) > 0. Isso detecta fluxos que falham porque um webhook não responde a tempo.
Otimizando recursos: CPU, RAM e throughput do seu n8n auto-hospedado
Se seu n8n consome 2GB de RAM ou 100% da CPU, é hora de ajustar. Use as métricas process_resident_memory_bytes e process_cpu_seconds_total para identificar picos. Se a memória atingir 80% do limite do container, aumente o valor de --memory no Docker ou otimize seus fluxos.
Para fluxos pesados, desative nós desnecessários como "Wait" ou "IF" em loops infinitos. Ajuste também o N8N_METRICS_ENABLED=true para evitar sobrecarga na coleta de métricas. Se estiver usando Kubernetes, defina resources.limits.memory e resources.requests.cpu no manifesto.
Tabela de tuning para fluxos comuns:
| Tipo de Fluxo | Ajuste Recomendado | Ferramenta |
|---|---|---|
| Fluxo com chamadas a APIs externas | Adicione retryOnFail: true no nó HTTP Request |
n8n |
| Fluxo com nós de manipulação de grandes arquivos | Use splitInBatches para processar em lotes |
n8n |
| Fluxo com loops longos | Limite o número de iterações com maxIterations |
n8n |
| Containers com uso excessivo de CPU | Aumente cpu_shares ou migre para instância maior |
Docker/Kubernetes |
Curiosidade: o n8n usa um pool de workers para executar nós em paralelo. Se seus fluxos travam, verifique se o valor de N8N_EXECUTIONS_PROCESS=main não está sobrecarregando a fila. Para fluxos críticos, use N8N_EXECUTIONS_PROCESS=child para distribuir a carga.
Dicas avançadas: monitorando múltiplas instâncias e integrando com OpenTelemetry
Se você tem 5 instâncias do n8n rodando em diferentes servidores, configure o Prometheus para coletar métricas de todas elas usando file_sd_configs ou consul_sd_configs. Crie um arquivo targets.json com:
{
"targets": [
"n8n-server1:5678",
"n8n-server2:5678",
"n8n-server3:5678"
]
}
No prometheus.yml, adicione:
scrape_configs:
- job_name: 'n8n-multi'
file_sd_configs:
- files:
- targets.json
Para tracing distribuído, integre o n8n com OpenTelemetry. Adicione ao Docker:
environment:
- N8N_OPEN_TELEMETRY_ENABLED=true
- N8N_OPEN_TELEMETRY_HOST=otel-collector:4317
Use o Grafana Tempo ou Jaeger para visualizar traces. Para logs, o Grafana Loki é ideal, pois indexa logs de forma eficiente e escala com milhares de instâncias. Instale o Loki via Docker e configure o Promtail para coletar logs do n8n.
Curiosidade: o n8n não suporta OpenTelemetry nativamente, mas você pode usar um sidecar com o OpenTelemetry Collector para instrumentar os fluxos. Isso é útil para automações complexas que dependem de múltiplas APIs externas.
Perguntas frequentes sobre monitoramento do n8n com Prometheus e Grafana
O n8n tem métricas nativas ou preciso instalar algo?
O n8n não monitora nada por padrão. Você precisa ativar o endpoint /metrics via variável de ambiente N8N_METRICS_ENABLED=true para expor dados essenciais como tempo de execução, erros e uso de recursos.
Como expor as métricas do n8n para o Prometheus?
Configure o Prometheus para fazer scraping do endpoint http://SEU_DNS:5678/metrics adicionando um job no arquivo prometheus.yml com o alvo do container ou IP do servidor do n8n.
Qual a diferença entre Prometheus e Grafana no monitoramento?
O Prometheus coleta e armazena métricas em tempo real, enquanto o Grafana é a ferramenta de visualização que transforma esses dados em dashboards interativos e alertas visuais.
Posso usar Grafana sem saber programar?
Sim. O Grafana oferece dashboards prontos para importar (como o ID 1860 para n8n) e permite criar painéis arrastando e soltando queries do Prometheus, sem necessidade de codificar.
Como criar alertas para quando um fluxo do n8n falhar?
No Prometheus, defina regras de alerta no arquivo alert.rules.yml usando expressões como rate(n8n_node_execution_errors_total[5m]) > 0.05 e integre com ferramentas como Telegram ou Slack via Alertmanager.
Qual a configuração mínima de recursos para rodar Prometheus e Grafana?
Prometheus e Grafana consomem cerca de 100MB de RAM cada. Em containers Docker, 256MB de RAM e 0.5 CPU são suficientes para ambientes de desenvolvimento ou pequenas produções.
Como visualizar o tempo de execução de cada nó de um fluxo?
No Grafana, use queries PromQL como rate(n8n_node_execution_time_seconds_sum[5m]) by (node_name) em um gráfico para ver o tempo médio de execução por nó nos últimos 5 minutos.
É possível monitorar múltiplas instâncias do n8n com uma única dashboard?
Sim. Configure o Prometheus para coletar métricas de várias instâncias usando file_sd_configs com um arquivo targets.json contendo todos os endpoints, e crie um dashboard no Grafana com filtros por instância.
Deixe seus fluxos no n8n sob controle total: métricas, alertas e otimização em um só lugar
Monitorar o n8n com Prometheus e Grafana transforma automações caóticas em processos previsíveis e estáveis. Você passa a identificar gargalos em nós específicos, detectar falhas antes que afetem clientes e otimizar recursos sem adivinhações. Com alertas configurados, até mesmo fluxos críticos são supervisionados 24/7, enquanto dashboards personalizados mostram exatamente onde agir. A melhor parte? Tudo isso é possível com ferramentas open source auto-hospedadas, sem depender de soluções enterprise caras ou complexas.
- Ative métricas no n8n com
N8N_METRICS_ENABLED=truepara expor dados essenciais via/metrics. - Configure o Prometheus para coletar essas métricas com um job simples no
prometheus.yml. - Crie dashboards no Grafana usando modelos prontos ou queries personalizadas para visualizar performance e erros.
- Defina alertas críticos no Prometheus para notificações em Telegram, Slack ou email quando algo sair do padrão.
- Otimize recursos com base em métricas de CPU, RAM e throughput, ajustando containers e fluxos conforme necessário.
Pronto para levar suas automações ao próximo nível? Explore nossa categoria de automação e monitoramento para mais guias práticos e ferramentas para deixar seus processos ainda mais robustos!
Quer mais sobre o assunto? Veja todos os artigos de APIs & Dev ou a lista completa de artigos.