Muleログ出力カスタムポリシーの利用方法

Stay hungry. Stay foolish. Your time is limited, so don't waste it living someone else's life.

Muleログ出力カスタムポリシーの利用方法

はじめに

 本書は、外付けで通信状態をログ出力できるカスタムポリシーを開発したので利用法について説明する。
 利用用途としては、障害の調査分析用にクライアントやバックエンドの通信情報をログ出力したい時に、適応と取り外しが簡単にできる。
 ログ出力できるのはクライアントと、バックエンドシステムのリクエストとレスポンス情報である。
 

利用手順

  1. 対象組織にログ出力カスタムポリシーをデプロイする。
  2. ログ出力カスタムポリシーを設定する。
  3. ランタイムログで動作を確認する。

手順詳細

1.対象組織にログ出力カスタムポリシーをデプロイする。

① 下記のサイトからカスタムポリシーのMavenプロジェクトをダウンロードする。

Github:サンプルソース

② 対象組織にデプロイする。

下記の手順を参照して対象組織にデプロイする。

2.ログ出力カスタムポリシーを設定する。

APIインスタンスにログ出力カスタムポリシーを適応する。

ポリシー設定画面で、出力したい位置にDataWeave式でログを設定する。

 設定するログ情報のDataWeave式

// ① リクエスト受信時のログ出力設定
#[%dw 2.0
output application/json
---
{
    'Title': 'Listener Request Log.',
    'X-Forwarded-For': attributes.headers['X-Forwarded-For'],
    'X-Correlation-ID': attributes.headers['X-Correlation-ID'],
    'jwt': attributes.headers['jwt']
}]
// ② レスポンス送信時のログ出力設定
#[%dw 2.0
output application/json
---
{
    'Title': 'Listener Response Log.',
    'StatusCode': attributes.statusCode,
    'ReasonPhrase': attributes.reasonPhrase
}]
// ③ HTTPリクエスターのリクエスト送信時のログ出力設定
#[%dw 2.0
output application/json
---
{
    'Title': 'Requester Request Log.',
    'X-Forwarded-For': attributes.headers['X-Forwarded-For'],
    'X-Correlation-ID': attributes.headers['X-Correlation-ID'],
    'jwt': attributes.headers['jwt']
}]
// ④ HTTPリクエスターのレスポンス受信時のログ出力設定
#[%dw 2.0
output application/json
---
{
    'Title': 'Requester Response Log.',
    'StatusCode': attributes.statusCode,
    'ReasonPhrase': attributes.reasonPhrase
}]

下記のようにDataWeave式でログを設定する。

3.ランタイムログで動作を確認する。

ランタイムログで、設定した各ポイントのログが出力していることを確認できる。

さいごに

 いかがでしょうか?
 原因分析したい部分にDataWeave式でログ出力できることを確認できました。
 障害が発生した際には、こういったログ出力機能が必要になりますので、
 是非、活用してみてください。では、