KQL w praktyce — analiza logów i metryk

Poznaj praktyczne zastosowania KQL w analizie logów i metryk w Microsoft Fabric. Artykuł zawiera przykłady zapytań, funkcje i narzędzia.
24 marca 2026
blog
Poziom: Średnio zaawansowany

Artykuł przeznaczony dla analityków danych, inżynierów danych, specjalistów DevOps oraz osób zajmujących się monitoringiem i bezpieczeństwem w środowiskach Microsoft Fabric/Azure, którzy chcą praktycznie używać KQL do analizy logów i metryk.

Z tego artykułu dowiesz się

  • Jaką rolę pełni KQL w Microsoft Fabric i do jakich typów danych jest wykorzystywany?
  • Jak wygląda podstawowa składnia KQL (operatory, filtry) i jak tworzyć typowe zapytania do analizy logów?
  • Jak monitorować metryki oraz stosować zaawansowane funkcje KQL i narzędzia do pracy z tym językiem?

Wprowadzenie do języka KQL i jego roli w Microsoft Fabric

Język zapytań Kusto (KQL) jest wyspecjalizowanym językiem zaprojektowanym przez Microsoft do analizy dużych zbiorów danych telemetrycznych, takich jak logi i metryki. Powstał jako część platformy Azure Monitor i Azure Data Explorer, jednak zyskał na znaczeniu również w kontekście Microsoft Fabric — zintegrowanego środowiska analitycznego łączącego dane, raportowanie i przetwarzanie w jednym miejscu.

W Microsoft Fabric KQL pełni kluczową rolę w eksploracji danych telemetrycznych pochodzących z różnych źródeł, takich jak aplikacje, systemy operacyjne, infrastruktura chmurowa czy urządzenia IoT. Dzięki swojej składni przypominającej SQL, ale zoptymalizowanej pod kątem analizy czasowej i przetwarzania strumieniowego, KQL umożliwia szybkie wyszukiwanie, agregowanie i korelowanie informacji zawartych w logach oraz metrykach.

Jedną z głównych zalet KQL jest jego wydajność przy analizie danych w czasie rzeczywistym oraz elastyczność w budowaniu złożonych zapytań, które pozwalają na szybkie identyfikowanie anomalii, trendów i zależności w danych. W Microsoft Fabric KQL jest wykorzystywany w wielu komponentach, m.in. w obszarach monitorowania, bezpieczeństwa i zarządzania środowiskiem danych.

W praktyce KQL znajduje zastosowanie zarówno u inżynierów danych, jak i analityków czy specjalistów ds. DevOps, którzy potrzebują wglądu w działanie systemów i aplikacji. Dzięki integracji z interfejsami graficznymi oraz narzędziami automatyzującymi pracę z danymi, język ten stał się nieodzownym elementem współczesnego podejścia do analizy operacyjnej w chmurze i środowiskach hybrydowych.

Podstawowa składnia KQL – zapytania, operatory i filtry

Język Kusto Query Language (KQL) został zaprojektowany z myślą o szybkim i skutecznym przeszukiwaniu, analizowaniu i przetwarzaniu dużych zbiorów danych telemetrycznych, takich jak logi i metryki. Jego składnia jest zwięzła, deklaratywna i przypomina podejście znane z języków zapytań takich jak SQL, choć różni się od niego strukturą i mechanizmem działania.

Podstawą działania KQL są zapytania, które składają się z sekwencji operacji wykonywanych na tabelach danych. Każde zapytanie zaczyna się od wskazania źródła danych – najczęściej tabeli – a następnie stosowane są kolejne operatory, które przekształcają, filtrują lub agregują dane.

Najczęściej wykorzystywane elementy składni KQL to:

  • Zapytania: Rozpoczynają się od wybrania tabeli i mogą zawierać szereg operatorów przetwarzających dane krok po kroku, np. filtrowanie, sortowanie, grupowanie czy agregacje.
  • Operatory: KQL oferuje szereg operatorów służących do transformacji danych, takich jak where (filtrowanie), summarize (agregacja), project (wybór kolumn), order by (sortowanie) czy extend (dodawanie nowych kolumn).
  • Filtry: Filtry w KQL są stosowane najczęściej przy użyciu operatora where i pozwalają zawęzić wyniki na podstawie wartości w określonych kolumnach, np. czasu logowania, poziomu błędu lub identyfikatora użytkownika.

