[인프라] prometheus-net C# 콘솔

참고


개요

  • .NET 서비스를 메트릭으로 수집하여 Prometheus 에서 메트릭에 접근하여 최종적으로 Grafana 에서 DashBoard 구현 까지 가능한지 자료조사 진행합니다.
  • 우선, .NET 서비스에서 메트릭 계측 라이브러리가 있는지 조사 진행합니다.

prometheus-net 이란?

  • prometheus-net 이란, 애플리케이션을 계측하고 메트릭을 Prometheus 로 내보내기 위한 .NET Library 입니다.
  • 라이브러리는 다음 런타임을 대상으로 진행합니다.
    • .NET Framework 4.6.2 이상
    • .NET Core 3.1 이상
  • 일부 특수화된 기능 하위 집합에는 최신 런타임이 필요합니다.
    • .NET Meters API 통합에는 .NET 6 이상이 필요합니다.

모범 사례 및 사용법

  • 이 라이브러리를 사용하면 사용자 지정 메트릭으로 코드를 계측할 수 있으며, ASP.NET Core 에 대한 몇 가지 기본 제공 메트릭 컬렉션 통합을 제공합니다.
  • Counter, Gugage, Summary, Histogram 의 네 가지 유형의 메트릭을 사용할 수 있습니다.
  • 클래스는 이 Metrics 라이브러리의 API 에 대한 기존 진입점입니다. C# 코드에서 가장 일반적인 방법은 static readonly 지정된 클래스에서 내보내려는 각 메트릭에 대한 필드를 갖는 것입니다.

설치

  • 설치는 NuGet Package 를 통해서 설치 가능 합니다.

빠른 시작

  • 다음 코드를 작성하여, C# 서비스를 메트릭 정보로 계측 할 수 있습니다.
using Prometheus;
using System;
using System.Threading;

class Program
{
    private static readonly Counter TickTock =
        Metrics.CreateCounter("sampleapp_ticks_total", "Just keeps on ticking");

    static void Main()
    {
        // NB! On .NET Core and .NET 5+ you should use KestrelMetricServer instead, to benefit from latest runtime improvements.
        // MetricServer is the .NET Standard implementation designed for maximum compatibility across frameworks.
        var server = new MetricServer(hostname: "localhost", port: 1234);

        server.Start();

        while (true)
        {
            TickTock.Inc();
            Thread.Sleep(TimeSpan.FromSeconds(1));
        }
    }
}

실행 결과

  • http://localhost:1234/metrics URL 로 접속 하게 되면, 다음과 같이 Metrics 이 정상적으로 수집 되는 것을 확인할 수 있습니다.

728x90

이 글을 공유하기

댓글

Designed by JB FACTORY