Pular para o conteúdo principal

Recomendações de linguagem de consulta de Log Analytics para operadores de Resumo e Junção

Data da publicação: 29 maio, 2018

Esta atualização descreve as recomendações de sintaxe da linguagem de consulta do Azure Log Analytics e do Application Insights para operadores de Resumo e Junção. A sintaxe existente ainda é compatível, mas é altamente recomendável que você modifique a sintaxe de consulta, quando aplicável, em pesquisas e alertas salvos, para evitar ambiguidade de resultados.

Se tiver dúvidas sobre estas recomendações, entre em contato conosco.

Compartimentalização automática por hora no operador de Resumo

No momento, os dados agregados pela chave datetime são automaticamente agrupados em compartimentos por hora. Neste exemplo, a coluna TimeGenerated usada no operador de Resumo foi automaticamente arredondada para compartimentos por hora:

SecurityEvent

| where TimeGenerated > ago(1d)

| where EventID == 4625

| summarize count() by TimeGenerated

Os resultados da consulta são:

TimeGenerated [UTC]

count_

2018-02-04T09:00:00.000

2018-02-04T10:00:00.000

2018-02-04T11:00:00.000

2018-02-04T12:00:00.000

2018-02-04T13:00:00.000

2018-02-04T14:00:00.000

2018-02-04T15:00:00.000

2018-02-04T16:00:00.000

2018-02-04T17:00:00.000

2018-02-04T18:00:00.000

1.205

1.268

1.234

1.173

1.007

1.042

1.041

1.049

1.090

1.113

 

Ações recomendadas:

  • Se não estiver usando o recurso de compartimentalização automática, seja em pesquisas salvas ou em alertas (por exemplo, resumir por TimeGenerated):
    • nenhuma ação será necessária.
  • Se você não tiver conhecimento do recurso de compartimentalização automática, suas consultas poderão gerar resultados com agregação por hora não intencional:
    • verifique se está usando dados de agregação pela chave datetime (por exemplo, resumir por TimeGenerated). Se sim, corrija as consultas de forma a usar a compartimentalização explícita, por exemplo, resumir por bin(TimeGenerated, 1h).
  • Se você tiver conhecimento do recurso de compartimentalização automática e o estiver usando:
    • corrija as consultas de forma a usar a compartimentalização explícita, por exemplo, resumir por bin(TimeGenerated, 1h).

Expressões de igualdade no operador de Junção

No momento, a sintaxe de linguagem permite o uso de expressões de igualdade ambíguas como atributos de Junção (por exemplo, key1 == key2), gerando resultados indesejados. Recomendamos que você altere as expressões de igualdade ambíguas para evitar tal comportamento.

Abaixo, há um exemplo de uma expressão de Junção ambígua (somando a duração diária de sessão por computador):

SecurityEvent

| where EventID == 4624

| join kind= inner (

    SecurityEvent

    | where EventID == 4634

    ) on TargetLogonId == TargetLogonId

| extend Duration = LogoffTime - LogonTime

| summarize sum(Duration) by bin(LogonTime, 1d), Computer

 

Ações recomendadas:

  • Se você não usa expressões de igualdade em operadores de Junção, seja em pesquisas salvas ou em alertas:
    • nenhuma ação será necessária.
  • Se você usa expressões de igualdade em operadores de Junção:
    • corrija a sintaxe do operador de Junção.
    • corrija suas consultas. Os nomes de colunas devem ser qualificados com a tabela de proprietários aplicável indicada pelas notações $left e $right. Exemplos:

| join … on $left.Col1 == $right.Col2

| join … on X (equivalent to: | join … on $left.X == $right.X)

 

  • Log Analytics
  • Azure Monitor
  • Services

Produtos relacionados