AzureDiagnostics
Armazena os registos de recursos dos serviços do Azure que utilizam o modo Diagnóstico do Azure. Os registos de recursos descrevem o funcionamento interno 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 utilizam o modo específico de recursos armazenam dados numa tabela específica desse serviço e não utilizam a tabela AzureDiagnostics. Veja Tipos de Recursos abaixo para obter os serviços que utilizam cada método. Veja Registos de recursos do Azure para obter detalhes sobre as diferenças.
Coluna AdditionalFields
Ao contrário de outras tabelas, o AzureDiagnostics é muito mais suscetível a exceder o limite de 500 colunas imposto a qualquer tabela numa área de trabalho do Log Analytics devido à ampla variedade de Recursos do Azure capazes de enviar dados para esta tabela. Para garantir que não se perdem dados devido ao número de colunas ativas que excedem este limite de 500 colunas, a criação de colunas AzureDiagnostics é processada de forma diferente das outras tabelas.
A tabela AzureDiagnostics em cada área de trabalho irá conter, no mínimo, as mesmas 200 colunas. Para áreas de trabalho criadas antes de 19 de janeiro de 2021, a tabela também conterá todas as colunas que já estavam implementadas antes desta data. Quando os dados são enviados para uma coluna que ainda não está no local:
- Se o número total de colunas no AzureDiagnostics na área de trabalho atual não exceder os 500, será criada uma nova coluna tal como com qualquer outra tabela.
- Se o número total de colunas for igual ou superior a 500, os dados em excesso são adicionados a uma coluna de conjunto de propriedades dinâmica denominada AdditionalFields como uma propriedade.
Exemplo
Para ilustrar este comportamento, imagine que a partir da (data de implementação) a tabela AzureDiagnostics na nossa workpsace tem o seguinte aspeto:
Coluna 1 | Coluna 2 | Coluna 3 | ... | Coluna 498 |
---|---|---|---|---|
abc | def | 123 | ... | 456 |
... | ... | ... | ... | ... |
Um recurso que envia dados para o AzureDiagnostics adiciona uma nova dimensão aos dados a que chamam NewInfo1. Uma vez que a tabela ainda tem menos de 500 colunas, a primeira vez que ocorre um evento que contém dados para esta nova dimensão irá adicionar uma nova coluna à tabela:
Coluna 1 | Coluna 2 | Coluna 3 | ... | Coluna 498 | NewInfo1_s |
---|---|---|---|---|---|
abc | def | 123 | ... | 456 | xyz |
... | ... | ... | ... | ... | ... |
Pode devolver estes novos dados numa consulta simples:
AzureDiagnostics | where NewInfo1_s == "xyz"
Posteriormente, outro recurso envia dados para o AzureDiagnostics que adiciona novas dimensões denominadas NewInfo2 e NewInfo3. Uma vez que a tabela atingiu 500 colunas nesta área de trabalho, os novos dados irã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"} |
... | ... | ... | ... | ... | ... | ... |
Ainda pode consultar estes dados, mas tem de extraí-lo do conjunto de propriedades com qualquer um dos operadores de propriedade dinâmicos no KQL:
AzureDiagnostics
| where AdditionalFields.NewInfo2 == "789" and AdditionalFields.NewInfo3 == "qwerty"
Sugestões sobre como utilizar a coluna AdditionalFields
Embora as melhores práticas de consulta gerais, como a filtragem sempre por tempo como a primeira cláusula na consulta, devam ser seguidas, existem outras recomendações que deve considerar ao trabalhar com AdditionalFields:
- Terá de escrever dados de typecast antes de realizar mais operações nos mesmos. Por exemplo, se existir uma coluna denominada Perf1Sec_i , bem como uma propriedade em AdditionalFields denominada Perf2Sec e quiser calcular o desempenho total ao adicionar ambos os valores, utilize algo como:
AzureDiagnostics | extend TotalPerfSec = Perf1Sec_i + toint(AdditionalFields.Perf2Sec) | ....
. - Utilize as cláusulas where para reduzir o volume de dados para o menor possível antes de escrever qualquer lógica complexa para melhorar significativamente o desempenho. TimeGenerated é uma coluna que deve ser sempre reduzida para a janela mais pequena possível. No caso do AzureDiagnostics, também deve ser sempre incluído um filtro adicional na parte superior da consulta em torno dos tipos de recursos que estão a ser consultados com a coluna ResourceType .
- Ao consultar volumes de dados muito grandes, por vezes, é mais eficiente fazer um filtro em AdditionalFields como um todo em vez de analisá-los. Por exemplo, para grandes volumes de dados
AzureDiagnostics | where AdditionalFields has "Perf2Sec"
é, muitas vezes, mais eficiente do queAzureDiagnostics | where isnotnull(toint(AdditionalFields.Perf2Sec))
.
modo de Diagnóstico do Azure
Os seguintes serviços utilizam o modo de diagnóstico do Azure para os registos de recursos e enviam dados para a tabela Diagnóstico do Azure.
- Analysis Services
- Gateways de Aplicação
- Contas de Automatização
- Servidores do Azure Database for MariaDB
- Servidores de Base de Dados do Azure para MySQL
- Servidores da Base de Dados do Azure para PostgreSQL
- Base de Dados do Azure para PostgreSQL servidores v2
- Contas do Batch
- Perfis de CDN
- Serviços Cognitivos
- Data Lake Analytics
- DataLake Storage Gen1
- Serviços de Aprovisionamento de Dispositivos
- Digital Twins
- Tópicos do Event Grid
- Hubs de Eventos
- Circuitos do ExpressRoute
- Front Doors
- Contas de integração
- Key Vault
- Serviços do Kubernetes
- Balanceadores de carga
- Logic Apps
- Serviços de multimédia
- Interfaces de rede
- Grupos de Segurança de Rede
- Gateways de VPN P2S
- Power BI Embedded
- Endereços IP públicos
- Cofres dos Serviços de Recuperação (Site Recovery)
- Serviços de pesquisa
- Service Bus
- Bases de dados SQL
- Instâncias Geridas do SQL
- Servidores SQL
- Tarefas do Stream Analytics
- Perfis do Gestor de Tráfego
- Redes virtuais
- Gateways de rede virtual
- Gateways de VPN
modo de Diagnóstico do Azure ou modo específico do recurso
Os seguintes serviços utilizam o modo de diagnóstico do Azure ou o modo específico do recurso para os registos de recursos, consoante a configuração. Quando utilizam o modo específico dos recursos, não enviam dados para a tabela AzureDiagnostics. Veja Registos de recursos do Azure para obter detalhes sobre esta configuração.
- Serviços de Gestão de API
- Azure Cosmos DB
- Fábricas de dados (V2)
- IoT Hub
- Cofres dos Serviços de Recuperação(Cópia de Segurança)
- Firewalls
Categorias
- Recursos do Azure
- Segurança
- Rede
Soluções
- LogManagement
Tipos de recurso
- Gateways de Aplicação
- Perfis CDN
- Azure Cosmos DB
- Tópicos do Event Grid
- Hubs de Eventos
- Firewalls
- Cofres de Chaves
- Serviços do Kubernetes
- Cofres dos Serviços de Recuperação
- Service Bus
- Servidores Flexíveis da Base de Dados do Azure para MySQL
- servidores flexíveis Base de Dados do Azure para PostgreSQL
- Serviços de Multimédia
- Analysis Services
- Contas de Batch
- Serviços Cognitivos
- Espaços de Nomes de Parceiros do Event Grid
- Tópicos de Parceiros do Event Grid
- Tópicos do Sistema do Event Grid
- Kubernetes Preparado para o Azure Arc
- Clusters Aprovisionados do Azure Arc
- IoT Hub
- Logic Apps
- Serviços da Gestão de API
- Conta de automatização
- Fábricas de dados
- Ger1 de Armazenamento do Data Lake
- Data Lake Analytics
- Power BI Embedded
- Instâncias Geridas SQL
- SQL Servers
- Bases de Dados SQL
- Servidores Base de Dados do Azure para MySQL
- Servidores Base de Dados do Azure para PostgreSQL
- Base de Dados do Azure para PostgreSQL Servers V2
- Servidores Azure Database for MariaDB
- Serviços de Aprovisionamento de Dispositivos
- Circuitos do ExpressRoute
- Front Doors
- Interfaces de Rede
- Grupos de Segurança de Rede
- Endereços IP Públicos
- Perfis do Gestor de Tráfego
- Gateways de Rede Virtual
- Gateways de Rede Privada Virtual
- Redes Virtuais
- Pesquisar Serviços
- Tarefas do Stream Analytics
Colunas
Coluna | 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 | Double (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 | Double (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 | Double (Duplo) | |
cpu_time_d | Double (Duplo) | |
database_name_s | String | |
database_principal_name_s | String | |
DatabaseName_s | String | |
db_id_s | String | |
direction_s | String | |
dop_d | Double (Duplo) | |
duration_d | Double (Duplo) | |
duration_milliseconds_d | Double (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 | Double (Duplo) | |
executionInfo_endTime_t | DateTime | |
executionInfo_exitCode_d | Double (Duplo) | |
executionInfo_startTime_t | DateTime | |
host_s | String | |
httpMethod_s | String | |
httpStatus_d | Double (Duplo) | |
httpStatusCode_d | Double (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 | Double (Duplo) | |
interval_start_time_d | Double (Duplo) | |
ip_s | String | |
is_column_permission_s | String | |
isAccessPolicyMatch_b | Booleano | |
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 | Double (Duplo) | |
logical_io_reads_d | Double (Duplo) | |
logical_io_writes_d | Double (Duplo) | |
LogicalServerName_s | String | |
macAddress_s | String | |
matchedConnections_d | Double (Duplo) | |
max_cpu_time_d | Double (Duplo) | |
max_dop_d | Double (Duplo) | |
max_duration_d | Double (Duplo) | |
max_log_bytes_used_d | Double (Duplo) | |
max_logical_io_reads_d | Double (Duplo) | |
max_logical_io_writes_d | Double (Duplo) | |
max_num_physical_io_reads_d | Double (Duplo) | |
max_physical_io_reads_d | Double (Duplo) | |
max_query_max_used_memory_d | Double (Duplo) | |
max_rowcount_d | Double (Duplo) | |
max_time_s | String | |
mean_time_s | String | |
Mensagem | String | |
min_time_s | String | |
msg_s | String | |
num_physical_io_reads_d | Double (Duplo) | |
object_id_d | Double (Duplo) | |
object_name_s | String | |
OperationName | String | |
OperationVersion | String | |
partitionKey_s | String | |
physical_io_reads_d | Double (Duplo) | |
plan_id_d | Double (Duplo) | |
policy_s | String | |
policyMode_s | String | |
primaryIPv4Address_s | String | |
priority_d | Double (Duplo) | |
properties_enabledForDeployment_b | Booleano | |
properties_enabledForDiskEncryption_b | Booleano | |
properties_enabledForTemplateDeployment_b | Booleano | |
properties_s | String | |
properties_sku_Family_s | String | |
properties_sku_Name_s | String | |
properties_tenantId_g | GUID | |
query_hash_s | String | |
query_id_d | Double (Duplo) | |
query_max_used_memory_d | Double (Duplo) | |
query_plan_hash_s | String | |
query_time_d | Double (Duplo) | |
querytext_s | String | |
receivedBytes_d | Double (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 registo está associado |
ResourceProvider | String | |
ResourceProvider | String | |
ResourceType | String | |
ResourceType | String | |
response_rows_d | Double (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 | Double (Duplo) | |
ruleName_s | String | |
RunbookName_s | String | |
RunOn_s | String | |
schema_name_s | String | |
sentBytes_d | Double (Duplo) | |
sequence_group_id_g | GUID | |
sequence_number_d | Double (Duplo) | |
server_principal_sid_s | String | |
session_id_d | Double (Duplo) |
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários