Compartilhar via


AzureDiagnostics

Armazena logs de recursos dos 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 log de recursos para cada serviço do Azure tem um conjunto exclusivo de colunas. A tabela AzureDiagnostics inclui as colunas mais comuns usadas pelos serviços do Azure. Se um log de recursos incluir uma coluna que ainda não existe na tabela AzureDiagnostics, essa coluna será adicionada na primeira vez que os dados forem coletados. Se o número máximo de 500 colunas for atingido, os dados de todas as colunas adicionais serão incluídos em 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 que usam o modo Diagnóstico do Azure para os serviços que utilizam o Diagnóstico do Azure.

Observação

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 do ARM ou 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 workspace 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 que excedem esse limite de 500 colunas, a criação de coluna AzureDiagnostics é tratada de maneira diferente de outras tabelas.

A tabela AzureDiagnostics em cada workspace contém, no mínimo, as mesmas 200 colunas. Para os workspaces criados antes de 19 de janeiro de 2021, a tabela também contém todas as colunas que já estavam presentes antes dessa data. Quando os dados são enviados para uma coluna que ainda não existe:

  • Se o número total de colunas em AzureDiagnostics no workspace 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 excedentes serão adicionados a uma coluna de recipiente de propriedades dinâmica chamada AdditionalFields como uma propriedade.

Exemplo

Para ilustrar esse comportamento, imagine que, a partir de (data de implantação), a tabela AzureDiagnostics em nosso workspace tenha a seguinte aparência:

Coluna 1 Coluna 2 Coluna 3 ... Coluna 498
abc def 123 ... 456
... ... ... ... ...

Um recurso que envia dados ao AzureDiagnostics e adiciona uma nova dimensão aos 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 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 CamposAdicionais
abc def 123 ... 456 xyz {"NewInfo2":"789","NewInfo3":"qwerty"}
... ... ... ... ... ... ...

Você ainda pode consultar esses dados, mas deve extraí-los do recipiente 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 na 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 desempenho total adicionando os dois valores, poderá usar o seguinte: AzureDiagnostics | extend TotalPerfSec = Perf1Sec_i + toint(AdditionalFields.Perf2Sec) | .....
  • Use cláusulas where para reduzir o volume de dados para o menor possível antes de escrever qualquer lógica complexa, a fim de melhorar significativamente o desempenho. TimeGenerated é uma coluna que sempre deve ser reduzida à menor janela possível. No caso de 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" geralmente é mais eficiente do que o 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.

Observação

Todos os outros recursos enviam dados para tabelas específicas do recurso.

Nome do serviço tipoDeRecurso
MicrosoftSqlAzureTelemetryv3 microsoft.sql/servidores/bancos de dados
MicrosoftAzureCosmosDB microsoft.documentdb/databaseaccounts
AzureFirewall microsoft.network/azurefirewalls
Serviço de Gateway de Aplicação do Azure microsoft.network/applicationgateways
AKSCustomerData microsoft.containerservice/managedclusters
AzureFrontdoor microsoft.cdn/profiles
LNMAgentService microsoft.network/networksecuritygroups
MicrosoftOrcasBreadthServers microsoft.dbforpostgresql/flexibleservers
Barramento de serviço 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
Barramento de serviço microsoft.servicebus/namespaces
AzureIotHub microsoft.devices/iothubs
MicrosoftSqlAzureTelemetryv2 microsoft.dbforpostgresql/servers
MicrosoftSqlAzureTelemetryv2 microsoft.dbformariadb/servers
Automação da Microsoft microsoft.automation/automationaccounts
Gerenciador de Tráfego microsoft.network/trafficmanagerprofiles
MicrosoftOrcasBreadthServers microsoft.dbforpostgresql/servergroupsv2
AzureSearch microsoft.search/searchservices
AzureHíbrido microsoft.network/virtualnetworkgateways
MicrosoftSqlAzureTelemetryv3 microsoft.sql/managedinstances/databases
PBIDedicatedRP microsoft.powerbidedicated/capacities
AzureHíbrido microsoft.network/vpngateways
MicrosoftDatafactory microsoft.datafactory/factories
MicrosoftCognitiveServices microsoft.cognitiveservices/accounts
AzureRecoveryServices microsoft.recoveryservices/vaults
AzureBatch microsoft.batch/batchaccounts
AzureHíbrido microsoft.network/p2svpngateways
MicrosoftSqlAzureTelemetryv2 microsoft.dbformysql/servers
AzureKeyVault microsoft.keyvault/managedhsms
NetMon microsoft.network/publicipaddresses
AzureDataLake microsoft.datalakeanalytics/accounts
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/fleets
PBIDedicatedRP microsoft.powerbi/locatários/espaços_de_trabalho
AzureFrontdoor microsoft.cdn/cdnwebapplicationfirewallpolicies
AzureHíbrido microsoft.network/expressroutecircuits
MicrosoftAzureCosmosDB microsoft.dbforpostgresql/flexibleservers
NetMon microsoft.network/publicipprefixes
AzureCdn microsoft.cdn/profiles/endpoints

Modo de Diagnóstico do Azure ou modo específico do recurso

