Funkcje w zapytaniach dziennika usługi Azure Monitor

Funkcja to zapytanie dziennika w usłudze Azure Monitor, które może być używane w innych zapytaniach dziennika, tak jakby było to polecenie. Funkcje umożliwiają udostępnianie rozwiązań różnym klientom, a także ponowne używanie logiki zapytań we własnym środowisku. W tym artykule opisano, jak używać funkcji i jak tworzyć własne.

Wymagane uprawnienia

  • Aby wyświetlić lub używać funkcji, musisz Microsoft.OperationalInsights/workspaces/query/*/read mieć uprawnienia do obszaru roboczego usługi Log Analytics, jak na przykład wbudowana rola czytelnika usługi Log Analytics.

  • Aby utworzyć lub edytować funkcje, musisz microsoft.operationalinsights/workspaces/savedSearches/write mieć uprawnienia do obszaru roboczego usługi Log Analytics, na przykład udostępnionego przez wbudowaną rolę czytelnika usługi Log Analytics.

Typy funkcji

Istnieją dwa typy funkcji w usłudze Azure Monitor:

  • Funkcje rozwiązania: Wstępnie utworzone funkcje są dołączone do usługi Azure Monitor. Te funkcje są dostępne we wszystkich obszarach roboczych usługi Log Analytics i nie można ich modyfikować.
  • Funkcje obszaru roboczego: Te funkcje są instalowane w określonym obszarze roboczym usługi Log Analytics. Można je modyfikować i kontrolować przez użytkownika.

Wyświetlanie funkcji

Funkcje rozwiązania i funkcje obszaru roboczego można wyświetlić w bieżącym obszarze roboczym na karcie Funkcje w okienku po lewej stronie obszaru roboczego usługi Log Analytics. Użyj filtruj, aby filtrować funkcje uwzględnione na liście. Użyj opcji Grupuj według , aby zmienić ich grupowanie. Wprowadź ciąg w polu Wyszukiwania , aby zlokalizować określoną funkcję. Zatrzymaj wskaźnik myszy na funkcji, aby wyświetlić szczegółowe informacje o nim, w tym opis i parametry.

Zrzut ekranu przedstawiający wyświetlanie funkcji.

Korzystanie z funkcji

Użyj funkcji w zapytaniu, wpisując jej nazwę z wartościami dla dowolnych parametrów tak samo, jak wpisać w poleceniu. Dane wyjściowe funkcji mogą być zwracane jako wyniki lub przesyłane potokami do innego polecenia.

Dodaj funkcję do bieżącego zapytania, klikając dwukrotnie jego nazwę lub umieszczając kursor nad nią, a następnie wybierając pozycję Użyj w edytorze. Funkcje w obszarze roboczym będą również uwzględniane w funkcji IntelliSense podczas wpisywania zapytania.

Jeśli zapytanie wymaga parametrów, podaj je przy użyciu składni function_name(param1,param2,...).

Zrzut ekranu przedstawiający używanie funkcji.

Tworzenie funkcji

Aby utworzyć funkcję na podstawie bieżącego zapytania w edytorze, wybierz pozycję Zapisz>jako funkcję.

Zrzut ekranu przedstawiający tworzenie funkcji.

Utwórz funkcję za pomocą usługi Log Analytics w Azure Portal, wybierając pozycję Zapisz, a następnie podając informacje w poniższej tabeli:

Ustawienie Opis
Nazwa funkcji Nazwa funkcji. Nazwa może nie zawierać spacji ani znaków specjalnych. Może również nie zaczynać się od podkreślenia (_), ponieważ ten znak jest zarezerwowany dla funkcji rozwiązania.
Starsza kategoria Kategoria zdefiniowana przez użytkownika ułatwia filtrowanie i funkcje grup.
Zapisz jako grupę komputerów Zapisz zapytanie jako grupę komputerów.
Parametry Dodaj parametr dla każdej zmiennej w funkcji, która wymaga wartości, gdy jest używana. Aby uzyskać więcej informacji, zobacz Parametry funkcji.

Zrzut ekranu przedstawiający szczegóły funkcji.

Parametry funkcji

Parametry można dodać do funkcji, aby po wywołaniu tej funkcji podać wartości dla określonych zmiennych. W związku z tym ta sama funkcja może być używana w różnych zapytaniach, z których każda udostępnia różne wartości parametrów. Parametry są definiowane przez następujące właściwości:

Ustawienie Opis
Typ Typ danych dla wartości.
Nazwa Nazwa parametru. Ta nazwa musi być używana w zapytaniu, aby zastąpić wartością parametru.
Wartość domyślna Wartość, która ma być używana dla parametru, jeśli nie podano wartości.

Parametry są uporządkowane podczas ich tworzenia. Parametry, które nie mają wartości domyślnej, są umieszczone przed parametrami, które mają wartość domyślną.

Uwaga

Klasyczne zasoby usługi Application Insights nie obsługują sparametryzowanych funkcji. Jeśli masz zasób usługi Application Insights oparty na obszarze roboczym, możesz utworzyć sparametryzowane funkcje z obszaru roboczego usługi Log Analytics. Aby uzyskać informacje na temat migrowania klasycznego zasobu usługi Application Insights do zasobu opartego na obszarze roboczym, zobacz Migrowanie do zasobów usługi Application Insights opartych na obszarze roboczym.

Praca z kodem funkcji

Możesz wyświetlić kod funkcji, aby uzyskać wgląd w jej działanie lub zmodyfikować kod dla funkcji obszaru roboczego. Wybierz pozycję Załaduj kod funkcji, aby dodać kod funkcji do bieżącego zapytania w edytorze.

Jeśli dodasz kod funkcji do pustego zapytania lub pierwszego wiersza istniejącego zapytania, nazwa funkcji zostanie dodana do karty. Funkcja obszaru roboczego umożliwia edytowanie szczegółów funkcji.

Zrzut ekranu przedstawiający ładowanie kodu funkcji.

Edytowanie funkcji

Edytuj właściwości lub kod funkcji, tworząc nowe zapytanie. Umieść kursor na nazwie funkcji i wybierz pozycję Załaduj kod funkcji. Wprowadź wszelkie modyfikacje, które chcesz wprowadzić w kodzie, a następnie wybierz pozycję Zapisz. Następnie wybierz pozycję Edytuj szczegóły funkcji. Wprowadź wszelkie zmiany, które chcesz wprowadzić we właściwościach i parametrach funkcji, a następnie wybierz pozycję Zapisz.

Zrzut ekranu przedstawiający edytowanie funkcji.

Przykład

Poniższa przykładowa funkcja zwraca wszystkie zdarzenia w dzienniku aktywności platformy Azure od określonej daty i pasujące do określonej kategorii.

Zacznij od następującego zapytania, używając zakodowanych na stałe wartości, aby sprawdzić, czy zapytanie działa zgodnie z oczekiwaniami.

AzureActivity
| where CategoryValue == "Administrative"
| where TimeGenerated > todatetime("2021/04/05 5:40:01.032 PM")

Zrzut ekranu przedstawiający początkowe zapytanie.

Następnie zastąp zakodowane wartości nazwami parametrów. Następnie zapisz funkcję, wybierając pozycję Zapisz>jako funkcję.

AzureActivity
| where CategoryValue == CategoryParam
| where TimeGenerated > DateParam

Zrzut ekranu przedstawiający zapisywanie funkcji.

Podaj następujące wartości właściwości funkcji:

Właściwość Wartość
Nazwa funkcji AzureActivityByCategory
Starsza kategoria Funkcje demonstracyjne

Przed zapisaniem funkcji zdefiniuj następujące parametry:

Typ Nazwa Wartość domyślna
ciąg CategoryParam "Administracja"
datetime DateParam

Zrzut ekranu przedstawiający właściwości funkcji.

Utwórz nowe zapytanie i wyświetl nową funkcję, umieszczając kursor na niej. Przyjrzyj się kolejności parametrów. Należy je określić w tej kolejności, gdy używasz funkcji.

Zrzut ekranu przedstawiający wyświetlanie szczegółów.

Wybierz pozycję Użyj w edytorze, aby dodać nową funkcję do zapytania. Następnie dodaj wartości parametrów. Nie musisz określać wartości, CategoryParam ponieważ ma wartość domyślną.

Zrzut ekranu przedstawiający dodawanie wartości parametrów.

Następne kroki

Aby uzyskać więcej informacji na temat pisania zapytań dziennika usługi Azure Monitor, zobacz Operacje na ciągach .