KQL jest językiem niemodyfikującym danych — jego zapytania służą wyłącznie do odczytu i analizy. Dzięki temu użytkownicy mogą bezpiecznie eksplorować dane bez ryzyka ich zmiany lub utraty.

Z doświadczenia szkoleniowego Cognity wiemy, że ten temat budzi duże zainteresowanie – również wśród osób zaawansowanych.

Znajomość składni KQL jest kluczowa do efektywnego korzystania z Microsoft Fabric i środowisk opartych na platformie Azure. Umożliwia szybkie uzyskiwanie odpowiedzi na pytania dotyczące kondycji systemów, wydajności aplikacji czy aktywności użytkowników.

Analiza logów: przykłady zapytań i najlepsze praktyki

Analiza logów to jedno z najczęstszych zastosowań Kusto Query Language (KQL), zwłaszcza w środowiskach opartych na Microsoft Fabric. Dzięki swojej ekspresywności i wysokiej wydajności, KQL pozwala szybko wyodrębniać istotne informacje z ogromnych zbiorów danych rejestrowanych przez różne usługi i aplikacje.

Logi mogą zawierać dane o błędach, ostrzeżeniach, działaniach użytkowników czy też wydajności systemów. Ich analiza umożliwia diagnozowanie problemów, monitorowanie zachowań i wspieranie podejmowania decyzji opartych na danych. KQL doskonale nadaje się do operowania na tego typu danych dzięki swoim możliwościom filtrowania, agregowania i łączenia informacji. Dla osób, które chcą pogłębić swoje kompetencje w zakresie analizy danych w chmurze, polecamy Kurs Język SQL dla Azure SQL - praca w zakresie analizy i raportowania.

Typowe przypadki użycia

  • Identyfikacja błędów aplikacyjnych na podstawie logów serwera.
  • Wyszukiwanie nietypowej aktywności użytkownika w systemie.
  • Śledzenie zdarzeń bezpieczeństwa, takich jak próby logowania lub zmiany uprawnień.
  • Analiza trendów działania usług w czasie – np. wzrost liczby zapytań API.

Przykładowe zapytania KQL

Poniżej przedstawiono kilka podstawowych przykładów zapytań, które mogą być wykorzystywane do analizy logów:

// Wyszukiwanie błędów z ostatnich 24 godzin
LogiAplikacji
| where Level == "Error" and Timestamp > ago(24h)
// Liczenie liczby logowań wg użytkownika
LogiBezpieczenstwa
| where EventType == "Logon"
| summarize LiczbaLogowan = count() by UserName
// Wykrywanie wyjątków zawierających konkretne słowo kluczowe
LogiSystemowe
| where Message has "Exception" and Message has "Timeout"

Najlepsze praktyki

Aby analiza logów z wykorzystaniem KQL była skuteczna i wydajna, warto przestrzegać poniższych zaleceń:

  • Używaj operatorów warunkowych z rozwagą – ogranicz zakres danych jak najwcześniej w zapytaniu, np. za pomocą where i ago().
  • Przemyśl agregacje – stosuj summarize tylko tam, gdzie rzeczywiście potrzebujesz danych zagregowanych.
  • Unikaj nadmiarowego łączenia tabel – łączenie danych (join) może być kosztowne obliczeniowo, stosuj je tylko tam, gdzie jest to uzasadnione.
  • Testuj i optymalizuj zapytania – korzystaj z polecenia take, aby ograniczyć liczbę wyników podczas testowania zapytania.
  • Dbaj o czytelność – stosuj komentarze i wcięcia, szczególnie w bardziej złożonych zapytaniach.

Analiza logów z użyciem KQL to potężne narzędzie w rękach inżynierów odpowiedzialnych za wydajność, bezpieczeństwo i niezawodność systemów. W połączeniu z dobrymi praktykami, KQL pozwala przekształcać logi w wartościowe informacje analityczne.

💡 Pro tip: Zacznij zapytanie od maksymalnego zawężenia danych (np. `where Timestamp > ago(24h)` i filtr po `Level`), a dopiero potem dodawaj `summarize` lub `join` — to najszybsza droga do wydajnych analiz logów. Podczas strojenia używaj `take` i stopniowo rozbudowuj pipeline, żeby szybko wychwycić kosztowne kroki.

