![[17.0.0.3 and later]](../ng_v17003plus.gif)
Dropwizard 메트릭 마이그레이션
MicroProfile 메트릭 API는 Dropwizard 메트릭 3.2.3과 유사합니다. 대부분의 경우, Dropwizard 메트릭으로 인스트루먼트된 코드는 몇 가지 사소한 변경사항이 포함된 MicroProfile 메트릭으로 실행될 수 있습니다.
MicroProfile 메트릭의 주요 차이점
- 메트릭 코어 및 메트릭 어노테이션의 코어 클래스 서브세트만 사용할 수 있습니다.
- 클래스는 org.eclipse.microprofile.metrics 및 org.eclipse.microprofile.metrics.annotation 아래에 패키지됩니다.
- 카운터, 히스토그램, 타이머, 미터 및 MetricRegistry는 인터페이스입니다.
- CDI를 사용하여 MetricRegistry 및 메트릭 인스턴스를 가져올 수 있습니다.
- 단일 공유 애플리케이션 MetricRegistry
- 메타데이터를 제공하고 메트릭에 등록할 수 있습니다.
- 사용자 정의 시계 및 저장소는 제공할 수 없습니다.
패키지 이름
Dropwizard 메트릭 코어 및 메트릭 어노테이션 패키지의 클래스 서브세트는 MicroProfile 메트릭 패키지 org.eclipse.microprofile.metrics에서
찾을 수 있습니다. 다음 예제는 MicroProfile 메트릭으로 작업하도록 Dropwizard
메트릭 클래스의 패키지 이름을 업데이트할 수 있는 방법을 보여줍니다.
- com.codahale.metrics는 org.eclipse.microprofile.metrics가 됨
- com.codahale.metrics.annotation은 org.eclipse.microprofile.metrics.annotation이 됨
MetricRegistry 얻기
MetricRegistry는 인터페이스입니다. 레지스트리의 인스턴스를 작성하지 않고 대신 CDI를 사용하여 애플리케이션 MetricRegistry를 삽입할 수 있습니다.
다음을 사용하지 않습니다.
// Dropwizard snippet
MetricRegistry metrics = new MetricRegistry();
// or
MetricRegistry sharedMetrics = SharedMetricRegistries.getOrCreate(...);
대신 다음을 사용할 수 있습니다. @Inject
MetricRegistry metrics;
카운터, 히스토그램, 타이머, 미터 인터페이스
카운터, 히스토그램, 타이머 및 미터는 인터페이스입니다. 이들은 직접 인스턴스화할 수 없으므로 레지스트리를 사용하거나 CDI를 사용하여 작성해야 합니다. 예:
Counter jobCount = metrics.counter("jobs");
//Example using annotation
@Inject
@Metric(name="jobs", absolute=true)
Counter jobCount;