Colunas padrão nos Logs do Azure Monitor

Os dados nos Logs do Azure Monitor são armazenados como um conjunto de registros em um espaço de trabalho do Log Analytics ou aplicativo do Application Insights, cada um com um tipo de dados específico que tem um conjunto exclusivo de colunas. Muitos tipos de dados terão colunas padrão que são comuns em vários tipos. Este artigo descreve essas colunas e fornece exemplos de como você pode usá-las em consultas.

Os aplicativos baseados em espaço de trabalho no Application Insights armazenam seus dados em um espaço de trabalho do Log Analytics e usam as mesmas colunas padrão que outras tabelas no espaço de trabalho. Os aplicativos clássicos armazenam seus dados separadamente e têm colunas padrão diferentes, conforme especificado neste artigo.

Nota

Algumas das colunas padrão não serão exibidas na visualização de esquema ou no intellisense no Log Analytics e não serão exibidas nos resultados da consulta, a menos que você especifique explicitamente a coluna na saída.

TenantId

A coluna TenantId contém a ID do espaço de trabalho para o espaço de trabalho do Log Analytics.

TimeGenerated

A coluna TimeGenerated contém a data e a hora em que o registro foi criado pela fonte de dados. Consulte Tempo de ingestão de dados de log no Azure Monitor para obter mais detalhes.

TimeGenerated fornece uma coluna comum para usar para filtrar ou resumir por tempo. Quando você seleciona um intervalo de tempo para um modo de exibição ou painel no portal do Azure, ele usa TimeGenerated para filtrar os resultados.

Nota

As tabelas que suportam recursos clássicos do Application Insights usam a coluna Timestamp em vez da coluna TimeGenerated.

Nota

O valor TimeGenerated não pode ser mais antigo do que 2 dias antes da hora recebida ou mais de um dia no futuro. Se, em alguma situação, o valor for superior a 2 dias ou superior a um dia no futuro, será substituído pelo tempo real recebido.

Exemplos

A consulta a seguir retorna o número de eventos de erro criados para cada dia na semana anterior.

Event
| where EventLevelName == "Error" 
| where TimeGenerated between(startofweek(ago(7days))..endofweek(ago(7days))) 
| summarize count() by bin(TimeGenerated, 1day) 
| sort by TimeGenerated asc 

_TimeReceived

A coluna _TimeReceived contém a data e a hora em que o registro foi recebido pelo ponto de ingestão do Azure Monitor na nuvem do Azure. Isso pode ser útil para identificar problemas de latência entre a fonte de dados e a nuvem. Um exemplo seria um problema de rede causando um atraso com dados sendo enviados de um agente. Consulte Tempo de ingestão de dados de log no Azure Monitor para obter mais detalhes.

Nota

A coluna _TimeReceived é calculada cada vez que é usada. Este processo consome muitos recursos. Abster-se de usá-lo para filtrar um grande número de registros. O uso recorrente dessa função pode levar a um aumento da duração da execução da consulta.

A consulta a seguir fornece a latência média por hora para registros de eventos de um agente. Isso inclui o tempo do agente para a nuvem e o tempo total para que o registro esteja disponível para consultas de log.

Event
| where TimeGenerated > ago(1d) 
| project TimeGenerated, TimeReceived = _TimeReceived, IngestionTime = ingestion_time() 
| extend AgentLatency = toreal(datetime_diff('Millisecond',TimeReceived,TimeGenerated)) / 1000
| extend TotalLatency = toreal(datetime_diff('Millisecond',IngestionTime,TimeGenerated)) / 1000
| summarize avg(AgentLatency), avg(TotalLatency) by bin(TimeGenerated,1hr)

Type

A coluna Tipo contém o nome da tabela da qual o registro foi recuperado, que também pode ser considerado como o tipo de registro. Esta coluna é útil em consultas que combinam registros de várias tabelas, como aquelas que usam o search operador, para distinguir entre registros de diferentes tipos. $table pode ser usado no lugar de Type em algumas consultas.

Nota

As tabelas que suportam recursos clássicos do Application Insights usam a coluna itemType em vez da coluna Tipo .

Exemplos

A consulta a seguir retorna a contagem de registros por tipo coletados na última hora.

search * 
| where TimeGenerated > ago(1h)
| summarize count() by Type

_ItemId

A coluna _ItemId contém um identificador exclusivo para o registro.

_ResourceId

A coluna _ResourceId contém um identificador exclusivo para o recurso ao qual o registro está associado. Isso fornece uma coluna padrão para usar para definir o escopo de sua consulta para apenas registros de um recurso específico ou para unir dados relacionados em várias tabelas.

Para recursos do Azure, o valor de _ResourceId é a URL de ID de recurso do Azure. A coluna é limitada aos recursos do Azure, incluindo recursos do Azure Arc , ou aos logs personalizados que indicaram a ID do Recurso durante a ingestão.

Nota

Alguns tipos de dados já têm campos que contêm a ID do recurso do Azure ou pelo menos partes dela, como a ID da assinatura. Embora esses campos sejam mantidos para compatibilidade com versões anteriores, recomenda-se usar o _ResourceId para executar correlação cruzada, pois será mais consistente.

Exemplos

A consulta a seguir une dados de desempenho e eventos para cada computador. Ele mostra todos os eventos com um ID de 101 e utilização do processador acima de 50%.

Perf 
| where CounterName == "% User Time" and CounterValue  > 50 and _ResourceId != "" 
| join kind=inner (     
    Event 
    | where EventID == 101 
) on _ResourceId

A consulta a seguir une os registros do AzureActivity aos registros SecurityEvent . Ele mostra todas as operações de atividade com usuários que estavam conectados a essas máquinas.

