AzureDiagnostics
Azure Diagnostics 모드를 사용하는 Azure 서비스의 리소스 로그를 저장합니다. 리소스 로그는 Azure 리소스의 내부 작업을 설명합니다.
각 Azure 서비스에 대한 리소스 로그에는 고유한 열 세트가 있습니다. AzureDiagnostics 테이블에는 Azure 서비스에서 사용하는 가장 일반적인 열이 포함되어 있습니다. 리소스 로그에 AzureDiagnostics 테이블에 없는 열이 포함된 경우 해당 열은 데이터가 처음 수집될 때 추가됩니다. 최대 열 수 500개에 도달하면 추가 열에 대한 데이터가 동적 열에 추가됩니다.
리소스별 모드를 사용하는 Azure 서비스는 해당 서비스와 관련된 테이블에 데이터를 저장하고 AzureDiagnostics 테이블을 사용하지 않습니다. 각 메서드를 사용하는 서비스는 아래 리소스 종류를 참조하세요. 차이점에 대한 자세한 내용은 Azure 리소스 로그 를 참조하세요.
AdditionalFields 열
다른 테이블과 달리 AzureDiagnostics 는 이 테이블로 데이터를 보낼 수 있는 다양한 Azure 리소스로 인해 Log Analytics 작업 영역의 모든 테이블에 적용되는 500열 제한을 초과하기 훨씬 쉽습니다. 이 500열 제한을 초과하는 활성 열 수로 인해 데이터가 손실되지 않도록 하기 위해 AzureDiagnostics 열 만들기는 다른 테이블과 다른 방식으로 처리됩니다.
모든 작업 영역의 AzureDiagnostics 테이블에는 최소 동일한 200개의 열이 포함됩니다. 2021년 1월 19일 이전에 만든 작업 영역의 경우 테이블에 이 날짜 이전에 이미 배치된 열도 포함됩니다. 데이터가 아직 배치되지 않은 열로 전송되는 경우:
- 현재 작업 영역에서 AzureDiagnostics 의 총 열 수가 500을 초과하지 않으면 다른 테이블과 마찬가지로 새 열이 만들어집니다.
- 총 열 수가 500개 이상인 경우 초과 데이터는 AdditionalFields 라는 동적 속성 모음 열에 속성으로 추가됩니다.
예제
이 동작을 설명하기 위해(배포 날짜) 현재 작업 작업의 AzureDiagnostics 테이블이 다음과 같이 표시되어 있다고 상상해 보세요.
열 1 | 열 2 | 열 3 | ... | 열 498 |
---|---|---|---|---|
abc | def | 123 | ... | 456 |
... | ... | ... | ... | ... |
그런 다음 AzureDiagnostics에 데이터를 보내는 리소스는 NewInfo1이라고 하는 새 차원을 데이터에 추가합니다. 테이블에 여전히 500개 미만의 열이 있으므로 이 새 차원에 대한 데이터가 포함된 이벤트가 처음으로 발생하면 테이블에 새 열이 추가됩니다.
열 1 | 열 2 | 열 3 | ... | 열 498 | NewInfo1_s |
---|---|---|---|---|---|
abc | def | 123 | ... | 456 | xyz |
... | ... | ... | ... | ... | ... |
간단한 쿼리에서 이 새 데이터를 반환할 수 있습니다.
AzureDiagnostics | where NewInfo1_s == "xyz"
나중에 다른 리소스는 NewInfo2 및 NewInfo3이라는 새 차원을 추가하는 AzureDiagnostics로 데이터를 보냅니다. 테이블이 이 작업 영역에서 500개 열에 도달했기 때문에 새 데이터는 AdditionalFields 열로 이동합니다.
열 1 | 열 2 | 열 3 | ... | 열 498 | NewInfo1_s | AdditionalFields |
---|---|---|---|---|---|---|
abc | def | 123 | ... | 456 | xyz | {"NewInfo2":"789","NewInfo3":"qwerty"} |
... | ... | ... | ... | ... | ... | ... |
이 데이터를 쿼리할 수는 있지만 KQL의 동적 속성 연산자를 사용하여 속성 모음에서 추출해야 합니다.
AzureDiagnostics
| where AdditionalFields.NewInfo2 == "789" and AdditionalFields.NewInfo3 == "qwerty"
AdditionalFields 열 사용에 대한 팁
쿼리의 첫 번째 절을 따라야 하므로 항상 시간별로 필터링하는 것과 같은 일반적인 쿼리 모범 사례에는 AdditionalFields를 사용할 때 고려해야 할 몇 가지 다른 권장 사항이 있습니다.
- 추가 작업을 수행하기 전에 데이터를 형식캐스트해야 합니다. 예를 들어 Perf1Sec_i 라는 열과 Perf2Sec이라는 AdditionalFields의 속성이 있고 두 값을 모두 추가하여 총 성능 계산을 하려는 경우 다음과 같이
AzureDiagnostics | extend TotalPerfSec = Perf1Sec_i + toint(AdditionalFields.Perf2Sec) | ....
사용합니다. - 성능을 크게 향상시키기 위해 복잡한 논리를 작성하기 전에 where 절을 사용하여 데이터 볼륨을 가능한 가장 작은 값으로 줄입니다. TimeGenerated 는 항상 가능한 가장 작은 창으로 줄여야 하는 하나의 열입니다. AzureDiagnostics의 경우 ResourceType 열을 사용하여 쿼리되는 리소스 종류에 대한 추가 필터도 항상 쿼리 맨 위에 포함되어야 합니다.
- 매우 많은 양의 데이터를 쿼리할 때 구문 분석보다는 AdditionalFields 전체에서 필터를 수행하는 것이 더 효율적일 수 있습니다. 예를 들어 대용량 데이터의
AzureDiagnostics | where AdditionalFields has "Perf2Sec"
경우 보다AzureDiagnostics | where isnotnull(toint(AdditionalFields.Perf2Sec))
더 효율적인 경우가 많습니다.
Azure Diagnostics 모드
다음 서비스는 리소스 로그에 Azure 진단 모드를 사용하고 Azure Diagnostics 테이블로 데이터를 보냅니다.
- Analysis Services
- Application Gateway
- Automation 계정
- Azure Database for MariaDB 서버
- Azure Database for MySQL 서버
- Azure Database for PostgreSQL 서버
- Azure Database for PostgreSQL 서버 v2
- Batch 계정
- CDN 프로필
- Cognitive Services
- Data Lake Analytics
- DataLake Storage Gen1
- Device Provisioning Services
- Digital Twins
- Event Grid 토픽
- Event Hubs
- ExpressRoute 회로
- Front Door
- 통합 계정
- Key Vault
- Kubernetes 서비스
- 부하 분산 장치
- Logic Apps
- 미디어 서비스
- 네트워크 인터페이스
- 네트워크 보안 그룹
- P2S VPN Gateway
- Power BI Embedded
- 공용 IP 주소
- Recovery Services 자격 증명 모음(Site Recovery)
- Search 서비스
- Service Bus
- SQL 데이터베이스
- SQL 관리되는 인스턴스
- SQL Server
- Stream Analytics 작업
- Traffic Manager 프로필
- 가상 네트워크
- 가상 네트워크 게이트웨이
- VPN Gateway
Azure Diagnostics 모드 또는 리소스별 모드
다음 서비스는 구성에 따라 리소스 로그에 Azure 진단 모드 또는 리소스별 모드를 사용합니다. 리소스별 모드를 사용하는 경우 AzureDiagnostics 테이블에 데이터를 보내지 않습니다. 이 구성에 대한 자세한 내용은 Azure 리소스 로그 를 참조하세요.
- API Management Services
- Azure Cosmos DB
- 데이터 팩터리(V2)
- IoT Hub
- Recovery Services 자격 증명 모음(Backup)
- 방화벽
범주
- Azure 리소스
- 보안
- 네트워크
솔루션
- LogManagement
리소스 종류
- Application Gateway
- CDN 프로필
- Azure Cosmos DB
- Event Grid 토픽
- Event Hubs
- 방화벽
- Key Vault
- Kubernetes 서비스
- Recovery Services 자격 증명 모음
- Service Bus
- Azure Database for MySQL 유연한 서버
- 유연한 서버 Azure Database for PostgreSQL
- Media Services
- Analysis Services
- Batch 계정
- Cognitive Services
- Event Grid 파트너 네임스페이스
- Event Grid 파트너 토픽
- Event Grid 시스템 항목
- Azure Arc 지원 Kubernetes
- Azure Arc 프로비저닝된 클러스터
- IoT Hub
- Logic Apps
- API Management 서비스
- Automation 계정
- 데이터 팩터리
- Data Lake Storage Gen1
- Data Lake Analytics
- Power BI Embedded
- SQL Managed Instances
- SQL Server
- SQL Database
- Azure Database for MySQL 서버
- PostgreSQL용 Azure 데이터베이스 서버
- Azure Database for PostgreSQL 서버 V2
- Azure Database for MariaDB 서버
- Device Provisioning Services
- ExpressRoute 회로
- Front Door
- 네트워크 인터페이스
- 네트워크 보안 그룹
- 공용 IP 주소
- Traffic Manager 프로필
- Virtual Network 게이트웨이
- 가상 사설망 게이트웨이
- 가상 네트워크
- Search Services
- Stream Analytics 작업
열
열 | 형식 | 설명 |
---|---|---|
action_id_s | 문자열 | |
action_name_s | 문자열 | |
action_s | 문자열 | |
ActivityId_g | Guid | |
AdditionalFields | ||
AdHocOrScheduledJob_s | 문자열 | |
application_name_s | 문자열 | |
audit_schema_version_d | Double | |
avg_cpu_percent_s | 문자열 | |
avg_mean_time_s | 문자열 | |
backendHostname_s | 문자열 | |
Caller_s | 문자열 | |
callerId_s | 문자열 | |
CallerIPAddress | 문자열 | |
calls_s | 문자열 | |
범주 | String | |
client_ip_s | 문자열 | |
clientInfo_s | 문자열 | |
clientIP_s | 문자열 | |
clientIp_s | 문자열 | |
clientIpAddress_s | 문자열 | |
clientPort_d | Double | |
code_s | 문자열 | |
collectionName_s | 문자열 | |
conditions_destinationIP_s | 문자열 | |
conditions_destinationPortRange_s | 문자열 | |
conditions_None_s | 문자열 | |
conditions_protocols_s | 문자열 | |
conditions_sourceIP_s | 문자열 | |
conditions_sourcePortRange_s | 문자열 | |
CorrelationId | 문자열 | |
count_executions_d | Double | |
cpu_time_d | Double | |
database_name_s | 문자열 | |
database_principal_name_s | 문자열 | |
DatabaseName_s | 문자열 | |
db_id_s | 문자열 | |
direction_s | 문자열 | |
dop_d | Double | |
duration_d | Double | |
duration_milliseconds_d | Double | |
DurationMs | BigInt | |
ElasticPoolName_s | 문자열 | |
endTime_t | DateTime | |
Environment_s | 문자열 | |
error_code_s | 문자열 | |
error_message_s | 문자열 | |
errorLevel_s | 문자열 | |
event_class_s | 문자열 | |
event_s | 문자열 | |
event_subclass_s | 문자열 | |
event_time_t | DateTime | |
EventName_s | 문자열 | |
execution_type_d | Double | |
executionInfo_endTime_t | DateTime | |
executionInfo_exitCode_d | Double | |
executionInfo_startTime_t | DateTime | |
host_s | 문자열 | |
httpMethod_s | 문자열 | |
httpStatus_d | Double | |
httpStatusCode_d | Double | |
httpStatusCode_s | 문자열 | |
httpVersion_s | 문자열 | |
id_s | 문자열 | |
identity_claim_appid_g | Guid | |
identity_claim_ipaddr_s | 문자열 | |
instanceId_s | 문자열 | |
interval_end_time_d | Double | |
interval_start_time_d | Double | |
ip_s | 문자열 | |
is_column_permission_s | 문자열 | |
isAccessPolicyMatch_b | Bool | |
JobDurationInSecs_s | 문자열 | |
JobFailureCode_s | 문자열 | |
JobId_g | Guid | |
jobId_s | 문자열 | |
JobOperation_s | 문자열 | |
JobOperationSubType_s | 문자열 | |
JobStartDateTime_s | 문자열 | |
JobStatus_s | 문자열 | |
JobUniqueId_g | Guid | |
Level | 문자열 | |
log_bytes_used_d | Double | |
logical_io_reads_d | Double | |
logical_io_writes_d | Double | |
LogicalServerName_s | 문자열 | |
macAddress_s | 문자열 | |
matchedConnections_d | Double | |
max_cpu_time_d | Double | |
max_dop_d | Double | |
max_duration_d | Double | |
max_log_bytes_used_d | Double | |
max_logical_io_reads_d | Double | |
max_logical_io_writes_d | Double | |
max_num_physical_io_reads_d | Double | |
max_physical_io_reads_d | Double | |
max_query_max_used_memory_d | Double | |
max_rowcount_d | Double | |
max_time_s | 문자열 | |
mean_time_s | 문자열 | |
메시지 | String | |
min_time_s | 문자열 | |
msg_s | 문자열 | |
num_physical_io_reads_d | Double | |
object_id_d | Double | |
object_name_s | 문자열 | |
OperationName | String | |
OperationVersion | String | |
partitionKey_s | 문자열 | |
physical_io_reads_d | Double | |
plan_id_d | Double | |
policy_s | 문자열 | |
policyMode_s | 문자열 | |
primaryIPv4Address_s | 문자열 | |
priority_d | Double | |
properties_enabledForDeployment_b | Bool | |
properties_enabledForDiskEncryption_b | Bool | |
properties_enabledForTemplateDeployment_b | Bool | |
properties_s | 문자열 | |
properties_sku_Family_s | 문자열 | |
properties_sku_Name_s | 문자열 | |
properties_tenantId_g | Guid | |
query_hash_s | 문자열 | |
query_id_d | Double | |
query_max_used_memory_d | Double | |
query_plan_hash_s | 문자열 | |
query_time_d | Double | |
querytext_s | 문자열 | |
receivedBytes_d | Double | |
Region_s | 문자열 | |
requestCharge_s | 문자열 | |
requestQuery_s | 문자열 | |
requestResourceId_s | 문자열 | |
requestResourceType_s | 문자열 | |
requestUri_s | 문자열 | |
reserved_storage_mb_s | 문자열 | |
리소스 | String | |
resource_actionName_s | 문자열 | |
resource_location_s | 문자열 | |
resource_originRunId_s | 문자열 | |
resource_resourceGroupName_s | 문자열 | |
resource_runId_s | 문자열 | |
resource_subscriptionId_g | Guid | |
resource_triggerName_s | 문자열 | |
resource_workflowId_g | Guid | |
resource_workflowName_s | 문자열 | |
ResourceGroup | String | |
_ResourceId | 문자열 | 레코드가 연결된 리소스의 고유 식별자입니다. |
ResourceProvider | String | |
ResourceProvider | String | |
ResourceType | String | |
ResourceType | String | |
response_rows_d | Double | |
resultCode_s | 문자열 | |
ResultDescription | 문자열 | |
ResultDescription | 문자열 | |
resultDescription_ChildJobs_s | 문자열 | |
resultDescription_ErrorJobs_s | 문자열 | |
resultMessage_s | 문자열 | |
ResultSignature | 문자열 | |
ResultType | String | |
ResultType | String | |
rootCauseAnalysis_s | 문자열 | |
routingRuleName_s | 문자열 | |
rowcount_d | Double | |
ruleName_s | 문자열 | |
RunbookName_s | 문자열 | |
RunOn_s | 문자열 | |
schema_name_s | 문자열 | |
sentBytes_d | Double | |
sequence_group_id_g | Guid | |
sequence_number_d | Double | |
server_principal_sid_s | 문자열 | |
session_id_d | Double |
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기