Partilhar via


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 que AzureDiagnostics | 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