2.15. 메트릭

2.15.1. 개요

Camel 2.14 사용 가능

Camel은 Camel 경로에 많은 기존 메트릭 통합을 제공하는 반면 Codahale 지표가 추가되었습니다. 이를 통해 최종 사용자는 Codahale 메트릭을 사용하여 수집하는 기존 데이터와 함께 Camel 라우팅 정보를 원활히 제공할 수 있습니다.

Codahale 메트릭을 사용하려면 다음이 필요합니다.

  1. camel-metrics 구성 요소 추가
  2. XML 또는 Java 코드에서 경로 메트릭 활성화

성능 메트릭은 표시 방법이 있는 경우에만 사용할 수 있습니다. metrics를 통해 사용할 수 있으므로, Cryostat와 통합할 수 있는 모든 종류의 모니터링 툴을 사용할 수 있습니다. 또한 실제 데이터는 100% Codehale JSON입니다.

2.15.2. 메트릭 경로 정책

단일 경로에 대한 Codahale 메트릭을 얻는 것은 경로별로 MetricsRoutePolicy 를 정의하여 수행할 수 있습니다.

Java에서 경로 정책으로 할당할 MetricsRoutePolicy 인스턴스를 생성합니다. 이는 아래에 표시되어 있습니다.

from("file:src/data?noop=true").routePolicy(new MetricsRoutePolicy()).to("jms:incomingOrders");

XML DSL에서 경로 정책으로 지정된 <bean >을 정의합니다. 예를 들면 다음과 같습니다.

<bean id="policy" class="org.apache.camel.component.metrics.routepolicy.MetricsRoutePolicy"/>

<camelContext xmlns="http://camel.apache.org/schema/spring">
  <route routePolicyRef="policy">
    <from uri="file:src/data?noop=true"/>
[...]

2.15.3. 메트릭 경로 정책 Cryostat

이 팩토리를 사용하면 Codahale 메트릭을 사용하여 경로 사용률 통계를 노출하는 각 경로에 RoutePolicy 를 추가할 수 있습니다. 아래 예제로 Java 및 XML에서 이 팩토리를 사용할 수 있습니다.

Java에서 다음과 같이 CamelContext 에 팩토리를 추가합니다.

context.addRoutePolicyFactory(new MetricsRoutePolicyFactory());

XML DSL에서 다음과 같이 < bean> 을 정의합니다.

<!-- use camel-metrics route policy to gather metrics for all routes -->
<bean id="metricsRoutePolicyFactory" class="org.apache.camel.component.metrics.routepolicy.MetricsRoutePolicyFactory"/>

다음과 같이 Java 코드에서 org.apache.camel.component.metrics.routepolicy.MetricsRegistryService 에서 com.codahale.metrics.MetricRegistry Registry를 유지할 수 있습니다.

MetricRegistryService registryService = context.hasService(MetricsRegistryService.class);
if (registryService != null) {
  MetricsRegistry registry = registryService.getMetricsRegistry();
  ...
}

2.15.4. 옵션

MetricsRoutePolicyFactoryMetricsRoutePolicy 는 다음 옵션을 지원합니다.

이름

기본

설명

durationUnit

TimeUnit.MILLISECONDS

메트릭 보고자에서 또는 통계를 json으로 덤프할 때 사용할 단위입니다.

jmxDomain

org.apache.camel.metrics

JXM 도메인 이름입니다.

metricsRegistry

 

공유 com.codahale.metrics.MetricRegistry 를 사용할 수 있습니다. 제공되지 않는 경우 Camel은 이 CamelContext에서 사용하는 공유 인스턴스를 생성합니다.

prettyPrint

false

통계를 json 형식으로 출력할 때 매우 인쇄를 사용할지 여부입니다.

rateUnit

TimeUnit.SECONDS

메트릭 보고기에서 또는 통계를 json으로 덤프할 때 사용할 단위입니다.

useJmx

false

com.codahale.metrics.JmxReporter 를 사용하여 good grained statistics to Cryostat에 대한 통계를 보고할지 여부입니다.

CamelContext에서 Cryostat를 활성화하면 MetricsRegistryService mbean이 Cryostat 트리의 서비스 유형 아래에 등록됩니다. mbean에는 json을 사용하여 통계를 출력하는 단일 작업이 있습니다. useJmx를 true로 설정하는 것은 통계 유형당 세분화된 mbeans를 원하는 경우에만 필요합니다.