180.5. JMX を使用した Camel のモニタリング


180.5.1. JConsole を使用して Camel をモニターする

Camel と同じホストで JConsole を実行している場合は、ローカル接続のリストに CamelContext が表示されます。

リモートの Camel インスタンスに接続するには、またはローカルプロセスが表示されない場合は、リモートプロセスオプションを使用して URL を入力します。以下は localhost URL:service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi/camel の例です。

JConsole で Apache Camel を使用する:

image

180.5.2. 登録されているエンドポイント

Camel 2.1 以降では、数千または数百万のエンドポイントが使用される場合、非シングルトンのオーバーヘッドがかなり大きくなるため、singletonエンドポイント のみ が登録されます。これは、受信者リスト EIP を使用する場合、または大量のメッセージを送信する ProducerTemplate から発生する可能性があります。

180.5.3. 登録されているプロセッサー

この FAQ を参照してください。

180.5.4. JMX NotificationListener を使用して camel イベントをリッスンする方法は?

Camel の通知イベントは、何が起こっているかを大まかに示します。コンテキストとエンドポイントからライフサイクルイベントを確認でき、エンドポイントで送受信されるエクスチェンジを確認できます。

Camel 2.4 から、カスタム JMX NotificationListener を使用して camel イベントをリッスンできます。

CamelContext を開始する前に、まず JmxNotificationEventNotifier を設定する必要があります。

// Set up the JmxNotificationEventNotifier
notifier = new JmxNotificationEventNotifier();
notifier.setSource("MyCamel");
notifier.setIgnoreCamelContextEvents(true);
notifier.setIgnoreRouteEvents(true);
notifier.setIgnoreServiceEvents(true);

CamelContext context = new DefaultCamelContext(createRegistry());
context.getManagementStrategy().addEventNotifier(notifier);
Copy to clipboard

次に、イベントをリッスンするためのリスナーを登録できます。

// register the NotificationListener
ObjectName on = ObjectName.getInstance("org.apache.camel:context=camel-1,type=eventnotifiers,name=JmxEventNotifier");
MyNotificationListener listener = new MyNotificationListener();
context.getManagementStrategy().getManagementAgent().getMBeanServer().addNotificationListener(on,
    listener,
    new NotificationFilter() {
        private static final long serialVersionUID = 1L;

        public boolean isNotificationEnabled(Notification notification) {
            return notification.getSource().equals("MyCamel");
        }
    }, null);
Copy to clipboard

180.5.5. Tracer MBean を使用して粒度の細かいトレースを取得する

Camel 2.9.0 上のあらい粒度の通知に加えて、細かい粒度のトレースイベントの JMX 通知がサポートされます。

これらは Tracer MBean にあります。詳細なトレースを有効にするには、まずコンテキストまたはルートでトレースを有効にする必要があります。

これは、コンテキストの設定時、またはコンテキスト/ルート MBean で実行できます。

2 番目のステップとして、トレーサーで jmxTraceNotifications 属性を true に設定する必要があります。これは、コンテキストを設定するとき、または実行時にトレーサー MBean で実行できます。

これで、JConsole を使用してトレーサー MBean で TraceEvent 通知を登録できるようになりました。すべてのエクスチェンジとメッセージの詳細を含む、ルートのすべてのステップに対して 1 つの通知があります。

image

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat, Inc.