AzureDiagnostics
Azure Diagnostics 모드를 사용하는 Azure 서비스의 리소스 로그를 저장합니다. 리소스 로그는 Azure 리소스의 내부 작업을 설명합니다.
각 Azure 서비스에 대한 리소스 로그에는 고유한 열 세트가 있습니다. AzureDiagnostics 테이블에는 Azure 서비스에서 사용하는 가장 일반적인 열이 포함되어 있습니다. 리소스 로그에 AzureDiagnostics 테이블에 없는 열이 포함된 경우 해당 열은 데이터가 처음 수집될 때 추가됩니다. 최대 열 수 500개에 도달하면 추가 열에 대한 데이터가 동적 열에 추가됩니다.
리소스별 모드를 사용하는 Azure 서비스는 해당 서비스와 관련된 테이블에 데이터를 저장하고 AzureDiagnostics 테이블을 사용하지 않습니다. 차이점에 대한 자세한 내용은 Azure 리소스 로그를 참조하세요. Azure Diagnostics를 사용하는 서비스에 대해 Azure Diagnostics 모드를 사용하는 리소스를 참조하세요.
참고 항목
AzureDiagnostics 테이블은 Azure 리소스가 Azure Diagnostics 모드에서 로그 전송을 처음 시작할 때 Azure Monitor 파이프라인에서 단독으로 만든 사용자 지정 로그 테이블입니다. 다른 테이블과 달리 ARM 템플릿 또는 테이블 API를 통해 AzureDiagnostics 테이블을 만들 수 없습니다. 따라서 테이블을 만들기 전에 테이블의 기본 보존 값을 수정할 수 없습니다.
AdditionalFields 열
다른 테이블 과 달리 AzureDiagnostics 는 이 테이블에 데이터를 보낼 수 있는 다양한 Azure Resources로 인해 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를 사용할 때 고려해야 할 몇 가지 다른 권장 사항이 있습니다.
- 추가 작업을 수행하기 전에 데이터를 typecast해야 합니다. 예를 들어 Perf1Sec_i 열과 Perf2Sec이라는 추가 필드에 속성이 있고 두 값을 모두 추가하여 총 성능 계산을 하려는 경우 다음
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 테이블로 데이터를 보냅니다. 이 구성에 대한 자세한 내용은 Azure 리소스 로그를 참조하세요.
참고 항목
다른 모든 리소스는 리소스별 테이블로 데이터를 보냅니다.
서비스 이름 | resourceType |
---|---|
MicrosoftSqlAzureTelemetryv3 | microsoft.sql/servers/databases |
MicrosoftAzureCosmosDB | microsoft.documentdb/databaseaccounts |
AzureFirewall | microsoft.network/azurefirewalls |
AzureApplicationGatewayService | microsoft.network/applicationgateways |
AKSCustomerData | microsoft.containerservice/managedclusters |
AzureFrontdoor | microsoft.cdn/profiles |
LNMAgentService | microsoft.network/networksecuritygroups |
MicrosoftOrcasBreadthServers | microsoft.dbforpostgresql/flexibleservers |
servicebus | microsoft.eventhub/namespaces |
AzureFrontdoor | microsoft.network/frontdoors |
AzureKeyVault | microsoft.keyvault/vaults |
AzureDataLake | microsoft.datalakestore/accounts |
ApiManagement | microsoft.apimanagement/service |
MicrosoftSqlAzureTelemetryv3 | microsoft.sql/managedinstances |
ASAzureRP | microsoft.analysisservices/servers |
MicrosoftOrcasBreadthServers | microsoft.dbformysql/flexibleservers |
servicebus | microsoft.servicebus/namespaces |
AzureIotHub | microsoft.devices/iothubs |
MicrosoftSqlAzureTelemetryv2 | microsoft.dbforpostgresql/servers |
MicrosoftSqlAzureTelemetryv2 | microsoft.dbformariadb/servers |
MicrosoftAutomation | microsoft.automation/automationaccounts |
TrafficManager | microsoft.network/trafficmanagerprofiles |
MicrosoftOrcasBreadthServers | microsoft.dbforpostgresql/servergroupsv2 |
AzureSearch | microsoft.search/searchservices |
AzureHybrid | microsoft.network/virtualnetworkgateways |
MicrosoftSqlAzureTelemetryv3 | microsoft.sql/managedinstances/databases |
PBIDedicatedRP | microsoft.powerbidedicated/capacities |
AzureHybrid | microsoft.network/vpngateways |
MicrosoftDatafactory | microsoft.datafactory/factories |
MicrosoftCognitiveServices | microsoft.cognitiveservices/accounts |
AzureRecoveryServices | microsoft.recoveryservices/vaults |
AzureBatch | microsoft.batch/batchaccounts |
AzureHybrid | microsoft.network/p2svpngateways |
MicrosoftSqlAzureTelemetryv2 | microsoft.dbformysql/servers |
AzureKeyVault | microsoft.keyvault/managedhsms |
NetMon | microsoft.network/publicipaddresses |
AzureDataLake | microsoft.datalakeanalytics/accounts |
MicrosoftStreamanalytics | microsoft.streamanalytics/streamingjobs |
servicebus | microsoft.relay/namespaces |
AzureIotDps | microsoft.devices/provisioningservices |
MicrosoftAzureCosmosDB | microsoft.documentdb/cassandraclusters |
MicrosoftAzureCosmosDB | microsoft.documentdb/mongoclusters |
AKSCustomerData | microsoft.containerservice/fleets |
PBIDedicatedRP | microsoft.powerbi/tenants/workspaces |
AzureFrontdoor | microsoft.cdn/cdnwebapplicationfirewallpolicies |
AzureHybrid | microsoft.network/expressroutecircuits |
MicrosoftAzureCosmosDB | microsoft.dbforpostgresql/flexibleservers |
NetMon | microsoft.network/publicipprefixes |
AzureCdn | microsoft.cdn/profiles/endpoints |
Azure 진단 모드 또는 리소스별 모드
다음 서비스는 진단 설정 구성에 따라 리소스 로그에 Azure 진단 모드 또는 리소스별 모드를 사용합니다. 리소스별 모드를 사용하는 경우 이러한 리소스는 AzureDiagnostics 테이블에 데이터를 보내지 않습니다. 이 구성에 대한 자세한 내용은 Azure 리소스 로그를 참조하세요.
서비스 이름 | resourceType |
---|---|
API Management Services | Microsoft.ApiManagement |
Azure Cosmos DB | Microsoft.DocumentDB/databaseAccounts |
Data Factory(V2) | Microsoft.DataFactory |
Recovery Services 자격 증명 모음(Backup) | Microsoft.RecoveryServices/vaults |
방화벽 | Microsoft.Network/azureFirewalls |
AzureDiagnostics 테이블 열
Column | Type | 설명 |
---|---|---|
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 | 문자열 | |
범주 | 문자열 | |
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 | |
수준 | 문자열 | |
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 | 문자열 | |
메시지 | 문자열 | |
min_time_s | 문자열 | |
msg_s | 문자열 | |
num_physical_io_reads_d | Double | |
object_id_d | Double | |
object_name_s | 문자열 | |
OperationName | 문자열 | |
OperationVersion | 문자열 | |
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 | 문자열 | |
리소스 | 문자열 | |
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 | 문자열 | |
_ResourceId | 문자열 | 레코드가 연결된 리소스의 고유 식별자입니다. |
ResourceProvider | 문자열 | |
ResourceProvider | 문자열 | |
ResourceType | 문자열 | |
ResourceType | 문자열 | |
response_rows_d | Double | |
resultCode_s | 문자열 | |
ResultDescription | 문자열 | |
ResultDescription | 문자열 | |
resultDescription_ChildJobs_s | 문자열 | |
resultDescription_ErrorJobs_s | 문자열 | |
resultMessage_s | 문자열 | |
ResultSignature | 문자열 | |
ResultType | 문자열 | |
ResultType | 문자열 | |
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 |