6.3. Camel アプリケーションの監視


アプリケーションを監視することで、メトリクス、健全性チェック、分散トレーシングなど、アプリケーションの動作に関する情報を収集できます。

注記

このセクションでは、Red Hat build of Quarkus の例 に記載されている Observability の例を使用して、micrometer による observability を追加します。

ヒント

前提条件やその他の一般情報は、Camel Quarkus ユーザーガイド を確認してください。

6.3.1. プロジェクトの作成

  1. 開発 モードで開始する
  2. Maven の compile コマンドを実行します。

    $ mvn clean compile quarkus:dev
    Copy to Clipboard Toggle word wrap

    これにより、プロジェクトがコンパイルされ、アプリケーションが起動し、Quarkus ツールがワークスペースの変更を監視できるようになります。

    プロジェクトに加えた変更は、実行中のアプリケーションに自動的に反映されます。

    ヒント

    詳細は、Camel Quarkus ユーザーガイド の開発モードのセクションを参照してください。

6.3.2. メトリクスを有効にする

Camel Quarkus で可観測性機能を有効にするには、プロジェクトの pom.xml ファイルに追加の依存関係を追加する必要があります。最も重要なのは、camel-quarkus-opentelemetryquarkus-micrometer-registry-prometheus です。

  1. プロジェクトの pom.xml に依存関係を追加します。

    <dependencies>
    
        ...
    
        <dependency>
            <groupId>org.apache.camel.quarkus</groupId>
            <artifactId>camel-quarkus-opentelemetry</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkiverse.micrometer.registry</groupId>
            <artifactId>quarkus-micrometer-registry-prometheus</artifactId>
        </dependency>
    
        ...
    
    </dependencies>
    Copy to Clipboard Toggle word wrap

    これらの依存関係により、Camel MicrometerQuarkus Micrometer の両方の利点を享受できます。

6.3.3. メーターの作成

カスタムメトリクスのメーターは複数の方法で作成できます。

6.3.3.1. Camel マイクロメータコンポーネントの使用

この方法では Routes.java を使用します。

.to("micrometer:counter:org.acme.observability.greeting-provider?tags=type=events,purpose=example")
Copy to Clipboard Toggle word wrap

これにより、platform-http:/greeting-provider エンドポイントへの各呼び出しがカウントされます。

6.3.3.2. CDI 依存性注入の使用

この方法では、MeterRegistry の CDI 依存性注入を使用します。

@Inject
MeterRegistry registry;
Copy to Clipboard Toggle word wrap

次に、Camel Processor メソッドで直接使用してメトリクスを公開します。

void countGreeting(Exchange exchange) {
    registry.counter("org.acme.observability.greeting", "type", "events", "purpose", "example").increment();
}
Copy to Clipboard Toggle word wrap
from("platform-http:/greeting")
    .removeHeaders("*")
    .process(this::countGreeting)
Copy to Clipboard Toggle word wrap

これは、platform-http:/greeting エンドポイントへの各呼び出しをカウントします。

6.3.3.3. Micrometer アノテーションの使用

この方法では、次のように Bean TimerCounter.java を定義して、Micrometer アノテーション を使用します。

@ApplicationScoped
@Named("timerCounter")
public class TimerCounter {

    @Counted(value = "org.acme.observability.timer-counter", extraTags = { "purpose", "example" })
    public void count() {
    }
}
Copy to Clipboard Toggle word wrap

その後、Camel から Bean EIP を介して呼び出すことができます (TimerRoute.java を参照)。

.bean("timerCounter", "count")
Copy to Clipboard Toggle word wrap

Camel タイマーが起動されるたびにカウンターメトリクスが増加します。

6.3.3.4. メトリクスのブラウジング

メトリクスは、ポート 9000/q/metrics の HTTP エンドポイントで公開されます。

注記

