---
schema_version: "1"
id: 1502240acc072af7949d74b889ef30b5073952c6e3f8a09dc0d3861129250202
title: イベント追跡
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/runtime-manager/event-tracking.md
canonical_url: https://docs.mulesoft.com/jp/runtime-manager/event-tracking
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 3a7f8b8ca23f52532e7bc4c985852c0461b8b621df15202651108b878aa2f0ea
description: MuleSoft Documentation Site
latest: true
---
# イベント追跡

 [![logo server active](/mulesoft/current/ja-jp/_/img/icons/server-cloud.svg "Anypoint Platform PCE")Private Cloud Edition](deployment-strategies#anypoint-platform-private-cloud-edition)

イベント追跡を使用すると、特定のフローによって処理されているメッセージに関するリアルタイムの情報を表示できます。処理前、処理中、処理後のメッセージペイロードを表示できるのに加えて、フロー内のメッセージプロセッサーやメッセージメタデータに関する情報も表示できます。

イベント追跡を使用することで、Mule サーバー上でのビジネストランザクションやイベントを表示することができ、特定のメッセージのフローと処理を追跡して分析できます。たとえば、このデータを使用して、ビジネストランザクション内の障害の根本原因分析を実行したり、メッセージ処理のボトルネックを特定したりできます。

## [](#通知種別)通知種別

Mule Runtime Engine は、フローコンポーネントの実行に関する情報を通知します。 [「Mule イベント」](https://docs.mulesoft.com/mule-runtime/latest/about-mule-event)​を参照してください。

Mule が提供する通知の種別については、​[「通知インターフェース」](https://docs.mulesoft.com/mule-runtime/latest/mule-server-notifications#notification-interfaces)​を参照してください。

## [](#転送イベント情報)転送イベント情報

各通知について、Runtime Manager エージェントは、次の情報をイベント追跡サービスに転送します。

- `timestamp`
    
    イベントのタイムスタンプ
- `notificationType`
    
    イベント種別 (メッセージプロセッサーイベント、インバウンドエンドポイントイベントなど)
- `action`
    
    イベントアクション (開始、終了、完了、ロールバックなど)
- `resourceIdentifier`
    
    フローの名前
- `muleMessage`
    
    (設定されている場合) シリアル化された Mule メッセージまたはエラーメッセージ。

Runtime Manager エージェントは、次の情報は送信しません。

- Mule Message ID (Mule メッセージ ID)
- Exception (例外)
    
    例外が発生した場合のメッセージとスタック追跡
- Path (パス)
    
    コンポーネントの Mule パス
- Annotations (アノテーション)
    
    コンポーネントのアノテーション (ある場合)
- Application (アプリケーション)

## [](#イベント追跡通知)イベント追跡通知

Runtime Manager エージェントは、Mule アプリケーションのイベント追跡通知を保存して、イベント追跡サービスにストリーミングします。ネットワークトポロジーと Mule アプリケーションのデザインによっては、イベント追跡通知を Runtime Manager エージェントからオンラインイベント追跡サービスにネットワーク経由でコピーすると、パフォーマンスに大きな影響が出る場合があります。

追跡レベルの粒度を変更することで、パフォーマンスへの影響を抑えることができます。グローバルイベント追跡レベルを指定してから、指定した Mule アプリケーションでレベルを変更できます。さらに Mule アプリケーション内の特定のフローでもイベント追跡レベルを変更できます。

イベント追跡レベルのほかにも、メッセージ再生機能ですべてのメッセージを保存して後で再生できます。これは、メッセージ処理の重複につながる可能性もありますが、再生機能が提供するメカニズムによって、運用チームは失敗したトランザクションを復元して再生できます。追跡レベルと同じように、再生レベルはグローバルに設定しておいて、特定の Mule アプリケーションでレベルを上書きしたり、Mule アプリケーション内の特定のフローで上書きしたりできます。

## [](#イベント追跡レベル)イベント追跡レベル

使用できるイベント追跡レベルは次のとおりです。

- `None`
    
    デバッグを行わないように指定します。
- `BE`
    
    ビジネスイベントに関連するイベントのみが追跡されます。
- `Tracking`
    
    `BE`​ レベルに加えて、エンドポイント、例外戦略、トランザクション関連の通知を追跡します。
- `Debug`​ +​`Tracking`​ レベルに加えて、追加コンポーネントとメッセージプロセッサー通知を指定します。
    
    <table><tbody><tr><td class="icon"><i class="fa icon-important" title="Important"></i></td><td class="content">イベント追跡を ​<code>Debug</code>​ に設定するとパフォーマンスが低下することがあるため、この追跡レベルはデバッグ時にのみ使用してください。</td></tr></tbody></table>

次の表は、各デバッグレベルでアクティブな通知の種別を示しています。

Mule 種別は、通知種別を定義する (​`org.mule.context.notification`​ パッケージにある) ​`org.mule.api.context.notification.ServerNotification`​ サブクラスです。

<table class="tableblock frame-all grid-all fit-content spread">
<colgroup>
<col>
<col>
<col>
<col>
<col>
<col>
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">通知</th>
<th class="tableblock halign-left valign-top">Mule 種別</th>
<th class="tableblock halign-left valign-top">None (なし)</th>
<th class="tableblock halign-left valign-top">BE (ビジネスイベント)</th>
<th class="tableblock halign-left valign-top">Tracking (追跡)</th>
<th class="tableblock halign-left valign-top">Debug (デバッグ)</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Pipeline Message (パイプラインメッセージ)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">PipelineMessageNotifications</p></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">√</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">√</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">√</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Async Message (非同期メッセージ)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">AsyncMessageNotifications</p></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">√</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">√</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">√</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">例外</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ExceptionStrategyNotifications</p></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">√</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">√</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">√</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Event (イベント)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">EventNotifications</p></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">√</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">√</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">√</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Exception Strategy (例外戦略)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ExceptionStrategyNotifications</p></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">√</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">√</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Transaction (トランザクション)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">TransactionNotifications</p></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">√</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">√</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Endpoint Message (エンドポイントメッセージ)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">EndpointMessageNotifications</p></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">√</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">√</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Message Processor (メッセージプロセッサー)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">MessageProcessorNotification</p></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">√</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Component Message (コンポーネントメッセージ)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ComponentMessageNotifications</p></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">√</p></td>
</tr>
</tbody>
</table>

## [](#イベント追跡の設定)イベント追跡の設定

すべてのアプリケーション (グローバル)、単一のアプリケーション、またはフローに対して追跡レベルを設定できます。

- Global (グローバル)
    
    Mule Runtime Engine にデプロイされているすべてのアプリケーションとそれらのフローの追跡方法を指定します。
- App (アプリケーション)
    
    特定のアプリケーションのグローバル追跡レベルを上書きします。
- Flow (フロー)
    
    特定のフローのグローバルまたはアプリケーション追跡レベルを上書きします。

### [](#mule-agent-yml-でのイベント追跡の設定)mule-agent.yml でのイベント追跡の設定

イベント追跡は ​`mule-agent.yml`​ で設定できます。

- [Mule にデプロイされているすべてのアプリケーションに対してグローバルに設定する](#すべての-mule-アプリケーションに対するイベント追跡のグローバル設定)
- [単一の Mule アプリケーションに対して設定する](#mule-アプリケーションに対する追跡の設定)
- [Mule アプリケーション内のフローに対して設定する](#mule-アプリケーションのフローに対する追跡の設定)

#### [](#すべての-mule-アプリケーションに対するイベント追跡のグローバル設定)すべての Mule アプリケーションに対するイベント追跡のグローバル設定

Mule Runtime Engine にデプロイされているすべてのアプリケーションとそれらのフローの追跡方法を指定します。追跡レベルは ​`mule-agent.yml`​ ファイルの ​`services/mule.agent.tracking.service`​ セクションで設定します。

次の例では、グローバル追跡レベルを ​`TRACKING`​ に設定しています。追跡レベルの説明は、「​[イベント追跡レベル](#イベント追跡レベル)​」を参照してください。

`mule-agent.yml`​ 内で次のように設定します。

```yaml
services:
 mule.agent.tracking.service:
 globalTrackingLevel: TRACKING
```

#### [](#mule-アプリケーションに対する追跡の設定)Mule アプリケーションに対する追跡の設定

Mule アプリケーションの追跡レベルを設定することで、そのアプリケーションにおいてグローバル追跡設定を上書きできます。

Mule アプリケーションの追跡プロパティは、​`trackingLevel`​、​`replayLevel`​、​`trackedFlows`​ です。

- `trackingLevel`
    
    `NONE`​、​`BE`​、​`TRACKING`​、または ​`DEBUG`​ のいずれかの追跡レベルを指定します。この追跡レベルは、Mule アプリケーションのすべてのフローに影響します。「​[イベント追跡レベル](#イベント追跡レベル)​」を参照してください。
- `replayLevel`​'
    
    Mule アプリケーションのすべてのフローで、各メッセージを後で再生できるように保存する方法を指定します。​`NONE`​、​`SOURCED`​、または ​`ALL`​ を指定できます。

<table id="Replay" class="tableblock frame-all grid-all fit-content spread">
<colgroup>
<col>
<col>
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">再生レベルオプション</th>
<th class="tableblock halign-left valign-top">説明</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>NONE</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">メッセージの再生に関するデータを保存せず、これらのフローに対して再生機能を無効にします。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>SOURCED</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Mule アプリケーション内の、メッセージソースで始まる各フローのメッセージのみを後で再生するために保存します。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>ALL</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Mule アプリケーションのすべてのフローのメッセージを再生用に保存します。</p></td>
</tr>
</tbody>
</table>

次の例では、​`mule-flights`​ アプリケーションとそのフローの追跡レベルを ​`TRACKING`​ に設定し、メッセージ再生機能を無効にしています。​`mule-flights`​ アプリケーションは、一部の通知をイベント追跡サービスに送信しますが、受信した各メッセージはコピーしません。​`mule-flights`​ アプリケーションのフローは、いずれもイベント追跡サービスから再生することはできません。

次の例でも ​`globalTrackingLevel`​ を ​`BE`​ に設定しており、デフォルト値の ​`NONE`​ を上書きしています。この設定により、他の Mule アプリケーションも ​`BE`​ レベルで追跡されます。

`mule-agent.yml`​ 内で次のように設定します。

```yaml
services:
 mule.agent.tracking.service:
 globalTrackingLevel: BE
 trackedApplications:
    - appName: mule-flights
      trackingLevel: TRACKING
      replayLevel: NONE
```

#### [](#mule-アプリケーションのフローに対する追跡の設定)Mule アプリケーションのフローに対する追跡の設定

`trackedFlows`​ 要素を追加することにより、指定した Mule アプリケーション内でフローのグローバルおよびアプリケーション設定を上書きできます。この要素は、フローで追跡する対象と、メッセージ再生の動作を指定します。

フロー追跡オプションを下表に示します。

<table class="tableblock frame-all grid-all fit-content spread">
<colgroup>
<col>
<col>
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">フロー追跡オプション</th>
<th class="tableblock halign-left valign-top">説明</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>flow name</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Mule アプリケーション XML 設定ファイルで指定されているフローの名前。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>tracking level</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>NONE</code>​、​<code>BE</code>​、​<code>TRACKING</code>​、または ​<code>DEBUG</code>​ を指定します。「​<a href="#イベント追跡レベル">イベント追跡レベル</a>​」を参照してください。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>replayLevel</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>NONE</code>​、​<code>SOURCED</code>​、または ​<code>ALL</code>​ を指定します。​<a href="#再生">再生レベル</a>​のテーブルを参照してください。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>payloadExcluded</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">メッセージペイロードも後で再生するために保存するか、メッセージメタデータのみを保存するかを指定します (​<code>replayLevel</code>​ が ​<code>SOURCED</code>​ または ​<code>ALL</code>​ の場合)。</p></td>
</tr>
</tbody>
</table>

次の例では、​`mule-flights`​ アプリケーションのフローに追跡を追加しています。グローバルおよび Mule アプリケーション追跡には、デフォルト値 (​`NONE`​) を使用しています。

`mule-agent.yml`​ 内で次のように設定します。

```yaml
services:
  mule.agent.tracking.service:
    trackedApplications:
      - appName: mule-flights
        trackedFlows:
          - flowName: purchaseFlight
            trackingLevel: DEBUG
            replayLevel: ALL
```

#### [](#複雑な追跡例)複雑な追跡例

次の例では、グローバル、Mule アプリケーション、およびフローの追跡レベルを設定しています。

グローバル:

- `globalTrackingLevel`​ を ​`NONE`​ (​`globalTrackingLevel`​ を指定しなかった場合のデフォルト) に設定します。

アプリケーション ​`mule-flights`​:

- trackingLevel: アプリケーションに対して ​`TRACKING`​ レベルを設定します。
- replayLevel: アプリケーションに対して ​`NONE`​ を設定します。メッセージは保存されず、再生は無効です。
    
    - フロー ​`purchaseFlight`
        
        - trackingLevel: この 1 つのフローに対して ​`DEBUG`​ (デバッグ) レベル (​`TRACKING`​ (追跡) レベルを上書き)。
        - replayLevel: この 1 つのフローに対して ​`ALL`​ を設定します。フローにメッセージソースがない場合でも、すべてのメッセージを再生用に保存します。

アプリケーション ​`mule-ticketing`​:

- trackingLevel: アプリケーションに対して ​`BE`​ を設定します。
- replayLevel: アプリケーションに対して ​`SOURCE`​ を設定します。メッセージは保存されず、再生は無効です。
    
    - フロー ​`confirmReservation`
        
        - trackingLevel: この 1 つのフローに対して ​`DEBUG`​ (デバッグ) レベル (​`TRACKING`​ (追跡) レベルを上書き)。
        - replayLevel: この 1 つのフローに対して ​`ALL`​。フローにメッセージソースがない場合でも、すべてのメッセージを再生用に保存します。

Mule インスタンス内のその他のすべてのアプリケーションとそのフロー:

- trackingLevel: `NONE`​ (デフォルト)

`mule-agent.yml`​ 内で次のように設定します。

```yaml
services:
  mule.agent.tracking.service:
    globalTrackingLevel: NONE
    trackedApplications:
      - appName: mule-flights
        trackingLevel: TRACKING
        replayLevel: NONE
        trackedFlows:
          - flowName: purchaseFlight
            trackingLevel: DEBUG
            replayLevel: ALL
          - flowName: help
            trackingLevel: NONE
            replayLevel: NONE
      - appName: mule-ticketing
        trackingLevel: BE
        replayLevel: SOURCE
        trackedFlows:
          - flowName: confirmReservation
            trackingLevel: DEBUG
            replayLevel: ALL
```

### [](#エージェント-api-を使用した実行中の追跡の設定)エージェント API を使用した実行中の追跡の設定

エージェント API を使用すると、実行中にエージェント追跡設定を変更できます。たとえば、API を使用して実行中のアプリケーションの追跡設定を変更できます。

#### [](#現在の設定の取得)現在の設定の取得

次の例では、追跡サービスに関する情報を取得しています。取得される情報には、設定可能な項目とその現在の値が含まれています。

要求:

GET <Runtime Manager Agent URL>/mule/agent/mule.agent.tracking.service

応答:

```json
"configurableFields": [
    {
      "name": "globalTrackingLevel",
      "valueType": "com.mulesoft.agent.services.tracking.TrackingLevel",
      "value": "NONE",
      "configurableType": "DYNAMIC",
      "description": ""
    },
    {
      "name": "trackedApplications",
      "valueType": "[Lcom.mulesoft.agent.services.tracking.TrackedApplication;",
      "value": [],
      "configurableType": "DYNAMIC",
      "description": ""
    }
  ],
  "injectedHandlers": [
    {
      "name": "com.mulesoft.agent.handlers.internal.InternalTrackingNotificationHandler",
      "path": "/mule/agent/tracking.notification.internal.message.handler/configuration",
      "type": "class com.mulesoft.agent.domain.tracking.AgentTrackingNotification"
    }
  ],
  "serviceHandlerTypes": [
    "class com.mulesoft.agent.domain.tracking.AgentTrackingNotification"
  ]
}
```

#### [](#現在の設定の変更)現在の設定の変更

実行中に現在の設定を変更するには、変更した設定の JSON 表現を使用して要求を送信します。この表現は、現在の設定を上書きします。JSON 表現に含まれていない項目では、現在の値が保持されます。

次の例では、​`globalTrackingLevel`​ 項目と ​`trackedApplications`​ 項目の上書きを要求します。他のすべての項目は変更されません。

要求:

```json
PATCH <Runtime Manager Agent URL>/mule/agent/mule.agent.tracking.service HTTP/1.1

{
  "globalTrackingLevel": "BE",
  "trackedApplications": [
  {
    "appName": "mule-flights",
    "trackingLevel": "DEBUG",
    "trackedFlows": [
    {
      "flowName": "purchaseFlight",
      "trackingLevel": "TRACKING"
    }
    ]
  }
  ]
}
```

応答:

```json
{
  "configurableFields": [
  {
    "name": "globalTrackingLevel",
    "valueType": "com.mulesoft.agent.services.tracking.TrackingLevel",
    "value": "BE",
    "configurableType": "DYNAMIC",
    "description": ""
    },
    {
      "name": "trackedApplications",
      "valueType": "[Lcom.mulesoft.agent.services.tracking.TrackedApplication;",
      "value": [
      {
        "appName": "mule-flights",
        "trackingLevel": "DEBUG",
        "trackedFlows": [
        {
          "flowName": "purchaseFlight",
          "trackingLevel": "TRACKING"
        }
        ]
      }
      ],
      "configurableType": "DYNAMIC",
      "description": ""
    }
    ],
    "injectedHandlers": [
    {
      "name": "com.mulesoft.agent.handlers.internal.InternalTrackingNotificationHandler",
      "path": "/mule/agent/tracking.notification.internal.message.handler/configuration",
      "type": "class com.mulesoft.agent.domain.tracking.AgentTrackingNotification"
    }
    ],
    "serviceHandlerTypes": [
    "class com.mulesoft.agent.domain.tracking.AgentTrackingNotification"
    ]
  }
```

<table><tbody><tr><td class="icon"><i class="fa icon-note" title="Note"></i></td><td class="content">イベント追跡ログファイル (​<code>$MULE_HOME/logs/events-%d{yyyy-dd-MM}-%i.log</code>​) は自動的には削除されません。定期的に手動でログを削除する必要があります。</td></tr></tbody></table>

## [](#関連情報)関連情報

- [Runtime Manager から外部分析ツールへのデータのエクスポート](https://docs.mulesoft.com/jp/runtime-manager/sending-data-from-arm-to-external-analytics-software)