ASP.NET Core Monitoramento de Performance em Tempo Real

Thiago Loureiro
3 min readJun 3, 2018

--

Hoje em dia temos API’s para todos os lados e em algum ponto precisamos começar a monitorar nossa API em tempo real, e é através desse artigo/tutorial onde irei demonstrar como iremos fazer isso com .NET Core + InfluxDB e Grafana. (O InfluxDB e o Grafana iremos utilizar através do Docker).

Criando a API

Criar a API é bem simples, basta criar um novo projeto no VisualStudio e selecionar a opção .NET Core / ASP.NET Core Web Application

Instalando o Grafana

Updated:

Utilizem esse Gist para subir a stack

Antigo:

Para fazer o setup do Grafana através do Docker é muito simples, basta executar a seguinte linha de comando:

docker run -d -p 3000:3000 grafana/grafana

Mais informações podem ser conferidas aqui no site do Grafana.

Instalando o InfluxDB

O procedimento é igual ao do Grafana, basta executar a seguinte linha de comando:

docker run -p 8086:8086 -d -v influxdb:/var/lib/influxdb influxdb

Como podem observar o Grafana ficou na porta 3000 e o Influx na porta 8086.

Configurando a API

Agora precisamos ir lá na API e configurar para gravar as métricas no InfluxDB, portanto iremos modificar alguns arquivos e instalar pacotes Nuget.

Install-Package App.Metrics.Extensions.Mvc

Install-Package App.Metrics.Formatters.Json

Install-Package App.Metrics.Extensions.Reporting.InfluxDB

Modifique seu arquivo Startup.cs conforme exemplo abaixo:

Observe que adicionamos linhas pertinentes à configuração do InfluxDB como por exemplo:

var database = “appmetricsdemo”;

var uri = new Uri(“http://127.0.0.1:8086");

Portanto use da forma que configurou.

Configurando o Grafana

Vamos agora acessar o Grafana, http://localhost:3000, usuário e senha padrão é admin/admin.

Agora você precisará configurar um DataSource, onde no nosso caso será o Influx, abaixo segue exemplo de configuração:

Note que a URL eu inseri o IP do container Docker onde está rodando o InfluxDB, pois o Grafana também está sendo executado no Docker e os dois estão sendo executados dentro do mesmo network.

Clique em Save & Test, você deverá ver esse resultado:

Agora vamos importar o Dashboard para o Grafana:

Aqui nesse site você pode encontrar o arquivo Json para importar para o seu dashboard, porém deixarei também a cópia do que utilizei na demo aqui:

Vamos agora executar nossa aplicação, fique à vontade para adicionar novos Controllers.

Resultado

Endpoints:

Overview:

Detalhe de requisições dos EndPoints

Configurações de filtros do Grafana:

Bom, deu pra ter uma idéia de quão poderosa é essa ferramenta, certo ?

A idéia é demonstrar como subir esse ambiente e rapidamente configurar sua API.

--

--