Monitorowanie metryk z wykorzystaniem KQL

Kontrola stanu infrastruktury i aplikacji wymaga nie tylko analizy logów, ale również ciągłego monitorowania metryk – takich jak wykorzystanie CPU, czas odpowiedzi serwera, liczba aktywnych użytkowników czy opóźnienia operacyjne. Język Kusto Query Language (KQL) doskonale sprawdza się w analizie obu tych typów danych, umożliwiając szybkie tworzenie zapytań oraz wizualizację wyników w czasie rzeczywistym.

W kontekście Microsoft Fabric, metryki są często zbierane i przechowywane w tabelach telemetrycznych (np. Perf, InsightsMetrics, AzureDiagnostics), a KQL umożliwia ich wydajne filtrowanie, agregację i korelację z innymi źródłami danych. W Cognity mamy doświadczenie w pracy z zespołami, które wdrażają to rozwiązanie – dzielimy się tym także w artykule.

Logi vs. metryki – różnice funkcjonalne

Cecha Logi Metryki
Rodzaj danych Zdarzenia, komunikaty systemowe Pomiar ilościowy, liczby ciągłe lub dyskretne
Częstotliwość Asynchroniczna, nieregularna Regularna (np. co kilka sekund)
Typowe zastosowanie Debugowanie, analiza błędów Monitorowanie wydajności, alertowanie
Przykłady tabel AppTraces, Event Perf, InsightsMetrics

Przykład użycia KQL do monitorowania metryk

Dzięki KQL możemy w prosty sposób analizować dane metryczne, np. średnie zużycie CPU w ostatnich 30 minutach:

Perf
| where ObjectName == "Processor" and CounterName == "% Processor Time" and InstanceName == "_Total"
| where TimeGenerated > ago(30m)
| summarize AvgCPU = avg(CounterValue) by bin(TimeGenerated, 5m)

W zapytaniu powyżej dane są agregowane w 5-minutowych przedziałach czasowych, co pozwala na tworzenie wykresów trendów lub uruchamianie alertów przy przekroczeniu wartości progowych.

Typowe scenariusze monitoringu metryk

  • Śledzenie zużycia zasobów systemowych (CPU, RAM, dysk)
  • Analiza obciążenia aplikacji w czasie rzeczywistym
  • Wykrywanie anomalii i automatyczne powiadomienia
  • Porównywanie metryk różnych instancji usług

Monitorowanie metryk z wykorzystaniem KQL umożliwia nie tylko lepsze zrozumienie działania systemów, ale także proaktywne reagowanie na potencjalne problemy zanim wpłyną one na użytkowników końcowych.

Scenariusze użycia KQL w Microsoft Fabric

Język zapytań KQL (Kusto Query Language) znajduje szerokie zastosowanie w ekosystemie Microsoft Fabric, oferując potężne narzędzie do analizy danych telemetrycznych, logów i metryk. Jego elastyczność i czytelna składnia umożliwiają szybkie uzyskanie wglądu w stan systemów, aplikacji i infrastruktury, co czyni go cennym elementem w codziennej pracy zespołów IT, analityków bezpieczeństwa oraz deweloperów.

Poniżej zestawiono główne obszary zastosowań KQL w Microsoft Fabric:

Obszar zastosowania Opis
Monitorowanie wydajności aplikacji Analiza metryk działania aplikacji, takich jak czas odpowiedzi, liczba żądań czy błędów HTTP. Umożliwia szybkie wykrywanie anomalii i trendów.
Bezpieczeństwo i analiza incydentów Wyszukiwanie nietypowej aktywności użytkowników, prób nieautoryzowanego dostępu lub skanowania portów. KQL pozwala korelować zdarzenia z wielu źródeł.
Diagnostyka problemów Identyfikacja przyczyn błędów w oparciu o logi aplikacyjne, systemowe i infrastrukturalne. Możliwość filtrowania zdarzeń po czasie, źródle lub typie zdarzenia.
Audyt i zgodność Tworzenie zapytań audytowych np. śledzenie operacji administracyjnych, dostępu do danych lub zmian konfiguracyjnych.
Raportowanie i wizualizacja Generowanie wykresów i zestawień w Power BI lub w interfejsie Microsoft Fabric z wykorzystaniem wyników zapytań KQL.

