AzureDiagnostics
Armazena logs de recursos para serviços do Azure que usam o modo de Diagnóstico do Azure. Os logs de recursos descrevem a operação interna dos recursos do Azure.
O registo de recursos de cada serviço do Azure tem um conjunto exclusivo de colunas. A tabela AzureDiagnostics inclui as colunas mais comuns utilizadas pelos serviços do Azure. Se um registo de recursos incluir uma coluna que ainda não existe na tabela AzureDiagnostics, essa coluna será adicionada da primeira vez que esses dados forem recolhidos. Se o número máximo de 500 colunas for alcançado, os dados relativos às colunas adicionais são adicionados a uma coluna dinâmica.
Os serviços do Azure que usam o modo específico do recurso armazenam dados em uma tabela específica para esse serviço e não usam a tabela AzureDiagnostics. Consulte Logs de recursos do Azure para obter detalhes sobre as diferenças. Consulte Recursos usando o modo de Diagnóstico do Azure para obter os serviços que usam o Diagnóstico do Azure.
Nota
A tabela AzureDiagnostics é uma tabela de log personalizada criada exclusivamente pelo pipeline do Azure Monitor na primeira vez que um recurso do Azure começa a enviar logs no modo de Diagnóstico do Azure. Ao contrário de outras tabelas, a tabela AzureDiagnostics não pode ser criada por meio de um modelo ARM ou uma API de tabelas. Consequentemente, não é possível modificar os valores de retenção padrão da tabela antes de sua criação.
Coluna AdditionalFields
Ao contrário de outras tabelas, o AzureDiagnostics é muito mais suscetível a exceder o limite de 500 colunas imposto para qualquer tabela em um espaço de trabalho do Log Analytics devido à ampla variedade de Recursos do Azure capazes de enviar dados para essa tabela. Para garantir que nenhum dado seja perdido devido ao número de colunas ativas excedendo esse limite de 500 colunas, a criação de colunas do AzureDiagnostics é tratada de maneira diferente de outras tabelas.
A tabela AzureDiagnostics em cada espaço de trabalho contém, no mínimo, as mesmas 200 colunas. Para espaços de trabalho criados antes de 19 de janeiro de 2021, a tabela também contém todas as colunas que já estavam em vigor antes dessa data. Quando os dados são enviados para uma coluna que ainda não está em vigor:
- Se o número total de colunas no AzureDiagnostics no espaço de trabalho atual não exceder 500, uma nova coluna será criada como em qualquer outra tabela.
- Se o número total de colunas for igual ou superior a 500, os dados em excesso serão adicionados a uma coluna de saco de propriedades dinâmicas chamada AdditionalFields como uma propriedade.
Exemplo
Para ilustrar esse comportamento, imagine que, a partir de (data de implantação), a tabela AzureDiagnostics em nosso espaço de trabalho tenha a seguinte aparência:
Coluna 1 | Coluna 2 | Coluna 3 | ... | Coluna 498 |
---|---|---|---|---|
abc | def | 123 | ... | 456 |
... | ... | ... | ... | ... |
Um recurso que envia dados para o AzureDiagnostics e adiciona uma nova dimensão aos seus dados que eles chamam de NewInfo1. Como a tabela ainda tem menos de 500 colunas, a primeira vez que ocorre um evento que contém dados para essa nova dimensão adiciona uma nova coluna à tabela:
Coluna 1 | Coluna 2 | Coluna 3 | ... | Coluna 498 | NewInfo1_s |
---|---|---|---|---|---|
abc | def | 123 | ... | 456 | xyz |
... | ... | ... | ... | ... | ... |
Você pode retornar esses novos dados em uma consulta simples:
AzureDiagnostics | where NewInfo1_s == "xyz"
Em uma data posterior, outro recurso envia dados para o AzureDiagnostics que adiciona novas dimensões chamadas NewInfo2 e NewInfo3. Como a tabela atingiu 500 colunas neste espaço de trabalho, os novos dados vão para a coluna AdditionalFields :
Coluna 1 | Coluna 2 | Coluna 3 | ... | Coluna 498 | NewInfo1_s | Campos Adicionais |
---|---|---|---|---|---|---|
abc | def | 123 | ... | 456 | xyz | {"NewInfo2":"789","NewInfo3":"qwerty"} |
... | ... | ... | ... | ... | ... | ... |
Você ainda pode consultar esses dados, mas deve extraí-los do pacote de propriedades usando qualquer um dos operadores de propriedade dinâmica no KQL:
AzureDiagnostics
| where AdditionalFields.NewInfo2 == "789" and AdditionalFields.NewInfo3 == "qwerty"
Dicas sobre como usar a AdditionalFields
coluna
Embora as práticas recomendadas de consulta, como sempre filtrar por tempo como a primeira cláusula da consulta, devam ser seguidas, há algumas outras recomendações que você deve considerar ao trabalhar com AdditionalFields:
- Você deve digitar dados antes de executar outras operações neles. Por exemplo, se você tiver uma coluna chamada Perf1Sec_i e uma propriedade em AdditionalFields chamada Perf2Sec e quiser calcular o perf total adicionando ambos os valores, poderá usar o seguinte:
AzureDiagnostics | extend TotalPerfSec = Perf1Sec_i + toint(AdditionalFields.Perf2Sec) | ....
. - Use cláusulas where para reduzir o volume de dados ao menor possível antes de escrever qualquer lógica complexa para melhorar significativamente o desempenho. TimeGenerated é uma coluna que deve ser sempre reduzida à menor janela possível. No caso do AzureDiagnostics, um filtro adicional sempre deve ser incluído na parte superior da consulta em torno dos tipos de recursos que estão sendo consultados usando a coluna ResourceType.
- Ao consultar grandes volumes de dados, às vezes é mais eficiente fazer um filtro em AdditionalFields como um todo em vez de analisá-lo. Por exemplo, para grandes volumes de dados,
AzureDiagnostics | where AdditionalFields has "Perf2Sec"
é muitas vezes mais eficiente do queAzureDiagnostics | where isnotnull(toint(AdditionalFields.Perf2Sec))
.
Recursos usando o modo de Diagnóstico do Azure
Os serviços a seguir usam o modo de diagnóstico do Azure para seus logs de recursos e enviam dados para a tabela de Diagnóstico do Azure. Consulte Logs de recursos do Azure para obter detalhes sobre essa configuração.
Nota
Todos os outros recursos enviam dados para tabelas específicas de recursos.
Nome do serviço | resourceType |
---|---|
MicrosoftSqlAzureTelemetryv3 | microsoft.sql/servidores/bases de dados |
MicrosoftAzureCosmosDB | Microsoft.DocumentDB/DatabaseAccounts |
AzureFirewall | microsoft.network/azurefirewalls |
AzureApplicationGatewayService | Microsoft.Network/ApplicationGateways |
AKSCustomerData | Microsoft.ContainerService/ManagedClusters |
AzureFrontdoor | microsoft.cdn/perfis |
LNMAgentService | microsoft.network/networksecuritygroups |
MicrosoftOrcasBreadthServers | Microsoft.dbforpostgresql/flexibleservers |
Barramento de serviço | microsoft.eventhub/namespaces |
AzureFrontdoor | microsoft.network/frontdoors |
AzureKeyVault | microsoft.keyvault/cofres |
AzureDataLake | microsoft.datalakestore/contas |
ApiManagement | microsoft.apimanagement/serviço |
MicrosoftSqlAzureTelemetryv3 | microsoft.sql/instâncias gerenciadas |
ASAzureRP | Microsoft.AnalysisServices/Servidores |
MicrosoftOrcasBreadthServers | Microsoft.dbformysql/flexibleservers |
Barramento de serviço | microsoft.servicebus/namespaces |
AzureIotHub | Microsoft.Devices/IoTHubs |
MicrosoftSqlAzureTelemetryv2 | Microsoft.dbforpostgresql/servidores |
MicrosoftSqlAzureTelemetryv2 | microsoft.dbformariadb/servidores |
Automação da Microsoft | microsoft.automation/automationaccounts |
TrafficManager | Microsoft.Network/TrafficManagerProfiles |
MicrosoftOrcasBreadthServers | Microsoft.dbforpostgresql/servergroupsv2 |
AzureSearch | microsoft.search/searchservices |
AzureHybrid | Microsoft.Network/VirtualNetworkGateways |
MicrosoftSqlAzureTelemetryv3 | microsoft.sql/instâncias gerenciadas/bancos de dados |
PBIDedicatedRP | microsoft.powerbidedicated/capacidades |
AzureHybrid | microsoft.network/vpngateways |
MicrosoftDatafactory | microsoft.datafactory/fábricas |
MicrosoftCognitiveServices | microsoft.cognitiveservices/contas |
AzureRecoveryServices | Microsoft.RecoveryServices/Cofres |
AzureBatch | microsoft.batch/batchaccounts |
AzureHybrid | microsoft.network/p2svpngateways |
MicrosoftSqlAzureTelemetryv2 | Microsoft.dbformysql/servidores |
AzureKeyVault | Microsoft.KeyVault/ManageDHSMS |
NetMon | microsoft.network/publicipaddresses |
AzureDataLake | microsoft.datalakeanalytics/contas |
MicrosoftStreamanalytics | Microsoft.StreamAnalytics/StreamingJobs |
Barramento de serviço | microsoft.relay/namespaces |
AzureIotDps | Microsoft.Devices/ProvisioningServices |
MicrosoftAzureCosmosDB | Microsoft.DocumentDB/CassandraClusters |
MicrosoftAzureCosmosDB | Microsoft.DocumentDB/MongoClusters |
AKSCustomerData | microsoft.containerservice/frotas |
PBIDedicatedRP | microsoft.powerbi/locatários/espaços de trabalho |
AzureFrontdoor | microsoft.cdn/cdnwebapplicationfirewallpolicies |
AzureHybrid | Microsoft.Network/ExpressRouteCircuits |
MicrosoftAzureCosmosDB | Microsoft.dbforpostgresql/flexibleservers |
NetMon | microsoft.network/publicipprefixes |
AzureCdn | microsoft.cdn/perfis/pontos de extremidade |
Modo de Diagnóstico do Azure ou modo específico de recursos
Os serviços a seguir usam o modo de diagnóstico do Azure ou o modo específico de recursos para seus logs de recursos, dependendo da configuração das definições de diagnóstico. Ao usar o modo específico do recurso, esses recursos não enviam dados para a tabela AzureDiagnostics. Consulte Logs de recursos do Azure para obter detalhes sobre essa configuração.
Nome do serviço | resourceType |
---|---|
Serviços de gerenciamento de API | Microsoft.ApiManagement |
Azure Cosmos DB | Microsoft.DocumentDB/databaseAccounts |
Fábricas de dados (V2) | Microsoft.DataFactory |
Cofres dos Serviços de Recuperação (Backup) | Microsoft.RecoveryServices/cofres |
Firewalls | Microsoft.Network/azureFirewalls |
Colunas da tabela AzureDiagnostics
Column | Tipo | Description |
---|---|---|
action_id_s | String | |
action_name_s | String | |
action_s | String | |
ActivityId_g | GUID | |
Campos Adicionais | ||
AdHocOrScheduledJob_s | String | |
application_name_s | String | |
audit_schema_version_d | Duplo | |
avg_cpu_percent_s | String | |
avg_mean_time_s | String | |
backendHostname_s | String | |
Caller_s | String | |
callerId_s | String | |
CallerIPAddress | String | |
calls_s | String | |
Categoria | String | |
client_ip_s | String | |
clientInfo_s | String | |
clientIP_s | String | |
clientIp_s | String | |
clientIpAddress_s | String | |
clientPort_d | Duplo | |
code_s | String | |
collectionName_s | String | |
conditions_destinationIP_s | String | |
conditions_destinationPortRange_s | String | |
conditions_None_s | String | |
conditions_protocols_s | String | |
conditions_sourceIP_s | String | |
conditions_sourcePortRange_s | String | |
CorrelationId | String | |
count_executions_d | Duplo | |
cpu_time_d | Duplo | |
database_name_s | String | |
database_principal_name_s | String | |
DatabaseName_s | String | |
db_id_s | String | |
direction_s | String | |
dop_d | Duplo | |
duration_d | Duplo | |
duration_milliseconds_d | Duplo | |
DurationMs | BigInt | |
ElasticPoolName_s | String | |
endTime_t | DateTime | |
Environment_s | String | |
error_code_s | String | |
error_message_s | String | |
errorLevel_s | String | |
event_class_s | String | |
event_s | String | |
event_subclass_s | String | |
event_time_t | DateTime | |
EventName_s | String | |
execution_type_d | Duplo | |
executionInfo_endTime_t | DateTime | |
executionInfo_exitCode_d | Duplo | |
executionInfo_startTime_t | DateTime | |
host_s | String | |
httpMethod_s | String | |
httpStatus_d | Duplo | |
httpStatusCode_d | Duplo | |
httpStatusCode_s | String | |
httpVersion_s | String | |
id_s | String | |
identity_claim_appid_g | GUID | |
identity_claim_ipaddr_s | String | |
instanceId_s | String | |
interval_end_time_d | Duplo | |
interval_start_time_d | Duplo | |
ip_s | String | |
is_column_permission_s | String | |
isAccessPolicyMatch_b | Bool | |
JobDurationInSecs_s | String | |
JobFailureCode_s | String | |
JobId_g | GUID | |
jobId_s | String | |
JobOperation_s | String | |
JobOperationSubType_s | String | |
JobStartDateTime_s | String | |
JobStatus_s | String | |
JobUniqueId_g | GUID | |
Level | String | |
log_bytes_used_d | Duplo | |
logical_io_reads_d | Duplo | |
logical_io_writes_d | Duplo | |
LogicalServerName_s | String | |
macAddress_s | String | |
matchedConnections_d | Duplo | |
max_cpu_time_d | Duplo | |
max_dop_d | Duplo | |
max_duration_d | Duplo | |
max_log_bytes_used_d | Duplo | |
max_logical_io_reads_d | Duplo | |
max_logical_io_writes_d | Duplo | |
max_num_physical_io_reads_d | Duplo | |
max_physical_io_reads_d | Duplo | |
max_query_max_used_memory_d | Duplo | |
max_rowcount_d | Duplo | |
max_time_s | String | |
mean_time_s | String | |
Mensagem | String | |
min_time_s | String | |
msg_s | String | |
num_physical_io_reads_d | Duplo | |
object_id_d | Duplo | |
object_name_s | String | |
OperationName | String | |
OperationVersion | String | |
partitionKey_s | String | |
physical_io_reads_d | Duplo | |
plan_id_d | Duplo | |
policy_s | String | |
policyMode_s | String | |
primaryIPv4Address_s | String | |
priority_d | Duplo | |
properties_enabledForDeployment_b | Bool | |
properties_enabledForDiskEncryption_b | Bool | |
properties_enabledForTemplateDeployment_b | Bool | |
properties_s | String | |
properties_sku_Family_s | String | |
properties_sku_Name_s | String | |
properties_tenantId_g | GUID | |
query_hash_s | String | |
query_id_d | Duplo | |
query_max_used_memory_d | Duplo | |
query_plan_hash_s | String | |
query_time_d | Duplo | |
querytext_s | String | |
receivedBytes_d | Duplo | |
Region_s | String | |
requestCharge_s | String | |
requestQuery_s | String | |
requestResourceId_s | String | |
requestResourceType_s | String | |
requestUri_s | String | |
reserved_storage_mb_s | String | |
Recurso | String | |
resource_actionName_s | String | |
resource_location_s | String | |
resource_originRunId_s | String | |
resource_resourceGroupName_s | String | |
resource_runId_s | String | |
resource_subscriptionId_g | GUID | |
resource_triggerName_s | String | |
resource_workflowId_g | GUID | |
resource_workflowName_s | String | |
ResourceGroup | String | |
_ResourceId | String | Um identificador exclusivo para o recurso ao qual o registro está associado |
ResourceProvider | String | |
ResourceProvider | String | |
ResourceType | String | |
ResourceType | String | |
response_rows_d | Duplo | |
resultCode_s | String | |
ResultDescription | String | |
ResultDescription | String | |
resultDescription_ChildJobs_s | String | |
resultDescription_ErrorJobs_s | String | |
resultMessage_s | String | |
ResultSignature | String | |
ResultType | String | |
ResultType | String | |
rootCauseAnalysis_s | String | |
routingRuleName_s | String | |
rowcount_d | Duplo | |
ruleName_s | String | |
RunbookName_s | String | |
RunOn_s | String | |
schema_name_s | String | |
sentBytes_d | Duplo | |
sequence_group_id_g | GUID | |
sequence_number_d | Duplo | |
server_principal_sid_s | String | |
session_id_d | Duplo |