こんにちは、Technical Account Manager (TAM) の鈴村圭史です。 前回の記事
ではローカル環境(Podman)での可観測性環境の構築方法を紹介しました。今回は、OpenShift Container Platform (OCP) 上に JBoss EAP XP 6.0 と OpenTelemetry (OTEL) を連携させた可観測性基盤を構築する方法を解説します。
JBoss EAP XP 6.0 は JBoss EAP 8.1 をベースとしており、MicroProfile Telemetry 2.0 をサポートします。これにより、クラウドネイティブ環境でも標準技術でアプリケーション内部の状態を可視化できるようになります。
この記事では、Helm Chart を使ったデプロイ手法 と、OTEL 連携時に発生しがちな 通信エラー(gRPC/HTTP 不整合問題)を防ぐ設定ポイント をわかりやすく整理して紹介します。
アーキテクチャ構成
今回の構成は以下のとおりです。
- アプリケーション:JBoss EAP XP 6.0(S2I ビルド / Helm Chart デプロイ)
- サンプルアプリ:Quickstart opentelemetry-tracing
- 観測基盤:OpenTelemetry Collector(Deployment モード)
- 通信プロトコル:OTLP/HTTP(protobuf)
前提条件
- oc と helm が利用可能であること
手順 1: プロジェクトの作成
まずは検証用のプロジェクトを作成します。
oc new-project xp6-demo
手順 2: OpenTelemetry Collector のデプロイ
OTLP/HTTP でトレースデータを受信する Collector を Deployment としてデプロイします。
otel-collector.yaml
apiVersion: opentelemetry.io/v1beta1 kind: OpenTelemetryCollector metadata: name: otel spec: mode: deployment config: receivers: otlp: protocols: http: endpoint: 0.0.0.0:4318 processors: batch: {} memory_limiter: check_interval: 1s limit_percentage: 50 spike_limit_percentage: 30 exporters: debug: verbosity: detailed service: pipelines: traces: receivers: [otlp] processors: [memory_limiter, batch] exporters: [debug] logs: receivers: [otlp] processors: [memory_limiter, batch] exporters: [debug] metrics: receivers: [otlp] processors: [memory_limiter, batch] exporters: [debug]
ポイント
- endpoint: 0.0.0.0:4318 → HTTP/OTLP で受信するための設定
- verbosity: detailed → Collector のログでトレース内容を確認するためのデバッグ設定
適用します。
oc apply -f otel-collector.yaml oc get service otel-collector
手順 3: Helm Chart 設定ファイルの作成(重要)
JBoss EAP XP 6.0 をデプロイするための helm.yaml を作成し、OTEL の環境変数を定義します。
helm.yaml
build: uri: https://github.com/jboss-developer/jboss-eap-quickstarts.git ref: xp-6.0.x contextDir: opentelemetry-tracing mode: s2i deploy: replicas: 1 env: - name: OTEL_TRACES_EXPORTER value: otlp - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://otel-collector:4318 - name: OTEL_EXPORTER_OTLP_PROTOCOL value: http/protobuf - name: OTEL_SERVICE_NAME value: eap-xp6-tracing-demo
ここが特に重要!
OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf XP 6.0 の OTEL エクスポーターはデフォルト gRPC。 Collector 側は HTTP。
手順 4: アプリケーションのデプロイ
Helm Chart を使って XP 6.0 アプリケーションをデプロイします。
helm repo add jboss-eap https://jbossas.github.io/eap-charts/ helm install otel-demo -f helm.yaml jboss-eap/eap8
しばらくすると、otel-demo Pod が起動します。
# oc get pod NAME READY STATUS RESTARTS AGE otel-collector-69577ccd59-69bl4 1/1 Running 0 13m otel-demo-2-build 0/1 Completed 0 27h otel-demo-586f5d7fc4-dpfx2 1/1 Running 0 17m otel-demo-build-artifacts-1-build 0/1 Completed 0 27h
手順 5: 動作確認
1. アプリケーションへアクセスしトレースを生成
URL=$(oc get route otel-demo --template='{{ .spec.host }}')
curl -k https://$URL/opentelemetry-tracing
2. Collector のログでトレースを確認
oc logs otel-collector-69577ccd59-69bl4 -f
以下のようなログが表示されれば成功です。
- service.name: eap-xp6-tracing-demo
- url.path: /opentelemetry-tracing/
2025-12-12T05:22:27.515Z info Traces {"resource": {"service.instance.id": "7cd11e01-c2c0-43b1-9edc-a3c1689664c1", "service.name": "otelcol", "service.version": "0.135.0"}, "otelcol.component.id": "debug", "otelcol.component.kind": "exporter", "otelcol.signal": "traces", "resource spans": 1, "spans": 1}
2025-12-12T05:22:27.515Z info ResourceTraces #0 service.name=eap-xp6-tracing-demo telemetry.sdk.language=java telemetry.sdk.name=opentelemetry telemetry.sdk.version=1.42.1.redhat-00001
ScopeTraces #0 io.smallrye.opentelemetry@2.9.2.redhat-00001
GET /opentelemetry-tracing/ d1d86a289c3ea92f9077d291889b218f 177921993954f6a6 http.response.status_code=200 url.scheme=https network.transport=tcp http.request.method=GET http.route=/opentelemetry-tracing/ server.address=otel-demo-xp6-demo.apps.test.lab.local client.address=172.16.0.1 user_agent.original=curl/8.12.1 url.path=/opentelemetry-tracing
{"resource": {"service.instance.id": "7cd11e01-c2c0-43b1-9edc-a3c1689664c1", "service.name": "otelcol", "service.version": "0.135.0"}, "otelcol.component.id": "debug", "otelcol.component.kind": "exporter", "otelcol.signal": "traces"}
まとめ
今回は、OpenShift 上で JBoss EAP XP 6.0 と OpenTelemetry を連携させる方法を紹介しました。 XP 6.0 の持つ最新の可観測性機能を、ぜひ OpenShift 環境でも活用してみてください。
