이 콘텐츠는 선택한 언어로 제공되지 않습니다.

Chapter 107. Observability Services


The Camel Observability Services component provides a set of opinionated components and configuration which simplify operations such as observability on cloud environments. Although the component is mainly targeted for cloud, it can be used in any other environment, giving to the Camel application the ability to expose a set of observability features by default.

107.1. Dependencies

When using camel-observability-services with Red Hat build of Camel Spring Boot, add the following Maven dependency to your pom.xml to have support for auto configuration:

<dependency>
  <groupId>org.apache.camel.springboot</groupId>
  <artifactId>camel-observability-services-starter</artifactId>
</dependency>

107.2. Usage

107.2.1. Auto-detection from classpath

All you need to do is to add the camel-observability-services dependency to the classpath. There’s no need to add any further configuration. Each component will be configured using each own default setting, except the endpoint which will be exposed in /observe/<service> by default.

If you need to customize each of the different components provided within this service, then, you can specify in the application.properties each of the configuration as it would be done normally when you provide the individual component.

NOTE: The customization of the configuration for this component is not available for Spring Boot runtime due to a known limitation. You can use this component in Spring Boot runtime with the default settings only. If you need to provide any customization, you’ll need to configure each component separately.

107.3. Components available

The presence of this dependency will provide the following components:

  • camel-health
  • camel-management
  • camel-micrometer-prometheus
  • camel-opentelemetry

107.3.1. List of known endpoints

The presence of this dependency will expose the following endpoints:

Expand
EndpointDescription

/observe/health

startup probe endpoint

/observe/health/live

liveness probe endpoint

/observe/health/ready

readiness probe endpoint

/observe/metrics

metrics exposed as in Micrometer Prometheus Registry

107.4. OpenTelemetry configuration

The presence of this component will provide the required instrumentation to easily enable the collection of OpenTelemetry metrics.

107.4.1. Testing OpenTelemetry collector

If you need a quick way to verify the configuration of OpenTelemetry traces, you can start a local collector by running a Docker service:

docker run -p 4318:4318 otel/opentelemetry-collector-contrib:0.113.0

This service will expose the port 4318 to localhost which is the default setting expected by the agent. You can change this configuration accordingly.

107.4.2. OpenTelemetry Agent configuration

To collect the metrics exposed by the application, and, depending on the runtime of choice, you will need to start your Camel application with a Java agent. The Java agent goal is to push those metrics to the OpenTelemetry compatible collector server. Follow the instructions provided in OpenTelemetry Java Agent configuration.

NOTE: Due to a flaw in the alignment of OpenTelemetry dependencies in Spring Boot runtime, you may hit a runtime error until the Spring Boot BOM dependencies is aligning the OpenTelemetry dependencies. Be mindful of the required workaround required for this to work until the issue is fixed.

107.5. JMX configuration

The presence of this component implies the presence of camel-management component. This is in charge to include information about Camel application status in JMX format.

NOTE: The presence of this component automatically enables the collection of the JMX metrics. This should be negligible from performance point of view. However, you may want to disable that running the application with -Dorg.apache.camel.jmx.disabled=true JVM option.

107.5.1. Testing JMX

An easy way to test the JMX configuration is to run a JMX client such as jconsole. Execute it from the same machine where the Camel application you want to monitor is running, and you can quickly verify the status of the application (selecting the local process). There is the possibility to expose the JMX remotely as well.

Exposing remote JMX would require some security setting in place to avoid disclosing sensitive information. Also mind that it may not be suitable for cloud development, i.e., Kubernetes, due to possible limitations within the binary protocols used by the JMX technology. In this case, it is recommended the usage of a JSR 160 compatible Java agent.

107.5.2. JMX Agent configuration

When dealing with JMX, you may want to expose the information available via HTTP(S) protocol which would make JMX more suitable to cloud-based development. A possible way to expose the information is to use a JSR 160 compatible Java agent, whose goal is to interact as an adapter interface towards JMX, exposing an HTTP-based service instead. Follow the instructions provided in JMX Java Agent configuration .

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat
맨 위로 이동