Condividi tramite


Strumenti Kusto nell'agente SRE di Azure

Gli strumenti Kusto consentono di trasformare le migliori query KQL in strumenti riutilizzabili e con parametri. L'agente esegue la query esatta scritta senza interpretazione o variazione. L'esperienza del team diventa una funzionalità condivisa.

Suggerimento

  • Standardizzare le query sugli eventi imprevisti : la stessa KQL collaudata viene eseguita ogni volta, senza variazioni.
  • Trasformare le conoscenze tribali in strumenti riutilizzabili : le migliori query diventano funzionalità condivise.
  • Query con parametri : gli utenti chiedono in linguaggio normale e l'agente sostituisce automaticamente i valori.
  • Test prima della distribuzione : convalidare l'esecuzione delle query prima dell'aggiunta agli agenti personalizzati.

Il problema: tutti scrivono le proprie query

Durante gli incidenti, i tecnici più esperti del team usano query testate in situazioni critiche che individuano rapidamente i problemi. Ma queste conoscenze rimangono nelle loro teste, nei thread di Slack e nei notebook personali. Quando non sono su chiamata, i risponditori meno esperti sprecano tempo:

  • Reinventare le query da zero, spesso con errori
  • **Scrittura di query eccessivamente estese che restituiscono troppi dati o casi limite mancanti
  • Colonne critiche mancanti che potrebbero rivelare la causa principale
  • Uso di finestre temporali errate o dimenticare di filtrare in base all'ambiente

Ogni tecnico esegue query sugli stessi dati in modo diverso. Un tecnico trova il problema in cinque minuti. Un altro ingegnere gira a vuoto per 30 minuti con le query KQL ad hoc.

Come gli strumenti Kusto risolveranno questo problema

Gli strumenti Kusto consentono di salvare le query migliori del team come strumenti deterministici con parametri. L'agente esegue la query esatta definita dall'utente, quindi la competenza del team diventa una capacità condivisa.

Prima Dopo
Tecnico esperto scrive query dalla memoria La query viene salvata come strumento, chiunque può usarla
Stime approssimative relative agli intervalli di tempo e ai filtri I parametri richiedono gli elementi necessari
Ogni risponditore ottiene risultati diversi La stessa query viene eseguita ogni volta
I join complessi devono essere memorizzati La logica in più passaggi è predefinita

Invece di chiedere ai tecnici su chiamata di "capire come eseguire query sui log degli errori", chiedono all'agente:

Show me errors from the last 24 hours

L'agente utilizza lo strumento preconfigurato con timeRange=24h, restituendo esattamente le colonne e i filtri di cui il team ha bisogno.

Come funziona

Seguire questa procedura per creare e usare uno strumento Kusto:

  1. Connetti: aggiungi il cluster di Azure Data Explorer come connettore.
  2. Crea: definisci query con parametri usando la sintassi ##parameterName##.
  3. Test: convalidare che la query venga eseguita correttamente nel portale.
  4. Collega: aggiungere lo strumento a un agente personalizzato.
  5. Usa: l'agente chiama lo strumento quando le domande dell'utente corrispondono alla descrizione dello strumento.

Due approcci alle query di dati

Quando si aggiunge un connettore di Azure Data Explorer, scegliere tra query deterministiche o flessibili.

Avvicinarsi Descrizione Usare quando
Connettore di query di database Agent usa query predefinite (strumenti Kusto) Si vogliono query deterministiche ed esatte
Connettore di indicizzazione del database L'agente genera query apprendendo il tuo schema Si desiderano query flessibili e ad hoc

Creare uno strumento Kusto

Creare strumenti in Generatore>Canvas dell'agente>Crea>Strumento>Strumento Kusto. Ogni strumento richiede un nome, una descrizione, un connettore, un database e una query KQL con segnaposto dei parametri ##paramName## facoltativi.

Per la procedura dettagliata completa con screenshot, vedere Esercitazione: Creare uno strumento Kusto.

Aggiungere uno strumento a un agente personalizzato

Dopo aver creato lo strumento, collegarlo a un agente personalizzato tramite il pulsante + di visualizzazione > canvas Aggiungi strumenti esistenti.

Prerequisiti

Prima di creare gli strumenti Kusto, soddisfare i requisiti seguenti.

Autorizzazioni di Esplora dati di Azure

L'identità gestita dell'agente ha bisogno del ruolo AllDatabasesViewer nel cluster di Azure Data Explorer.

Usare il comando di gestione KQL seguente:

.add cluster AllDatabasesViewer ('aadapp=<MANAGED_IDENTITY_CLIENT_ID>;<TENANT_ID>')

In alternativa, nel portale di Azure, vai al cluster di Azure Data Explorer. Selezionare Sicurezza + rete>Autorizzazioni>Aggiungi>TuttiDatabasesViewer.

Connettore Kusto

Prima di creare gli strumenti, configurare un connettore ADX. Quando si aggiunge il connettore:

  • Selezionare connettore per query di database per le query predefinite, non l'apprendimento degli schemi.
  • Usare l'URL completo del cluster, incluso il database : https://<CLUSTER_NAME>.<REGION>.kusto.windows.net/<DATABASE_NAME>.

Query con parametri

Rendi i tuoi strumenti flessibili con i parametri usando la sintassi ##parameterName##.

AppEvents
| where TimeGenerated > ago(##timeRange##)
| where EventLevel == "Error"
| where Message contains "##searchPattern##"
| take 100

Quando l'agente usa questo strumento, sostituisce i parametri in base all'input dell'utente.

L'utente dice Sostituti dell'agente
"errori dell'ultimo giorno" timeRange=24h
"trovare eccezioni del puntatore null" searchPattern=NullPointerException

I parametri consentono a uno strumento di gestire molte varianti della stessa domanda.

Modalità di esecuzione (YAML)

Quando si definiscono gli strumenti in YAML, scegliere una modalità di esecuzione.

Modalità Descrizione Usare quando
Query Esegue una query KQL inline Più comune. La query viene definita direttamente in YAML.
Function Chiama una funzione archiviata nel cluster La logica di query viene definita in Esplora dati di Azure come funzione
Script Esegue uno script KQL da un file esterno Query complesse a più dichiarazioni
# Query mode (most common)
spec:
  mode: Query
  query: |-
    AppEvents | take 10

# Function mode
spec:
  mode: Function
  function: GetRecentErrors

Procedure consigliate per le query

Per la scrittura di query sugli strumenti Kusto, seguire queste indicazioni.

Usare intervalli di tempo appropriati : impostazione predefinita per i dati recenti:

| where TimeGenerated > ago(1h)

Aggiungere i limiti dei risultati - Impedire l'output eccessivo:

| take 100

Includi proiezioni utili: restituisce solo le colonne necessarie per l'agente:

| project TimeGenerated, Name, DurationMs, ResultCode

Quando usare gli strumenti Kusto e le query ad hoc

Scegliere l'approccio corretto in base allo scenario in uso.

Scenario Strumenti Kusto Query ad hoc
Passaggi standardizzati del runbook No
Modelli di indagine ripetibili No
Query multi join complesse No
Esplorazione di dati non familiari No
Indagini monouso No

Inizia subito

risorsa Cosa imparerai
Creare uno strumento Kusto Procedura dettagliata con screenshot
Capability Elementi aggiunti
Agenti personalizzati Assegnare strumenti ad agenti personalizzati specializzati
Connettori Connettere altre origini dati