Przykład prostego zapytania służącego do zliczenia błędów aplikacji według kodu statusu:

AppLogs
| where Level == "Error"
| summarize count() by StatusCode

Takie zapytania stanowią bazę do budowy bardziej zaawansowanych mechanizmów monitoringu, alertowania czy dashboardów analitycznych. KQL pozwala użytkownikom z różnych działów organizacji uzyskać spersonalizowany i szybki dostęp do informacji ukrytych w danych telemetrycznych, co ma kluczowe znaczenie dla optymalizacji działania usług i infrastruktury w Microsoft Fabric. Osobom chcącym pogłębić swoją wiedzę w zakresie analizy danych i zarządzania bazami na platformie chmurowej polecamy Kurs T-SQL na Microsoft Azure - wydajne zarządzanie serwerami baz danych i efektywne wykorzystanie możliwości chmury Microsoft Azure.

Przydatne funkcje i operacje zaawansowane w KQL

Język KQL (Kusto Query Language) oferuje szereg zaawansowanych funkcji i operacji, które znacząco rozszerzają możliwości analizy danych. Są one szczególnie przydatne w przypadku złożonych scenariuszy przetwarzania logów, metryk oraz zdarzeń telemetrycznych. Poniżej przedstawiamy przegląd wybranych mechanizmów, które warto znać na etapie pracy z bardziej zaawansowanymi analizami.

  • Agregacje i funkcje okna (window functions) – umożliwiają analizę zmian w danych w czasie, na przykład poprzez obliczanie średnich ruchomych, sum skumulowanych czy porównań wartości między rekordami. Są przydatne w analizie trendów i anomalii.
  • Join i union – operacje łączenia tabel pozwalają na korelację danych z różnych źródeł, co jest szczególnie istotne przy analizie złożonych systemów. Dla większej wydajności warto znać różnice pomiędzy typami joinów, jak innerjoin, leftouter czy rightanti.
  • Parsing danych – funkcje takie jak parse, extract czy parse_json umożliwiają rozbijanie złożonych pól tekstowych (np. wiadomości logów) na bardziej użyteczne komponenty.
  • Funkcje skalara i tablicowe – wiele wbudowanych funkcji umożliwia manipulację na ciągach, datach, liczbach oraz tablicach, np. split(), substring(), arraylength(), co pozwala na precyzyjne przekształcenia danych wejściowych.
  • Własne funkcje użytkownika – KQL pozwala na definiowanie własnych funkcji z użyciem let, co zwiększa możliwość wielokrotnego wykorzystywania logiki zapytań w różnych kontekstach.
  • Operacje czasowe – operacje takie jak ago(), datetime_diff() czy bin() są kluczowe podczas pracy z danymi czasowymi, np. przy agregacji zdarzeń w przedziałach czasowych.
  • Materializacja danych – funkcja materialize() pozwala zoptymalizować wielokrotne odniesienia do tego samego podzapytania, co może znacząco poprawić wydajność.

Porównanie wybranych funkcji:

Funkcja/Operacja Zastosowanie Przykład użycia
parse Rozbijanie tekstu na pola parse Message with "User:" UserId ", Action:" Action
join Łączenie danych z różnych tabel TableA | join kind=inner TableB on Key
summarize Agregacja danych summarize Count=count() by Level
let Definicja zmiennych i funkcji let threshold = 100;
bin Grupowanie czasowe summarize count() by bin(Timestamp, 1h)

Dzięki tym technikom KQL staje się potężnym narzędziem nie tylko do eksploracyjnej analizy danych, ale także do budowania zaawansowanych raportów, monitoringu i automatycznego wykrywania anomalii. Ich znajomość pozwala na optymalizację zapytań oraz lepsze wykorzystanie możliwości środowiska Microsoft Fabric.

💡 Pro tip: Gdy to samo podzapytanie wykorzystujesz więcej niż raz (np. przed `join` i w kilku agregacjach), opakuj je w `materialize()` lub `let`, aby uniknąć ponownego liczenia i przyspieszyć całość. Przy danych tekstowych najpierw wydobądź pola przez `parse`/`extract`/`parse_json`, a dopiero potem agreguj — unikniesz błędów i zyskasz czytelność.

