Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
In questa esercitazione viene creato uno strumento Kusto con parametri che esegue query KQL esatte con risultati deterministici e ripetibili. Quando gli utenti chiedono domande come "mostra gli errori degli ultimi 7 giorni", l'agente sostituisce il parametro ed esegue la query esatta sul database di Esplora dati di Azure.
In questa esercitazione apprenderai a:
- Creare uno strumento Kusto nel generatore di subagent
- Definire una query KQL con parametri
- Testare la query nel portale
- Collega lo strumento a un subagente e verificalo nel campo di prova
Tempo stimato: 15 minuti
Prerequisiti
Prima di iniziare, verificare di disporre di quanto segue:
- Un cluster di Esplora dati di Azure con il ruolo AllDatabasesViewer concesso all'identità gestita dell'agente. Per altre informazioni, vedere Prerequisiti degli strumenti Kusto.
- Un connettore Kusto configurato. Per altre informazioni, vedere Configurare un connettore Kusto.
- Accesso a Builder nel portale dell'agente SRE di Azure.
Passare al generatore di subagent
Aprire il generatore di subagent in cui si creano e si gestiscono gli strumenti.
- Aprire il portale dell'agente SRE.
- Seleziona il tuo agente.
- Selezionare Builder nel riquadro di spostamento a sinistra.
- Selezionare Generatore subagente.
Aprire il modulo di creazione dello strumento
Avviare il processo di creazione dello strumento dalla barra degli strumenti.
- Selezionare l'elenco a discesa Crea nella barra degli strumenti superiore.
- Selezionare Strumento>Kusto.
Compilare i dettagli dello strumento
Completare il modulo con la configurazione dello strumento.
| Campo | Valore | Descrizione |
|---|---|---|
| Nome strumento | QueryAppLogs |
Informazioni su come l'agente fa riferimento a questo strumento. |
| Descrizione | "Eseguire query sulla tabella AppLogs per individuare gli errori nell'intervallo di tempo specificato" | Quando l'agente deve usare questo strumento. |
| Connettore | (selezionare il connettore Kusto) | Connessione da usare di Azure Data Explorer. |
| Banca dati | (popolato automaticamente dall'URL del connettore) | Il nome del tuo database. |
| Quesito | Vedi l'esempio seguente. | Query KQL con parametri. |
Immettere la query di esempio seguente:
AppLogs
| where Timestamp > ago(##timeRange##)
| where Level == "Error"
| order by Timestamp desc
| take 10
La ##timeRange## sintassi crea un parametro. Quando un utente chiede "mostra gli errori delle ultime 24 ore", l'agente compila timeRange = 24h.
Aggiungere il parametro
Definire il parametro usato dalla query.
- Scorrere fino alla sezione Parametri .
- Selezionare Aggiungi parametro.
- Immettere i valori seguenti:
-
Nome:
timeRange - Tipo: Stringa
- Descrizione: "L'intervallo di tempo da considerare (ad esempio, 1h, 24h, 7d)"
-
Nome:
Il parametro viene visualizzato nella tabella Parameters sotto la query.
Testare la query
Verificare che la query funzioni correttamente prima del salvataggio.
- Selezionare Test nella parte inferiore del modulo.
- Immettere un valore di test per
timeRange(ad esempio,7d). - Verificare che la query venga eseguita correttamente.
Il test mostra il tempo di esecuzione e conferma che la query viene eseguita. Anche se la query restituisce zero righe, un segno di spunta verde indica che la sintassi della query è valida.
Creare lo strumento
Selezionare Crea per salvare lo strumento Kusto.
Aggiungere lo strumento a un subagent
Lo strumento viene creato ma non ancora collegato a un subagente. Collegarlo in modo che l'agente possa usarlo.
- Nella visualizzazione Canvas trova il sottoagente.
- Selezionare il + pulsante sul lato destro della scheda subagent.
- Selezionare Aggiungi strumenti esistenti.
- Controlla lo strumento Kusto dall'elenco.
- Selezionare Aggiungi strumenti.
Il conteggio degli strumenti nella scheda del subagente aumenta dopo l'aggiunta.
Verificare lo strumento nell'area di prova
Verificare che l'agente richiami correttamente lo strumento Kusto.
- Selezionare Test Playground nella barra di navigazione a sinistra.
- Selezionare il sottoagente dall'elenco a discesa.
- Chiedi: "Mostra errori degli ultimi 7 giorni"
- L'agente richiama lo strumento con
timeRange = 7d.
Dovresti vedere l'agente chiamare lo strumento Kusto e restituire i risultati dell'interrogazione. La query esatta che hai scritto viene eseguita sul tuo cluster.
Sintassi dei parametri
Usare ##parameterName## o $parameterName per contrassegnare i segnaposto dei parametri nelle query:
query: |-
AppExceptions
| where TimeGenerated > ago(##timeRange##)
| where ServiceName == "$serviceName"
Entrambe le sintassi funzionano in modo identico. L'agente sostituisce i valori in fase di esecuzione.
Modalità di esecuzione
Nella tabella seguente vengono descritte le modalità di esecuzione disponibili per gli strumenti Kusto.
| Modalità | Usare quando |
|---|---|
Query |
La query è definita direttamente in YAML (più comune). |
Function |
La logica di query viene archiviata come funzione nel cluster di Esplora dati di Azure. |
Script |
La query si trova in un file esterno .kql . |
# Function mode example
spec:
type: KustoTool
mode: Function
function: GetRecentErrors
# Script mode example
spec:
type: KustoTool
mode: Script
file: queries/complex-analysis.kql
Esempio: Strumento di correlazione per l'implementazione
La definizione YAML seguente crea uno strumento Kusto che correla le distribuzioni con un servizio e un intervallo di tempo specificato.
api_version: azuresre.ai/v2
kind: ExtendedAgentTool
metadata:
name: get-recent-deployments
spec:
type: KustoTool
connector: devops-logs
mode: Query
database: deployments
description: "Get deployments in a time range for a service"
toolMode: Auto
query: |-
Deployments
| where TimeGenerated > ago(##timeRange##)
| where ServiceName == "##serviceName##"
| project TimeGenerated, Version, DeployedBy, Environment
| order by TimeGenerated desc
parameters:
- name: serviceName
type: string
description: "Name of the service"
- name: timeRange
type: string
description: "How far back to look (e.g., 1h, 24h)"