Os serviços a seguir usam o modo de Diagnóstico do Azure ou o modo específico do recurso para seus logs de recursos, dependendo das definições das configuraçõ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 tipoDeRecurso
Serviços de gerenciamento de API Microsoft.ApiManagement
Azure Cosmos DB (banco de dados distribuído da Azure) Microsoft.DocumentDB/databaseAccounts
Fábricas de dados (Versão 2) Microsoft.DataFactory
Cofres dos Serviços de Recuperação (Backup) Microsoft.RecoveryServices/vaults
Firewalls (barreiras de segurança) Microsoft.Network/azureFirewalls

Colunas de tabela do AzureDiagnostics

Coluna Tipo Descrição
action_id_s fio
action_name_s fio
Ações fio
ActivityId_g GUID
CamposAdicionais
AdHocOrScheduledJob_s fio
application_name_s fio
audit_schema_version_d Duplo
avg_cpu_percent_s fio
avg_mean_time_s fio
backendHostname_s fio
Caller_s fio
callerId_s fio
Endereço IP do Chamador fio
calls_s fio
Categoria fio
client_ip_s fio
clientInfo_s fio
clientIP_s fio
clientIP_s fio
clientIpAddress_s fio
clientPort_d Duplo
code_s fio
collectionName_s fio
conditions_destinationIP_s fio
conditions_destinationPortRange_s fio
conditions_None_s fio
conditions_protocols_s fio
conditions_sourceIP_s fio
conditions_sourcePortRange_s fio
CorrelationId fio
count_executions_d Duplo
cpu_time_d Duplo
database_name_s fio
database_principal_name_s fio
DatabaseName_s fio
db_id_s fio
direction_s fio
dop_d Duplo
duration_d Duplo
duração_milissegundos_d Duplo
Duração em ms BigInt
ElasticPoolName_s fio
EndTime_t Datetime
Environment_s fio
Código do erro = '%s' fio
mensagem_de_erro_s fio
errorLevel_s fio
event_class_s fio
event_s fio
event_subclass_s fio
event_time_t Datetime
EventName_s fio
tipo_de_execução_d Duplo
executionInfo_endTime_t Datetime
executionInfo_exitCode_d Duplo
executionInfo_startTime_t Datetime
host_s fio
httpMethod_s fio
httpStatus_d Duplo
httpStatusCode_d Duplo
httpStatusCode_s fio
httpVersion_s fio
id_s fio
identity_claim_appid_g GUID
identity_claim_ipaddr_s fio
instanceId_s fio
interval_end_time_d Duplo
hora_de_início_do_intervalo_d Duplo
ip_s fio
is_column_permission_s fio
isAccessPolicyMatch_b Bool
JobDurationInSecs_s fio
JobFailureCode_s fio
JobId_g GUID
jobId_s fio
JobOperation_s fio
JobOperationSubType_s fio
JobStartDateTime_s fio
JobStatus_s fio
JobUniqueId_g GUID
Nível fio
log_bytes_used_d Duplo
logical_io_reads_d Duplo
logical_io_writes_d Duplo
NomeDoServidorLógico_s fio
MACAddress_s fio
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 fio
mean_time_s fio
Mensagem fio
min_time_s fio
msg_s fio
num_physical_io_reads_d Duplo
object_id_d Duplo
object_name_s fio
NomeDaOperação fio
Versão de Operação fio
partitionKey_s fio
physical_io_reads_d Duplo
plan_id_d Duplo
policy_s fio
policyMode_s fio
primaryIPv4Address_s fio
priority_d Duplo
properties_enabledForDeployment_b Bool
properties_enabledForDiskEncryption_b Bool
properties_enabledForTemplateDeployment_b Bool
properties_s fio
properties_sku_Family_s fio
properties_sku_Name_s fio
properties_tenantId_g GUID
query_hash_s fio
query_id_d Duplo
query_max_used_memory_d Duplo
query_plan_hash_s fio
query_time_d Duplo
querytext_s fio
receivedBytes_d Duplo
Region_s fio
requestCharge_s fio
requestQuery_s fio
requestResourceId_s fio
requestResourceType_s fio
requestUri_s fio
reserved_storage_mb_s fio
Recurso fio
resource_actionName_s fio
resource_location_s fio
resource_originRunId_s fio
resource_resourceGroupName_s fio
resource_runId_s fio
resource_subscriptionId_g GUID
resource_triggerName_s fio
resource_workflowId_g GUID
resource_workflowName_s fio
ResourceGroup fio
_IdentificadorDeRecurso fio Identificador exclusivo do recurso ao qual o registro está associado
Fornecedor de Recursos fio
Fornecedor de Recursos fio
Tipo de Recurso fio
Tipo de Recurso fio
response_rows_d Duplo
resultCode_s fio
DescriçãoDoResultado fio
DescriçãoDoResultado fio
resultDescription_ChildJobs_s fio
resultDescription_ErrorJobs_s fio
resultMessage_s fio
ResultSignature fio
TipoDeResultado fio
TipoDeResultado fio
rootCauseAnalysis_s fio
routingRuleName_s fio
rowcount_d Duplo
ruleName_s fio
RunbookName_s fio
RunOn_s fio
schema_name_s fio
sentBytes_d Duplo
sequence_group_id_g GUID
sequence_number_d Duplo
server_principal_sid_s fio
session_id_d Duplo