Colunas padrão nos Registos do Azure Monitor

Os dados nos Registos do Azure Monitor são armazenados como um conjunto de registos numa área de trabalho do Log Analytics ou numa aplicação 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 estas colunas e fornece exemplos de como pode utilizá-las em consultas.

As aplicações baseadas em áreas de trabalho no Application Insights armazenam os respetivos dados numa área de trabalho do Log Analytics e utilizam as mesmas colunas padrão que outras tabelas na área de trabalho. As aplicações clássicas armazenam os dados separadamente e têm colunas padrão diferentes, conforme especificado neste artigo.

Nota

Algumas das colunas padrão não serão apresentadas na vista de esquema ou intellisense no Log Analytics e não serão apresentadas nos resultados da consulta, a menos que especifique explicitamente a coluna no resultado.

TenantId

A coluna TenantId contém o ID da área de trabalho da área de trabalho do Log Analytics.

TimeGenerated

A coluna TimeGenerated contém a data e hora em que o registo foi criado pela origem de dados. Veja Log data ingestion time in Azure Monitor (Tempo de ingestão de dados de registo no Azure Monitor ) para obter mais detalhes.

TimeGenerated fornece uma coluna comum a utilizar para filtrar ou resumir por tempo. Quando seleciona um intervalo de tempo para uma vista ou dashboard no portal do Azure, este utiliza TimeGenerated para filtrar os resultados.

Nota

As tabelas que suportam recursos clássicos do Application Insights utilizam a coluna de carimbo de data/hora em vez da coluna TimeGenerated .

Nota

O valor TimeGenerated não pode ter mais de 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 mais do que um dia no futuro, será substituído pela hora real recebida.

Exemplos

A consulta seguinte devolve 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 hora em que o registo foi recebido pelo ponto de ingestão do Azure Monitor na cloud do Azure. Isto pode ser útil para identificar problemas de latência entre a origem de dados e a cloud. Um exemplo seria um problema de rede que causava um atraso no envio de dados de um agente. Veja Log data ingestion time in Azure Monitor (Tempo de ingestão de dados de registo no Azure Monitor ) para obter mais detalhes.

Nota

A coluna _TimeReceived é calculada sempre que é utilizada. Este processo consome muitos recursos. Refine a utilização para filtrar um grande número de registos. Utilizar esta função em simultâneo pode levar a um aumento da duração da execução de consultas.

A consulta seguinte dá a latência média por hora para registos de eventos de um agente. Isto inclui o tempo do agente para a cloud e o tempo total para que o registo esteja disponível para consultas de registo.

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)

Tipo

A coluna Tipo contém o nome da tabela a partir da qual o registo foi obtido, que também pode ser considerado como o tipo de registo. Esta coluna é útil em consultas que combinam registos de várias tabelas, como as que utilizam o search operador, para distinguir entre registos de diferentes tipos. $table podem ser utilizadas em vez de Tipo em algumas consultas.

Nota

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

Exemplos

A consulta seguinte devolve a contagem de registos por tipo recolhidos na última hora.

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

_ItemId

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

_ResourceId

A coluna _ResourceId contém um identificador exclusivo para o recurso ao qual o registo está associado. Isto dá-lhe uma coluna padrão para utilizar para definir o âmbito da consulta apenas para registos de um determinado recurso ou para associar dados relacionados em várias tabelas.

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

Nota

Alguns tipos de dados já têm campos que contêm o ID de recurso do Azure ou, pelo menos, partes do mesmo, como o ID da subscrição. Embora estes campos sejam mantidos para retrocompatibilidade, recomenda-se que utilize o _ResourceId para efetuar uma correlação cruzada, uma vez que será mais consistente.

Exemplos

A consulta seguinte associa dados de eventos e desempenho para cada computador. Mostra todos os eventos com um ID de 101 e uma utilização do processador superior a 50%.

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

A consulta seguinte associa registos do AzureActivity aos registos SecurityEvent . Mostra todas as operações de atividade com utilizadores com sessão iniciada nestes computadores.

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 seguinte 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 

Utilize estas union withsource = tt * consultas com moderação, uma vez que a execução de análises em tipos de dados é dispendiosa.

É sempre mais eficiente utilizar a coluna _SubscriptionId do que extraí-la ao analisar a coluna _ResourceId.

_SubscriptionId

A coluna _SubscriptionId contém o ID de subscrição do recurso ao qual o registo está associado. Isto dá-lhe uma coluna padrão para utilizar para definir o âmbito da consulta apenas para registos de uma subscrição específica ou para comparar subscrições diferentes.

Para os recursos do Azure, o valor de __SubscriptionId é a parte da subscrição do URL do ID de recurso do Azure. A coluna está limitada aos recursos do Azure, incluindo recursos do Azure Arc , ou a registos personalizados que indicaram o ID do Recurso durante a ingestão.

Nota

Alguns tipos de dados já têm campos que contêm o ID de subscrição do Azure. Embora estes campos sejam mantidos para retrocompatibilidade, recomenda-se que utilize a coluna _SubscriptionId para efetuar uma correlação cruzada, uma vez que será mais consistente.

Exemplos

A consulta seguinte examina os dados de desempenho dos computadores de uma subscrição 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 seguinte analisa _ResourceId e agrega volumes de dados faturados por subscrição do Azure.

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

Utilize estas union withsource = tt * consultas com moderação, uma vez que a execução de análises em tipos de dados é dispendiosa.

_IsBillable

A coluna _IsBillable especifica se os dados ingeridos são faturáveis. Os dados com _IsBillable iguais a false são recolhidos gratuitamente e não são faturados na sua conta do Azure.

Exemplos

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

Nota

Utilize consultas com union withsource = tt * moderação, uma vez que a execução de análises em tipos de dados é dispendiosa.

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

Isto pode ser expandido para devolver a contagem de computadores por hora que estão a enviar 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 de dados que serão faturados na sua conta do Azure se _IsBillable for verdadeiro. Veja 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, utilize 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 subscrição, utilize 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, utilize 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, utilize 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, utilize 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, utilize a seguinte consulta:

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

Passos seguintes