Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Narzędzia Kusto ułatwiają przekształcanie najlepszych zapytań KQL w narzędzia do wielokrotnego użytku, sparametryzowane. Agent uruchamia dokładne zapytanie, które piszesz bez interpretacji ani odmiany. Wiedza twojego zespołu staje się udostępnioną możliwością.
Wskazówka
- Standaryzacja zapytań dotyczących zdarzeń — to samo sprawdzone KQL jest uruchamiane za każdym razem, bez wariacji.
- Przekształcanie wiedzy plemiennej w narzędzia wielokrotnego użytku — twoje najlepsze zapytania stają się funkcjami udostępnionymi.
- Zapytanie z parametrami — użytkownicy pytają w zwykły język, a agent automatycznie podstawia wartości.
- Testowanie przed wdrożeniem — sprawdź poprawność wykonywania zapytań przed dodaniem do agentów niestandardowych.
Problem: każdy pisze własne zapytania
Podczas zdarzeń starsi inżynierowie zespołu korzystają z sprawdzonych w praktyce zapytań, które szybko znajdują problemy. Ale ta wiedza pozostaje w ich głowach, w wątkach na Slacku i w osobistych notesach. Gdy nie są na wezwanie, mniej doświadczeni ratownicy marnują czas:
- Ponowne odkrywanie zapytań od podstaw, często z błędami
- **Pisanie zbyt szerokich zapytań, które zwracają zbyt dużo danych lub brakuje przypadków brzegowych
- Brak kolumn krytycznych , które ujawniłyby główną przyczynę
- Używanie nieprawidłowych okien czasowych lub zapominanie o filtrowaniu według środowiska
Każdy inżynier wykonuje zapytania o te same dane inaczej. Jeden z inżynierów znajduje problem w ciągu pięciu minut. Inny inżynier spędza 30 minut, krążąc w kółko z ad-hoc KQL.
Jak narzędzia Kusto rozwiązują ten problem
Narzędzia Kusto umożliwiają zapisywanie najlepszych zapytań zespołu jako sparametryzowanych, deterministycznych narzędzi. Agent uruchamia dokładnie zdefiniowane zapytanie, dzięki czemu wiedza twojego zespołu staje się funkcją udostępnioną.
| przed | po |
|---|---|
| Starszy inżynier zapisuje zapytanie z pamięci | Zapytanie jest zapisywane jako narzędzie, każdy może go używać |
| Przewidywania dyżurów w zakresach czasowych i filtrach | Parametry wskazują, co jest potrzebne. |
| Każdy respondent dostaje inne wyniki | To samo zapytanie jest uruchamiane za każdym razem |
| Sprzężenia złożone muszą być zapamiętane | Wbudowana logika wieloetapowa |
Zamiast prosić inżyniera na wezwanie o "ustalenie, jak wykonywać zapytania dotyczące dzienników błędów", pytają agenta:
Show me errors from the last 24 hours
Agent używa gotowego narzędzia z poleceniem timeRange=24h, zwracając dokładnie kolumny i filtry potrzebne zespołowi.
Jak to działa
Wykonaj następujące kroki, aby utworzyć narzędzie Kusto i użyć go:
- Połącz: dodaj klaster usługi Azure Data Explorer jako łącznik.
-
Utwórz: zdefiniuj zapytania z parametrami przy użyciu
##parameterName##składni. - Test: Sprawdź, czy zapytanie jest wykonywane poprawnie w portalu.
- Dołącz: dodaj narzędzie do agenta programowego.
- Użyj: Agent wywołuje narzędzie, gdy pytania użytkownika pasują do opisu narzędzia.
Dwa podejścia do zapytań dotyczących danych
Po dodaniu łącznika usługi Azure Data Explorer wybierz między deterministycznymi lub elastycznymi zapytaniami.
| Metoda | Opis | Użyj, gdy |
|---|---|---|
| Łącznik zapytań bazy danych | Agent używa wstępnie zdefiniowanych zapytań (narzędzia Kusto) | Potrzebujesz deterministycznych, dokładnych zapytań |
| Łącznik indeksowania bazy danych | Agent generuje zapytania, ucząc się schematu | Potrzebujesz elastycznych zapytań ad hoc |
Tworzenie narzędzia Kusto
Twórz narzędzia w Konstruktorze>Kanwy Agenta>Twórz>Narzędzie>Narzędzie Kusto. Każde narzędzie wymaga nazwy, opisu, łącznika, bazy danych i zapytania KQL z opcjonalnymi ##paramName## symbolami zastępczymi parametrów.
Aby zapoznać się z pełnym przewodnikiem z zrzutami ekranu, zobacz Samouczek: tworzenie narzędzia Kusto.
Dodawanie narzędzia do agenta niestandardowego
Po utworzeniu narzędzia dołącz go do agenta niestandardowego za pomocą przycisku widoku kanwy +>Dodaj istniejące narzędzia.
Wymagania wstępne
Przed utworzeniem narzędzi Kusto spełnij następujące wymagania.
Uprawnienia usługi Azure Data Explorer
Tożsamość zarządzana agenta wymaga roli AllDatabasesViewer w klastrze usługi Azure Data Explorer.
Użyj następującego polecenia zarządzania KQL:
.add cluster AllDatabasesViewer ('aadapp=<MANAGED_IDENTITY_CLIENT_ID>;<TENANT_ID>')
Alternatywnie w witrynie Azure Portal przejdź do klastra usługi Azure Data Explorer. Wybierz Bezpieczeństwo + sieci>Uprawnienia>Dodaj>AllDatabasesViewer.
Łącznik Kusto
Przed utworzeniem narzędzi skonfiguruj łącznik ADX. Podczas dodawania łącznika:
- Wybierz Łącznik zapytań bazy danych dla wstępnie zdefiniowanych zapytań, a nie nauki schematu.
- Użyj pełnego adresu URL klastra, w tym bazy danych:
https://<CLUSTER_NAME>.<REGION>.kusto.windows.net/<DATABASE_NAME>.
Zapytania sparametryzowane
Uczyń swoje narzędzia elastycznymi za pomocą parametrów, używając składni ##parameterName##.
AppEvents
| where TimeGenerated > ago(##timeRange##)
| where EventLevel == "Error"
| where Message contains "##searchPattern##"
| take 100
Gdy agent używa tego narzędzia, zastępuje parametry na podstawie danych wejściowych użytkownika.
| Użytkownik mówi | Zamienniki agenta |
|---|---|
| "błędy z ostatniego dnia" | timeRange=24h |
| "Znajdź wyjątki wskaźnika o wartości null" | searchPattern=NullPointerException |
Parametry pozwalają jednemu narzędziu obsłużyć wiele odmian tego samego pytania.
Tryby wykonywania (YAML)
Podczas definiowania narzędzi w języku YAML wybierz tryb wykonywania.
| Tryb | Opis | Użyj, gdy |
|---|---|---|
Query |
Wykonuje wbudowane zapytanie KQL | Najczęstszą. Zapytanie jest definiowane bezpośrednio w języku YAML. |
Function |
Wywołuje funkcję przechowywaną w klastrze | Logika zapytań jest definiowana w usłudze Azure Data Explorer jako funkcja |
Script |
Uruchamia skrypt KQL z pliku zewnętrznego | Złożone zapytania wielostatementowe |
# Query mode (most common)
spec:
mode: Query
query: |-
AppEvents | take 10
# Function mode
spec:
mode: Function
function: GetRecentErrors
Najlepsze praktyki dotyczące zapytań
Postępuj zgodnie z tymi zaleceniami podczas pisania zapytań narzędzi Kusto.
Użyj odpowiednich zakresów czasu — ustawienie domyślne dla ostatnich danych:
| where TimeGenerated > ago(1h)
Dodaj limity wyników — zapobiegaj przeciążeniu danych wyjściowych:
| take 100
Uwzględnij przydatne projekcje — zwraca tylko kolumny, których potrzebuje agent:
| project TimeGenerated, Name, DurationMs, ResultCode
Kiedy używać narzędzi Kusto, czy zapytań ad hoc
Wybierz odpowiednie podejście na podstawie danego scenariusza.
| Scenario | Narzędzia Kusto | Zapytania ad hoc |
|---|---|---|
| Standaryzowane kroki runbooka | Yes | Nie. |
| Powtarzalne wzorce badania | Yes | Nie. |
| Złożone zapytania z wieloma łączeniami | Yes | Nie. |
| Eksplorowanie nieznanych danych | Nie. | Yes |
| Jednorazowe badania | Nie. | Yes |
Wprowadzenie
| Resource | Czego się nauczysz |
|---|---|
| Tworzenie narzędzia Kusto | Przewodnik krok po kroku z zrzutami ekranu |
Treści powiązane
| Zdolność | Co dodaje |
|---|---|
| Agenci niestandardowi | Przypisywanie narzędzi do niestandardowych, wyspecjalizowanych agentów |
| Łączniki | Łączenie innych źródeł danych |