イベント ハブにログを記録する

適用対象: すべての API Management レベル

log-to-eventhub ポリシーでは、指定された形式のメッセージを Logger エンティティによって定義されたイベント ハブに送信します。 その名前が示すように、このポリシーは、オンラインまたはオフライン分析のために、選択された要求または応答コンテキスト情報を保存するために使用します。

Note

イベント ハブの構成とイベントのログ記録に関する詳細な手順については、Azure Event Hubs で API Management イベントを記録する方法に関するページを参照してください。

Note

ポリシーの要素と子要素を、ポリシー ステートメントで指定された順序で設定します。 API Management ポリシーを設定または編集する方法について説明します。

ポリシー ステートメント

<log-to-eventhub logger-id="id of the logger entity" partition-id="index of the partition where messages are sent" partition-key="value used for partition assignment">
  Expression returning a string to be logged
</log-to-eventhub>

属性

属性 説明 必要 Default
logger-id API Management サービスに登録されているロガーの ID。 ポリシー式は使用できません。 はい 該当なし
partition-id メッセージが送信されるパーティションのインデックスを指定します。 ポリシー式は使用できません。 省略可能。 partition-key が使用されている場合は、使用しないでください。 該当なし
partition-key メッセージの送信時にパーティション割り当てに使用される値を指定します。 ポリシー式を使用できます。 省略可能。 partition-id が使用されている場合は、使用しないでください。 該当なし

使用法

使用上の注意

  • このポリシーは、Application Insights のサンプリングの影響は受けません。 ポリシーのすべての呼び出しがログに記録されます。
  • このポリシーからイベント ハブに送信できる最大メッセージ サイズは 200 キロバイト (KB) です。 イベント ハブに転送する前に、より大きなメッセージが自動的に 200 KB に切り捨てられます。

イベント ハブに記録する値として、任意の文字列を使用できます。 この例では、すべての着信コールの日付と時刻、デプロイ サービス名、要求 ID、IP アドレス、操作名が、contoso-logger ID で登録されたイベント ハブ ロガーに記録されます。

<policies>
  <inbound>
    <log-to-eventhub logger-id ='contoso-logger'>
      @( string.Join(",", DateTime.UtcNow, context.Deployment.ServiceName, context.RequestId, context.Request.IpAddress, context.Operation.Name) )
    </log-to-eventhub>
  </inbound>
  <outbound>
  </outbound>
</policies>

ポリシーに対する処理の詳細については、次のトピックを参照してください。