콘텐츠로 이동

2-3. 차단된 요청을 Log Analytics로 볼 수 있나

볼 수 있습니다. 단, 로그가 어떻게 쌓이는지에 달려 있습니다. Log Analytics를 쓴다고 해서 모든 차단 상세가 자동으로 수집되는 것은 아닙니다.

방법 볼 수 있는 것 한계
Azure Metrics (RAI 계열) 차단·탐지 건수 추세와 경고 요청별 원인 없음. 탐지량 ≠ 차단량
호출부 로그 → LAW (이 데모의 기본) 요청별 outcome, 범주·심각도, 상태코드, usage, 추정 비용 호출부에서 응답을 계측해야 함. 원문은 저장하지 않음
진단 로그 RequestResponse 요청·응답 기록 기본 꺼짐. 원문이 담길 수 있어 저장 내용·비용·보관·권한·개인정보 검토 후에만 사용

차단은 HTTP 오류만이 아닙니다. 상태코드만 보면 출력 차단을 놓칩니다.

결과 API 증거 기록되는 outcome
입력 차단 HTTP 400, error.code = content_filter input_blocked
출력 차단 HTTP 200, finish_reason = content_filter 또는 filtered annotation output_blocked
필터 서비스 실패 content_filter_results.error filter_unavailable
429 한도 초과 throttled (차단이 아님)
AppDependencies
| where TimeGenerated > ago(24h)
| where Properties["telemetry.kind"] == "aoai.request" and Properties["demo.mode"] == "live"
| extend Outcome = tostring(Properties["aoai.outcome"]), Deployment = tostring(Properties["aoai.deployment"])
| where Outcome in ("input_blocked", "output_blocked", "filter_unavailable")
| summarize Requests = count() by Outcome, Deployment

이미 Log Analytics를 쓰고 계시다면 이 순서로 확인하세요: ① 진단 설정에서 어떤 category가 켜져 있는지 (진단 discovery KQL) → ② AzureDiagnostics에 실제로 어떤 category가 들어오는지 → ③ 앱 로그에 outcome·category가 있는지. 상세 쿼리와 한계는 Content Safety 문서와 차단 KQL에 있습니다.