이벤트 허브에 기록

적용 대상: 모든 API Management 계층

log-to-eventhub 정책은 로거 엔터티가 정의한 이벤트 허브에 지정된 형식으로 메시지를 보냅니다. 이름에서 알 수 있듯이 이 정책은 온라인 또는 오프라인 분석을 위해 선택한 요청 또는 응답 컨텍스트 정보를 저장하는 데 사용됩니다.

참고 항목

이벤트 허브 구성 및 이벤트 로깅에 대한 단계별 가이드는 Azure Event Hubs로 API Management 이벤트를 기록하는 방법을 참조하세요.

참고 항목

정책 문에 제공된 순서대로 정책의 요소 및 자식 요소를 설정합니다. 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>

특성

특성 설명 필수 항목 기본값
logger-id API Management 서비스에 등록된 로거 ID입니다. 정책 식은 허용되지 않습니다. 해당 없음
partition-id 메시지가 전송된 파티션의 인덱스를 지정합니다. 정책 식은 허용되지 않습니다. 선택 사항. partition-key가 사용되는 경우에는 사용하지 마세요. 해당 없음
partition-key 메시지가 전송된 파티션 할당에 사용된 값을 지정합니다. 정책 식이 허용됩니다. 선택 사항. partition-id가 사용되는 경우에는 사용하지 마세요. 해당 없음

사용

사용법 참고 사항

  • 정책은 Application Insights 샘플링의 영향을 받지 않습니다. 정책의 모든 호출이 기록됩니다.
  • 이 정책에서 이벤트 허브로 보낼 수 있는 지원되는 최대 메시지 크기는 200KB(킬로바이트)입니다. 더 큰 메시지는 이벤트 허브로 전송되기 전에 자동으로 200KB로 잘립니다.

예시

Event Hubs에 기록할 값으로 모든 문자열을 사용할 수 있습니다. 이 예제에서는 모든 인바운드 호출에 대한 날짜 및 시간, 배포 서비스 이름, 요청 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>

정책 작업에 대한 자세한 내용은 다음을 참조하세요.