0Pricing
C# Academy · 강의

메트릭 수집

카운터, 게이지 및 히스토그램을 기록합니다.

메트릭 수집은(는) CoddyKit의 무료 C# Academy 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 C# Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. C# Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

메트릭이 필요한 이유

메트릭은 시간에 따라 집계되는 수치 측정값입니다. 메트릭은 요청 속도, 오류 수, 지연 시간, 큐 깊이와 같은 대시보드와 알림을 지원합니다. 로그와 달리 메트릭은 집계되므로 높은 발생량에서도 비용이 저렴합니다.

Meter API

.NET은 System.Diagnostics.Metrics를 통해 메트릭을 내보냅니다. Meter를 생성한 다음 이를 사용하여 카운터와 히스토그램 같은 측정 도구를 생성합니다.

using System.Diagnostics.Metrics;

private static readonly Meter Meter = new("Checkout.Orders");

카운터

카운터는 값이 증가하기만 하는 측정 도구로, 주문 생성이나 오류와 같은 이벤트를 세는 데 적합합니다. Add를 호출하여 값을 증가시킵니다.

private static readonly Counter<long> OrdersPlaced =
    Meter.CreateCounter<long>("orders.placed");

OrdersPlaced.Add(1);

카운터 차원

카운터에 태그를 연결하면 상태나 리전 같은 차원별로 나눌 수 있으므로, 백엔드에서 집계하고 필터링할 수 있습니다.

OrdersPlaced.Add(1,
    new KeyValuePair<string, object>("status", "completed"),
    new KeyValuePair<string, object>("region", "eu"));

히스토그램

히스토그램은 값의 분포를 기록하므로 지연 시간이나 페이로드 크기에 적합합니다. 백엔드는 기록된 샘플에서 백분위수(p50, p95, p99)를 계산합니다.

private static readonly Histogram<double> OrderDuration =
    Meter.CreateHistogram<double>("order.duration", "ms");

OrderDuration.Record(elapsedMs);

UpDownCounter

UpDownCounter는 증가하거나 감소할 수 있으므로 활성 연결 수나 현재 큐에 있는 항목 수와 같은 값에 적합합니다.

private static readonly UpDownCounter<long> ActiveOrders =
    Meter.CreateUpDownCounter<long>("orders.active");

ActiveOrders.Add(1);   // started
ActiveOrders.Add(-1);  // finished

관찰 가능한 측정 도구

관찰 가능한 측정 도구는 콜백을 통해 필요할 때 읽습니다. 증가시켜 기록하기보다 샘플링하는 현재 메모리나 캐시 크기 같은 게이지에 적합합니다.

Meter.CreateObservableGauge("cache.size",
    () => _cache.Count);

Meter 등록하기

트레이싱과 마찬가지로 OpenTelemetry는 등록한 미터만 수집합니다. 미터 이름과 함께 AddMeter를 사용하십시오.

builder.Services.AddOpenTelemetry()
    .WithMetrics(metrics => metrics
        .AddMeter("Checkout.Orders"));

내장 메트릭

계측 패키지는 ASP.NET Core(요청 지속 시간, 활성 요청)와 런타임(가비지 컬렉션, 스레드 풀)에 대한 즉시 사용 가능한 메트릭을 제공하므로, 운영 상태를 바로 파악할 수 있습니다.

metrics
    .AddAspNetCoreInstrumentation()
    .AddRuntimeInstrumentation();

알맞은 측정 도구 선택하기

동작에 따라 선택하십시오. 단조롭게 증가하는 수는 Counter, 오르내리는 값은 UpDownCounter, 분포는 Histogram, 샘플링한 현재 값은 Observable Gauge를 사용합니다. 올바른 선택을 하면 대시보드와 알림을 쉽게 구성할 수 있습니다.

카디널리티 관리하기

각각의 고유한 태그 조합은 별도의 시계열을 만듭니다. 사용자 ID와 같은 고카디널리티 태그는 저장 공간과 비용을 급격히 늘릴 수 있습니다. 상태나 리전처럼 범위가 제한되고 카디널리티가 낮은 차원을 사용하십시오.

간단한 확인

메트릭 수집을 확인해 보세요.

복습

메트릭은 수치 측정값을 저렴하게 집계합니다. Meter API는 측정 도구를 생성합니다. Counter는 단조롭게 증가하고, UpDownCounter는 오르내리며, Histogram은 백분위수 계산을 위한 분포를 기록하고, Observable 게이지는 값을 샘플링합니다. 태그는 차원을 추가하지만 카디널리티에 주의해야 합니다. AddMeter로 미터를 등록하고 ASP.NET Core 및 런타임 내장 계측을 추가하면 운영 상태를 즉시 파악할 수 있습니다.

자주 묻는 질문

“메트릭 수집” 강의는 무료인가요?

네 — “메트릭 수집” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 C# Academy 강의 전체를 잠금 해제할 수 있습니다. C# Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“메트릭 수집”에서 뭘 배우나요?

카운터, 게이지 및 히스토그램을 기록합니다. 브라우저에서 직접 실행하는 실습 코드로 C# Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

C# Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 C# Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.

“메트릭 수집” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 C# Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 C# Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 관측 가능성의 세 가지 핵심 요소
  2. 분산 추적
  3. 메트릭 수집
  4. 백엔드로 내보내기
← C# Academy(으)로 돌아가기