이전 포스팅에 이어 진행됩니다. (Windows 기준)
2023.01.11 - [C#] - [C#] 매트릭 수집 ( dotnet-counters )
[C#] 매트릭 수집 ( dotnet-counters )
1. 콘솔앱 생성 2. 아래와 같이 매트릭이 수집될수 있도록 코드 처리 using System.Diagnostics.Metrics; class Program { static Meter meter = new Meter("HatStore", "1.0.0"); static Counter hatsSold = meter.CreateCounter("hats-sold"); sta
kjun.kr
1. OpenTelemetry.Exporter.Prometheus 패키지 설치
OpenTelemetry 라이브러리는 이러한 측정값을 집계하고 Prometheus exporter 라이브러리는 HTTP 메트릭 엔드포인트를 통해 집계된 데이터를 사용할 수 있게 합니다. 위 패키지는 두항목이 함께 패키징 되어있습니다.
2. 코드작성 및 실행
using System.Diagnostics.Metrics;
using OpenTelemetry;
using OpenTelemetry.Metrics;
class Program
{
static Meter meter = new Meter("HatStore", "1.0.0");
static Counter<int> hatsSold = meter.CreateCounter<int>(name: "hats-sold",
unit: "Hats",
description: "The number of hats sold in our store");
static void Main(string[] args)
{
using MeterProvider meterProvider = Sdk.CreateMeterProviderBuilder()
.AddMeter("HatStore")
.AddPrometheusExporter(opt =>
{
opt.StartHttpListener = true;
opt.HttpListenerPrefixes = new string[] { $"http://localhost:9184/" };
})
.Build();
Console.WriteLine("Press any key to exit");
while (!Console.KeyAvailable)
{
// Pretend our store has a transaction each second that sells 4 hats
Thread.Sleep(1000);
Console.WriteLine($"{DateTime.Now.ToString()} : 4 {hatsSold.Name} ({hatsSold.Meter.Name})");
hatsSold.Add(4);
}
}
}
위와 같이 작성 후 프로젝트를 시작해 놓습니다.
3. Prometheus 설정 및 구성
https://prometheus.io/docs/introduction/first_steps/
First steps | Prometheus
An open-source monitoring system with a dimensional data model, flexible query language, efficient time series database and modern alerting approach.
prometheus.io
위 사이트에서 아래 표시된 부분 (Download the latest release) 클릭합니다.
아래화면에서 Windows 선택 후 LTS 버전 다운로드 합니다.
아래처럼 압축을 풀고 prometheus.yml 파일에 OpenTelemetry 항목을 추가합니다.
- job_name: 'OpenTelemetryTest'
scrape_interval: 1s # poll very quickly for a more responsive demo
static_configs:
- targets: ['localhost:9184']
(코드에 적었던 포트와 동일한 포트로 처리)
cmd 창에서 다운로드한 폴더로 이동하여 아래 명령을 수행합니다.
prometheus --config.file=prometheus.yml
아래처럼 명령이 수행되어 Prometheus에 접근할 수 있게 됩니다.
4. Prometheus에서 매트릭 확인
localhost:9090 페이지로 이동합니다.
아래처럼 화면이 나왔다면 정상적으로 Prometheus 가 정상 동작한 것입니다.
상단 메뉴에서 Stasus > Targets로 들어가서 제대로 UP 이 되었는지 확인합니다.
(아래와 같이 떠야 정상)
http://localhost:9184/metrics 페이지로 이동하면 코드에서 처리한 내용기준 매트릭이 잘 수집되고 있는지 확인합니다.
이름을 보면 알겠지만 Unit(Hats)까지 붙어서 '-'는 '_'로 바뀌어 이름이 정해집니다. (hats_sold_Hats)
상단의 Graph 페이지로 이동하여 hats_sold_Hats 입력 후 Enter 하거나 Execute 버튼을 클릭합니다.
매트릭 결과를 그래프로 확인할 수 있습니다.
[Source]
https://github.com/kei-soft/MetricTestConsoleApp
GitHub - kei-soft/MetricTestConsoleApp
Contribute to kei-soft/MetricTestConsoleApp development by creating an account on GitHub.
github.com
참고
https://learn.microsoft.com/ko-kr/dotnet/core/diagnostics/metrics-collection
메트릭 수집 - .NET
.NET 애플리케이션에서 메트릭을 수집하는 자습서
learn.microsoft.com
'C#' 카테고리의 다른 글
[C#/Metric] Grafana 에 대시보드 import 하기 - json (0) | 2023.01.12 |
---|---|
[C#/Metric] Grafana 대시보드에 메트릭 표시하기 (0) | 2023.01.12 |
[C#/Metric] 매트릭 수집 ( dotnet-counters ) (0) | 2023.01.11 |
[C#] Dapper.Net ebook (pdf) & 참고 사이트 (0) | 2022.12.12 |
[C#] Array.ConvertAll - 배열요소 모두 타입 변환하기 (0) | 2022.10.18 |