Esta configuração usa o modelo pull do Prometheus: a aplicação .NET expõe métricas por HTTP em /metrics, o Prometheus consulta esse endpoint e o Grafana lê os dados armazenados para exibi-los em painéis. OTLP também é uma opção, mas usa outro fluxo e outro endpoint; não confunda o receptor OTLP com /metrics.
Como os dados passam da aplicação ao painel
O fluxo desta parte é: instrumentos na aplicação .NET → exporter Prometheus e endpoint HTTP → scrape e armazenamento no Prometheus → consultas e dashboards no Grafana. A aplicação registra medições; a instrumentação e o exporter as disponibilizam. No modelo pull, o Prometheus busca as métricas no endereço configurado, em vez de a aplicação enviá-las a cada coleta. O Grafana consulta o Prometheus como fonte de dados e apresenta os resultados.
As an Amazon Associate I earn from qualifying purchases.
O guia do OpenTelemetry para exportar métricas .NET a Prometheus e Grafana demonstra esse fluxo. Para contexto sobre métricas no ASP.NET Core, consulte também a visão geral de métricas do ASP.NET Core e a documentação do Microsoft Learn sobre métricas do ASP.NET Core.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Configure e confirme o endpoint /metrics
O caminho /metrics não aparece automaticamente só porque a aplicação tem instrumentação: é preciso configurar o exporter Prometheus e registrar o middleware de scraping na aplicação ASP.NET Core. A documentação do exporter consultada indica /metrics como caminho padrão e mostra UseOpenTelemetryPrometheusScrapingEndpoint() para registrar o endpoint. O caminho pode ser personalizado; se você o alterar, o target do Prometheus precisa usar o caminho correspondente.
#1 Best Overall
- Configure o exporter Prometheus na configuração de OpenTelemetry da aplicação, conforme o guia de exporters do OpenTelemetry .NET.
- Registre o middleware de scraping com
UseOpenTelemetryPrometheusScrapingEndpoint()no pipeline do ASP.NET Core, depois de configurar o serviço e o caminho de acordo com a aplicação. - Inicie a aplicação e confirme que ela está escutando na porta esperada. A partir de um cliente que consiga alcançá-la, abra
http://<host>:<porta>/metrics(ou o caminho personalizado). Uma resposta com conteúdo de métricas confirma que a rota responde; não confirma, por si só, que o Prometheus já a está coletando.
Configure o scrape do Prometheus no Docker
O Prometheus precisa de um target HTTP acessível a partir do próprio container. Em uma configuração de scraping, scrape_configs define os jobs; cada job tem um job_name, pode definir um scrape_interval e lista os endereços em targets. Exemplo estrutural:
scrape_configs:
- job_name: "dotnet-app"
scrape_interval: 15s
static_configs:
- targets: ["app:8080"]
app:8080 é apenas um exemplo de nome de serviço e porta, não um endereço universal. Substitua-o pelo nome e pela porta em que a aplicação pode ser alcançada na rede Docker compartilhada com o Prometheus. Se a aplicação estiver fora dessa rede, use um endereço acessível a partir do container do Prometheus. Dentro de um container, localhost aponta para esse próprio container; não presuma que seja a máquina host nem outro serviço. A documentação consultada não estabelece uma topologia universal de Docker Compose: verifique a rede e os nomes definidos na sua configuração.
Depois de carregar a configuração, confira o estado do target na interface do Prometheus e consulte métricas recebidas. Se o target estiver indisponível, confira primeiro se a aplicação responde no endereço e caminho configurados a partir da rede do Prometheus, e então revise o nome do host, a porta e o protocolo escolhido.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →OTLP é uma alternativa, não outro nome para /metrics
Com OTLP, a aplicação exporta métricas ao receptor OTLP do Prometheus, que precisa ser habilitado com --web.enable-otlp-receiver. O guia consultado mostra o endpoint receptor /api/v1/otlp/v1/metrics. Isso não é o endpoint de scraping HTTP da aplicação: para scrape, o Prometheus busca /metrics no serviço .NET; para OTLP, o exporter envia ao receptor configurado no Prometheus. Use a configuração de aplicação e servidor correspondente a apenas um fluxo por vez, sem apontar um target de scrape para o endpoint OTLP. Veja o guia OpenTelemetry para a configuração OTLP.
| Aspecto | Scrape Prometheus | Exportação OTLP |
|---|---|---|
| Direção | Prometheus consulta o endpoint HTTP da aplicação. | A aplicação/exporter envia ao receptor OTLP configurado. |
| Configuração ilustrada | Middleware de scraping na aplicação e scrape_configs com target no Prometheus. |
Exporter OTLP na aplicação e receptor OTLP habilitado no Prometheus. |
| Endereço representativo | /metrics é o padrão do exporter ASP.NET Core descrito; o caminho pode ser personalizado. Fonte: documentação dos exporters .NET. |
/api/v1/otlp/v1/metrics no guia consultado. Fonte: guia de métricas .NET. |
| Estado e observações na documentação consultada | Em 4 de outubro de 2026, a documentação dos exporters informava que o exporter Prometheus ASP.NET Core estava em desenvolvimento e não suportava exemplars. | O mesmo guia de exporters recomendava OTLP para produção. |
Essas observações refletem a documentação consultada em 4 de outubro de 2026, não uma garantia sobre versões futuras. Antes de adotar um exporter, confira a documentação e o estado da versão que pretende usar.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Conecte o Grafana e monte um painel
O Grafana consulta o Prometheus; não substitui o scrape nem armazena a coleta como o Prometheus. Configure Prometheus como fonte de dados no Grafana usando um endereço que o servidor Grafana consiga alcançar. Em Docker, aplique a mesma regra de rede: um endereço acessível do navegador pode não ser acessível do container Grafana, e vice-versa.
Rank #4
- Adicione a fonte de dados Prometheus nas configurações de fontes de dados do Grafana e informe a URL de serviço do Prometheus acessível pelo Grafana.
- Crie um painel e escolha Prometheus como fonte da consulta.
- Escreva PromQL usando uma métrica realmente exposta pela sua aplicação. O guia oficial usa
rate(MyFruitCounter_total[5m])como demonstração: calcula a taxa por segundo de aumento do contador ao longo da janela de cinco minutos.MyFruitCounter_totalé um nome de exemplo, não uma métrica obrigatória de aplicações .NET.
Se preferir começar com um dashboard existente, o Grafana Labs publica o ASP.NET OTEL Metrics e o OpenTelemetry dotnet webapi. Trate-os como modelos a conferir contra os nomes e rótulos de métricas disponíveis na sua aplicação, não como garantia de que toda configuração terá os mesmos dados.
Quick Recap
Best Value
Diagnóstico quando os dados não aparecem
- A aplicação não responde: confirme que o processo está ativo, escutando na porta esperada e acessível a partir de onde o teste está sendo feito.
/metricsnão responde: verifique se o exporter e o middleware foram configurados e se o caminho usado corresponde ao padrão ou ao caminho personalizado.- O target do Prometheus está indisponível: confira
job_name, porta, caminho e endereço resolvível a partir do container Prometheus. Não uselocalhostcomo atalho para outro container. - Há incompatibilidade de protocolo: confirme que a aplicação usa o exporter correspondente ao método escolhido. No scrape, o Prometheus consulta o endpoint da aplicação; em OTLP, o exporter envia ao receptor OTLP habilitado.
- O Prometheus coleta, mas o painel está vazio: confira se a fonte de dados Grafana aponta para o Prometheus correto e se a consulta usa o nome de métrica e os rótulos que existem nos dados coletados.
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