Narzędzia i środowiska do pracy z KQL

Kusto Query Language (KQL) jest wykorzystywany głównie w środowiskach analizy danych w chmurze Microsoft, gdzie pełni kluczową rolę w eksploracji i przetwarzaniu danych telemetrycznych, logów oraz metryk. Aby efektywnie korzystać z KQL, dostępnych jest kilka narzędzi i środowisk, które wspierają jego składnię oraz umożliwiają wizualizację i analizę wyników zapytań.

Podstawowym środowiskiem pracy z KQL jest Azure Data Explorer, czyli platforma analityczna przeznaczona do szybkiego przetwarzania dużych ilości danych. Wbudowany interfejs zapytań pozwala użytkownikom uruchamiać zapytania KQL bezpośrednio w przeglądarce, oferując podpowiedzi składni, podświetlanie składni oraz możliwość wizualizacji wyników.

Innym popularnym narzędziem jest Log Analytics w ramach Azure Monitor, które pozwala na analizę logów infrastruktury, aplikacji oraz usług. Dzięki integracji z KQL, użytkownicy mogą tworzyć zaawansowane zapytania filtrujące, agregujące i korelujące różne źródła danych logów.

KQL znalazł również zastosowanie w Microsoft Sentinel, narzędziu do zarządzania bezpieczeństwem i reagowania na incydenty. Tutaj KQL służy do budowania reguł detekcji, analizowania zdarzeń bezpieczeństwa oraz tworzenia alertów opartych na danych z różnych źródeł.

Dla użytkowników preferujących pracę lokalną lub zintegrowane środowiska programistyczne, dostępna jest także wtyczka Azure Data Explorer dla Visual Studio Code. Umożliwia ona edytowanie i wykonywanie zapytań KQL bezpośrednio z poziomu edytora, co ułatwia integrację z istniejącymi projektami i narzędziami deweloperskimi.

Ważnym aspektem ekosystemu KQL są również interfejsy API, które umożliwiają programistyczne wykonywanie zapytań i integrację wyników z innymi systemami. Dzięki temu KQL może być wykorzystywany nie tylko przez analityków, ale też przez zespoły DevOps i programistów w ramach automatyzacji i monitorowania.

Każde z opisanych środowisk oferuje inne możliwości i scenariusze użycia, co pozwala na elastyczne dopasowanie narzędzia do potrzeb organizacji oraz charakterystyki analizowanych danych.

Podsumowanie i dalsze źródła nauki

Język Kusto Query Language (KQL) to niezwykle elastyczne i wydajne narzędzie do analizy danych telemetrycznych, takich jak logi i metryki, w środowisku Microsoft Fabric. Dzięki swojej prostej, ale potężnej składni, KQL umożliwia szybkie filtrowanie, agregowanie i korelowanie danych, co czyni go nieocenionym narzędziem w pracy analityków, inżynierów DevOps i specjalistów ds. bezpieczeństwa.

W odróżnieniu od języków zapytań znanych z relacyjnych baz danych, KQL został zaprojektowany z myślą o interaktywnej analizie dużych wolumenów danych w czasie zbliżonym do rzeczywistego. Jego zastosowania obejmują zarówno analizę logów operacyjnych i diagnostycznych, jak i monitorowanie metryk systemowych i aplikacyjnych.

Aby pogłębić wiedzę na temat KQL i jego praktycznych zastosowań, warto zapoznać się z oficjalną dokumentacją Microsoft, dostępną w serwisie Microsoft Learn. Szczególnie przydatne mogą być również warsztaty i ćwiczenia praktyczne dostępne w Azure Data Explorer Demo oraz kursy online publikowane przez społeczność technologiczną i samą firmę Microsoft.

Regularna praca z rzeczywistymi danymi i eksperymentowanie z różnymi zapytaniami to najlepsza droga do biegłego opanowania KQL i pełnego wykorzystania jego możliwości w codziennej praktyce analitycznej. W Cognity łączymy teorię z praktyką – dlatego ten temat rozwijamy także w formie ćwiczeń na szkoleniach.

icon

Formularz kontaktowyContact form

Imię *Name
NazwiskoSurname
Adres e-mail *E-mail address
Telefon *Phone number
UwagiComments