管理エンドポイントには、アプリケーションがリッスンしているポート (8080) とは異なるポート (9000) を使用していることに注意してください。これは、quarkus.management.enabled = true を介して application.properties で設定されます。詳細は、Quarkus 管理インターフェイスガイド を参照してください。

すべての Camel メトリクスを表示するには、次を実行します。

$ curl -s localhost:9000/q/metrics
Copy to Clipboard Toggle word wrap

以前に作成したメトリクスのみを表示するには、次を実行します。

$ curl -s localhost:9000/q/metrics | grep -i 'purpose="example"'
Copy to Clipboard Toggle word wrap

および、3 行の異なるメトリクスが表示されます (すべてタイマーによってトリガーされるため、値は同じです)。

注記

Prometheus の出力形式に注意してください。JSON 形式を使用する場合は、Quarkus Micrometer 管理インターフェイス 設定ガイド に従ってください。

6.3.4. トレーシング

Camel Quarkus アプリケーションの問題を診断するには、メッセージのトレースを開始できます。クラウド環境に適した OpenTelemetry 標準を使用します。

プロジェクトの pom.xml に依存関係 camel-quarkus-opentelemetryquarkus-micrometer-registry-prometheus を追加すれば十分です。

<dependencies>

    ...

    <dependency>
        <groupId>org.apache.camel.quarkus</groupId>
        <artifactId>camel-quarkus-opentelemetry</artifactId>
    </dependency>
    <dependency>
        <groupId>io.quarkiverse.micrometer.registry</groupId>
        <artifactId>quarkus-micrometer-registry-prometheus</artifactId>
    </dependency>

    ...

</dependencies>
Copy to Clipboard Toggle word wrap

次に、application.properties で OpenTelemetry エクスポーターを設定します。

# We are using a property placeholder to be able to test this example in convenient way in a cloud environment
quarkus.otel.exporter.otlp.traces.endpoint = http://${TELEMETRY_COLLECTOR_COLLECTOR_SERVICE_HOST:localhost}:4317
Copy to Clipboard Toggle word wrap
注記

その他の OpenTelemetry エクスポーターの詳細は、Camel Quarkus OpenTelemetry 拡張ドキュメント を参照してください。

トレースイベントを表示するには、トレースサーバーを起動します。これを行う簡単には、Docker Compose を使用します。

$ docker-compose up -d
Copy to Clipboard Toggle word wrap

サーバーが稼働している状態で、http://localhost:16686 にアクセスします。次に、'Service' ドロップダウンから 'camel-quarkus-observability' を選択し、'Find Traces' ボタンをクリックします。

platform-http コンシューマールートは、レイテンシーをシミュレートするためにランダムな遅延を導入するため、各トレースの全体的な時間は異なるはずです。トレースを表示すると、各エンドポイントを介したメッセージエクスチェンジの進捗を示す 6 つのスパンの階層が表示されます。

6.3.5. アプリケーションのパッケージ化と実行

開発が完了したら、アプリケーションをパッケージ化して実行できます。

ヒント

JVM モードとネイティブモードの詳細は、Camel Quarkus ユーザーガイド の「パッケージ化と実行」セクションを参照してください。

6.3.5.1. JVM モード

$ mvn clean package
$ java -jar target/quarkus-app/quarkus-run.jar
...
[io.quarkus] (main) camel-quarkus-examples-... started in 1.163s. Listening on: http://0.0.0.0:8080
Copy to Clipboard Toggle word wrap

6.3.5.2. ネイティブモード

重要

ネイティブモードでは、GraalVM およびその他のツールがインストールされている必要があります。Camel Quarkus ユーザーガイド の前提条件セクションを確認してください。

GraalVM を使用してネイティブ実行可能ファイルを準備するには、次のコマンドを実行します。

$ mvn clean package -Pnative
$ ./target/*-runner
...
[io.quarkus] (main) camel-quarkus-examples-... started in 0.013s. Listening on: http://0.0.0.0:8080
...
Copy to Clipboard Toggle word wrap
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る