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에 있습니다.