Ugrás a tartalomra

A Log Analytics lekérdezési nyelve Summarize és Join operátorokhoz

Közzététel dátuma: május 29, 2018

Ez a frissítés az Azure Log Analytics és Application Insights Summarize és Join operátorainak a lekérdezési nyelv szintaxisára vonatkozó javaslatait ismerteti. A meglévő szintaxist továbbra is támogatjuk, azonban erősen javasolt a megfelelő helyeken módosítani a lekérdezések szintaxisát a mentett keresésekben és riasztásokban, így elkerülheti az eredmények félreérthetőségét.

Ha a javaslatokkal kapcsolatban kérdése van, írjon nekünk.

Óránkénti automatikus dobozolás a Summarize operátorban

A rendszer a datetime kulcs által összesített adatokat jelenleg óránként dobozolja. Ebben a példában a Summarize operátorban használt TimeGenerated oszlop automatikusan óránkénti dobozokba került:

SecurityEvent

| where TimeGenerated > ago(1d)

| where EventID == 4625

| summarize count() by TimeGenerated

Íme, a lekérdezés eredményei:

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

1205

1268

1234

1173

1007

1042

1041

1049

1090

1113

 

Javasolt műveletek:

  • Ha nem használja az automatikus dobozolás funkciót sem a mentett keresésekben, sem a riasztásokban (például a TimeGenerated elem alapján összesítve):
    • Nincs szükség műveletre.
  • Ha nem tudja, hogy használja-e az automatikus dobozolás funkciót, a lekérdezések nem szándékos óránkénti összesítést eredményezhetnek:
    • Ellenőrizze, hogy a datetime kulcs alapján összesíti-e az adatokat (például TimeGenerated elemmel való összegzéssel). Ha igen, módosítsa a lekérdezéseket explicit dobozolásra – például: bin(TimeGenerated, 1h).
  • Ha ismeri az automatikus dobozolás funkciót, és használja:
    • Módosítsa a lekérdezéseket explicit dobozolásra – például: bin(TimeGenerated, 1h).

Egyenlőségi kifejezések a Join operátorban

A nyelvi szintaxis jelenleg engedélyezi félreérthető egyenlőségi kifejezések a Join attribútumaiként való használatát (például: key1 == key2), ami nem kívánatos eredményekhez vezet. Azt javasoljuk, hogy módosítsa a félreérthető egyenlőségi kifejezéseket ennek elkerülése érdekében.

Íme, egy példa egy félreérthető Join kifejezésre (amely a napi munkamenet időtartamát összegzi számítógépenként):

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

 

Javasolt műveletek:

  • Ha nem használ egyenlőségi kifejezéseket a Join operátorokban, sem a mentett keresésekben, sem a riasztásokban:
    • Nincs szükség műveletre.
  • Ha egyenlőségi kifejezéseket használ a Join operátorokban:
    • Javítsa ki a Join operátor szintaxisát.
    • Javítsa ki a lekérdezéseket. Az oszlopok neveit a megfelelő, $left és $right jelöléssel ellátott tulajdonosi tábla minősíti. Példák:

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

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

 

  • Log Analytics
  • Azure Monitor
  • Services

Kapcsolódó termékek