Quantcast
Channel: Planeta Código
Viewing all articles
Browse latest Browse all 2710

Una sinfonía en C#: Cómo enviar datos desde .NET a Prometheus

$
0
0

Introducción

Prometheus es un sistema de monitoreo de código abierto que nos permite almacenar series de tiempo de datos numéricos. Es muy utilizado para monitorear aplicaciones y servicios en producción. En este caso vamos a ver cómo enviar datos desde una aplicación .NET a Prometheus.

Agregar el paquete NuGet

Utilizaremos https://github.com/prometheus-net/prometheus-net en nuestra aplicación .NET.

Y agregaremos el siguiete código

internalclassProgram{staticvoidMain(string[]args){usingvarserver=newKestrelMetricServer(port:1234);server.Start();// Generate some sample data from fake business logic.varrecordsProcessed=Metrics.CreateCounter("sample_records_processed_total","Total number of records processed.");_=Task.Run(asyncdelegate{while(true){// Pretend to process a record approximately every second, just for changing sample data.recordsProcessed.Inc();awaitTask.Delay(TimeSpan.FromSeconds(1));}});Console.WriteLine("Listening on port 1234");Console.ReadLine();}}

Con este tenemos por un lado las métricas por defecto que nos da Prometheus y por otro lado una métrica que nosotros creamos llamada sample_records_processed_total que es un contador que incrementa cada segundo.

Configurar Prometheus para que lea nuestros datos

global:scrape_interval:5sevaluation_interval:5sscrape_configs:-job_name:'my_net_application'static_configs:-targets:['host.docker.internal:1234']

Llamaremos a este archivo prometheus.yml y se copiará en la carpeta donde Prometheus busca su configuración.

Ejecutar Prometheus desde Docker

version:"3.7"services:prometheus:image:prom/prometheuscontainer_name:prometheusvolumes:-./prometheus.yml:/etc/prometheus/prometheus.ymlcommand:-'--config.file=/etc/prometheus/prometheus.yml'ports:-9090:9090restart:always

En el comando command le indicamos a Prometheus que lea la configuración desde el archivo prometheus.yml que montamos en el volumen, éste es el archivo que creamos en el paso anterior.

Ejecutar nuestra aplicación .NET

Ejecutamos la aplicación y vemos que Prometheus está leyendo los datos que enviamos desde nuestra aplicación.

Dejo el código de ejemplo por acá https://github.com/leomicheloni/prometheus-net-sample

Enjoy.


Viewing all articles
Browse latest Browse all 2710