AzureActivity 
| where  
    OperationName in ("Restart Virtual Machine", "Create or Update Virtual Machine", "Delete Virtual Machine")  
    and ActivityStatus == "Succeeded"  
| join kind= leftouter (    
   SecurityEvent 
   | where EventID == 4624  
   | summarize LoggedOnAccounts = makeset(Account) by _ResourceId 
) on _ResourceId  

A consulta a seguir analisa _ResourceId e agrega volumes de dados faturados por Grupo de Recursos do Azure.

union withsource = tt * 
| where _IsBillable == true 
| parse tolower(_ResourceId) with "/subscriptions/" subscriptionId "/resourcegroups/" 
    resourceGroup "/providers/" provider "/" resourceType "/" resourceName   
| summarize Bytes=sum(_BilledSize) by resourceGroup | sort by Bytes nulls last 

Use essas union withsource = tt * consultas com moderação, pois a execução de verificações entre tipos de dados é cara.

É sempre mais eficiente usar a coluna _SubscriptionId do que extraí-la analisando a coluna _ResourceId.

_SubscriptionId

A coluna _SubscriptionId contém a ID de assinatura do recurso ao qual o registro está associado. Isso fornece uma coluna padrão para usar para definir o escopo de sua consulta apenas para registros de uma assinatura específica ou para comparar assinaturas diferentes.

Para recursos do Azure, o valor de __SubscriptionId é a parte de assinatura da URL de ID de recurso do Azure. A coluna é limitada aos recursos do Azure, incluindo recursos do Azure Arc , ou aos logs personalizados que indicaram a ID da Assinatura durante a ingestão.

Nota

Alguns tipos de dados já têm campos que contêm a ID de assinatura do Azure. Embora esses campos sejam mantidos para compatibilidade com versões anteriores, recomenda-se usar a coluna _SubscriptionId para executar a correlação cruzada, pois ela será mais consistente.

Exemplos

A consulta a seguir examina dados de desempenho para computadores de uma assinatura específica.

Perf 
| where TimeGenerated > ago(24h) and CounterName == "memoryAllocatableBytes"
| where _SubscriptionId == "ebb79bc0-aa86-44a7-8111-cabbe0c43993"
| summarize avgMemoryAllocatableBytes = avg(CounterValue) by Computer

A consulta a seguir analisa _ResourceId e agrega volumes de dados cobrados por assinatura do Azure.

union withsource = tt * 
| where _IsBillable == true 
| summarize Bytes=sum(_BilledSize) by _SubscriptionId | sort by Bytes nulls last 

Use essas union withsource = tt * consultas com moderação, pois a execução de verificações entre tipos de dados é cara.

_IsBillable

A coluna _IsBillable especifica se os dados ingeridos são considerados faturáveis. Dados com _IsBillable igual a false não incorrem em encargos de ingestão, retenção ou arquivamento de dados.

Exemplos

Para obter uma lista de computadores que enviam tipos de dados faturados, utilize a seguinte consulta:

Nota

Use consultas com union withsource = tt * moderação, pois a execução de verificações entre tipos de dados é cara.

union withsource = tt * 
| where _IsBillable == true 
| extend computerName = tolower(tostring(split(Computer, '.')[0]))
| where computerName != ""
| summarize TotalVolumeBytes=sum(_BilledSize) by computerName

Isso pode ser estendido para retornar a contagem de computadores por hora que estão enviando tipos de dados faturados:

union withsource = tt * 
| where _IsBillable == true 
| extend computerName = tolower(tostring(split(Computer, '.')[0]))
| where computerName != ""
| summarize dcount(computerName) by bin(TimeGenerated, 1h) | sort by TimeGenerated asc

_BilledSize

A coluna _BilledSize especifica o tamanho, em bytes, dos dados que serão cobrados na sua conta do Azure se _IsBillable for verdadeiro. Consulte Cálculo do tamanho dos dados para saber mais sobre os detalhes de como o tamanho faturado é calculado.

Exemplos

Para ver o tamanho dos eventos faturáveis ingeridos por computador, use a _BilledSize coluna que fornece o tamanho em bytes:

union withsource = tt * 
| where _IsBillable == true 
| summarize Bytes=sum(_BilledSize) by  Computer | sort by Bytes nulls last 

Para ver o tamanho dos eventos faturáveis ingeridos por assinatura, use a seguinte consulta:

union withsource=table * 
| where _IsBillable == true 
| summarize Bytes=sum(_BilledSize) by  _SubscriptionId | sort by Bytes nulls last 

Para ver o tamanho dos eventos faturáveis ingeridos por grupo de recursos, use a seguinte consulta:

union withsource=table * 
| where _IsBillable == true 
| parse _ResourceId with "/subscriptions/" SubscriptionId "/resourcegroups/" ResourceGroupName "/" *
| summarize Bytes=sum(_BilledSize) by  _SubscriptionId, ResourceGroupName | sort by Bytes nulls last 

Para ver a contagem de eventos ingeridos por computador, use a seguinte consulta:

union withsource = tt *
| summarize count() by Computer | sort by count_ nulls last

Para ver a contagem de eventos faturáveis ingeridos por computador, use a seguinte consulta:

union withsource = tt * 
| where _IsBillable == true 
| summarize count() by Computer  | sort by count_ nulls last

Para ver a contagem de tipos de dados faturáveis de um computador específico, use a seguinte consulta:

union withsource = tt *
| where Computer == "computer name"
| where _IsBillable == true 
| summarize count() by tt | sort by count_ nulls last 

Próximos passos