Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här självstudien skapar du ett parametriserat Kusto-verktyg som kör exakta KQL-frågor med deterministiska, repeterbara resultat. När användare ställer frågor som "visa mig fel från de senaste sju dagarna" ersätter agenten parametern och kör din exakta fråga mot din Azure Data Explorer-databas.
I den här tutorialen lär du dig följande:
- Skapa ett Kusto-verktyg i agentarbetsytan
- Definiera en parametriserad KQL-fråga
- Testa frågan i portalen
- Koppla verktyget till en anpassad agent och verifiera det på lekplatsen
Uppskattad tid: 15 minuter
Förutsättningar
Kontrollera att du har följande förutsättningar innan du börjar:
- Ett Azure Data Explorer-kluster när rollen AllDatabasesViewer är beviljad till agentens hanterade identitet. Mer information finns i Krav för Kusto-verktyg.
- En Kusto-koppling har konfigurerats. Mer information finns i Konfigurera en Kusto-anslutning.
- Åtkomst till Builder i Azure SRE-agentportalen.
Navigera till agentmiljön
Öppna agentarbetsytan där du skapar och hanterar verktyg.
- Öppna SRE-agentportalen.
- Välj din handläggare.
- Välj Builder i det vänstra navigeringsfältet.
- Välj Agentarbetsyta.
Öppna formuläret för att skapa verktyget
Starta processen för att skapa verktyget från verktygsfältet.
- Välj listrutan Skapa i det övre verktygsfältet.
- Välj Verktyget>Kusto-verktyget.
Fyll i verktygsinformationen
Fyll i formuläret med din verktygskonfiguration.
| Fält | Värde | Beskrivning |
|---|---|---|
| Verktygsnamn | QueryAppLogs |
Hur agenten refererar till det här verktyget. |
| Beskrivning | "Fråga AppLogs-tabellen efter fel i det angivna tidsintervallet" | När agenten ska använda det här verktyget. |
| Konnektor | (välj Kusto-anslutningen) | Den Azure Data Explorer-anslutning som ska användas. |
| Databas | (fylls i automatiskt från anslutningsadressen) | Ditt databasnamn. |
| Fråga | Se följande exempel. | Din KQL-fråga med parametrar. |
Ange följande exempelfråga:
AppLogs
| where Timestamp > ago(##timeRange##)
| where Level == "Error"
| order by Timestamp desc
| take 10
Syntaxen ##timeRange## skapar en parameter. När någon frågar "visa fel från de senaste 24 timmarna" fyller agenten i timeRange = 24h.
Lägg till parametern
Definiera den parameter som din fråga använder.
- Rulla till avsnittet Parametrar .
- Välj Lägg till parameter.
- Ange följande värden:
-
Namn:
timeRange - Typ: Sträng
- Beskrivning: "Hur långt tillbaka att granska (till exempel 1h, 24h, 7d)"
-
Namn:
Parametern visas i tabellen Parametrar under din fråga.
Testa frågan
Kontrollera att frågan körs framgångsrikt innan du sparar.
- Välj Testa längst ned i formuläret.
- Ange ett testvärde för
timeRange(till exempel7d). - Kontrollera att frågan utförs framgångsrikt.
Du ser körningstiden och en grön bockmarkering som bekräftar att sökfrågan har körts. Även om frågan returnerar noll rader innebär bockmarkeringen att frågesyntaxen är giltig.
Skapa verktyget
Välj Skapa för att spara kusto-verktyget.
Lägg till verktyget i en anpassad agent
Du har skapat verktyget men inte bifogat det till en anpassad agent. Koppla verktyget så att agenten kan använda det.
- Leta reda på din anpassade agent i Canvas-vyn.
- + Välj knappen till höger om det anpassade agentkortet.
- Välj Lägg till befintliga verktyg.
- Kontrollera Kusto-verktyget i listan.
- Välj Lägg till verktyg.
Antalet verktyg på ditt anpassade agentkort ökar när du har lagt till det.
Kontrollera verktyget på lekplatsen
Testa att agenten anropar kusto-verktyget korrekt.
- Välj Test Playground i det vänstra navigeringsfältet.
- Välj din anpassade agent i listrutan.
- Fråga: "Visa fel från de senaste sju dagarna"
- Agenten anropar verktyget med
timeRange = 7d.
Du bör se agenten anropa kusto-verktyget och returnera frågeresultat. Den exakta frågan du skrev körs på ditt kluster.
Syntax för parameter
Använd ##parameterName## eller $parameterName för att markera platshållare för parametrar i dina frågor:
query: |-
AppExceptions
| where TimeGenerated > ago(##timeRange##)
| where ServiceName == "$serviceName"
Båda syntaxerna fungerar identiskt. Agenten ersätter värden vid körning.
Körningslägen
I följande tabell beskrivs tillgängliga körningslägen för Kusto-verktyg.
| Läge | Använd när |
|---|---|
Query |
Definiera frågan infogad i YAML (vanligast). |
Function |
Lagra frågelogik som en funktion i Azure Data Explorer-klustret. |
Script |
Placera frågan i en extern .kql fil. |
# Function mode example
spec:
type: KustoTool
mode: Function
function: GetRecentErrors
# Script mode example
spec:
type: KustoTool
mode: Script
file: queries/complex-analysis.kql
Exempel: Implementeringskorrelationsverktyg
Följande YAML-definition skapar ett Kusto-verktyg som korrelerar distributioner med en angiven tjänst och ett angivet tidsintervall.
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)"
Redigera eller ta bort ett verktyg
Du kan ändra eller ta bort verktyg när du har skapat dem.
Redigera
- På arbetsytan Agent väljer du verktygsnoden för att öppna informationspanelen.
- Välj ikonen redigera (penna) i panelrubriken.
- Redigeringsdialogrutan öppnas med dina aktuella inställningar. Ändra frågan, parametrarna eller anslutningsappen.
- Välj Spara.
Delete
- Välj verktygsnoden för att öppna informationspanelen.
- Välj menyn ⋯ (fler åtgärder) i panelrubriken.
- Välj Ta bort verktyg.
- Bekräfta borttagningen i dialogrutan.
Anmärkning
När du tar bort ett verktyg tar du omedelbart bort det från alla anpassade agenter som använder verktyget.