Wizualizacja metryk Influx za pomocą Grafany
Zaktualizowaliśmy ten tekst dla Ciebie!
Data aktualizacji: 22.01.2025
Autor aktualizacji: Piotr Merynda
Grafana to narzędzie do wizualizacji danych i monitorowania, umożliwiające wyświetlanie metryk przechowywanych na przykład w InfluxDB w formie wykresów. Daje możliwość tworzenia dashboardów łączących wykresy lub histogramy w połączone grupy. Dzięki wbudowanej obsłudze InfluxDB automatycznie obsługuje dostarczone funkcje agregacji. Edytor zapytań obsługuje również uzupełnianie tagów lub pól.
Oto kilka kroków, które należy wykonać, aby wizualizować dane:
Pomiar InfluxDB
Musisz zacząć od danych, które chcesz pokazać na wykresie. Jako przykład użyjmy następującego pomiaru o nazwie „simple_measurement” w bazie danych „test”
Ma ona 4 tagi i 2 pola
Źródło danych Grafana
Następnym krokiem po utworzeniu danych do wyświetlenia jest zdefiniowanie ich w Grafanie jako źródła danych. W aplikacji Grafana przejdź do Configuration->Data Sources i znajdź przycisk „Add data source”.
Następnie należy wybrać typ InfluxDB, wpisać nazwę i podać szczegóły InfluxDB oraz dane uwierzytelniające.
Na koniec należy podać nazwę bazy danych i dane uwierzytelniające.
Kliknij przycisk, aby zweryfikować poprawność wprowadzonych informacji.
Grafana dashboard
Ostatnim krokiem jest utworzenie dashboardu z panelem wykresów. Po kliknięciu przycisku „Home” znajduje się przycisk „New dashboard”, który przeniesie Cię do kreatora dashboardów, gdzie możesz dodać panel z odpowiednim wykresem – Graph.
Następnie należy zdefiniować prawidłowe źródło danych i zapytania w edytorze wykresów, aby wyświetlić określone dane – value_1 i value_2 (pola).
Jest to tylko podstawowy wykres pokazujący wszystkie rekordy z bazy danych bez żadnego zawężenia. Jeśli chcesz mieć konkretny wykres z ograniczonymi danymi, musisz użyć klauzuli „where” w edytorze wykresów i wybrać tag i wartość tagu (np. customer=’jlabs’ lub version=’1.0′).
Powyższe kroki są proste, ale nieefektywne w przypadku większej liczby dashboardów lub wykresów do utworzenia. Grafana udostępnia również API do zarządzania swoją zawartością – dodawania lub modyfikowania dashboardów, dodawania paneli itp. Jest ono dostępne pod adresem.
http://<grafana_url>:<grafana_port>/api/dasboards/db
gdzie można wysłać żądanie POST z treścią JSON zawierającą definicję dashboardu. Aby osiągnąć wyniki podobne do ręcznych kroków, należy utworzyć JSON.
json = {
"dashboard": {
"id": None,
"sharedCrosshair": True,
"title": 'simple_measurement_2',
"timezone": "browser",
"panels": [{
"datasource": "simple_measurement",
"fill": 1,
"gridPos": {
"h": 9,
"w": 12,
"x": 0,
"y": 0},
"id": 1,
"span": 12,
"targets": [{
"alias": "value_1_other",
"groupBy": [{
"params": ["$__interval"],
"type": "time"
}, {
"params": ["null"],
"type": "fill"}],
"hide": False,
"measurement": "simple_measurement",
"orderByTime": "ASC",
"policy": "default",
"refId": "A",
"resultFormat": "time_series",
"select": [[{
"params": ["value_1"],
"type": "field"
}, {
"params": [],
"type": "mean"}]],
"tags": [{
"key": "customer",
"operator": "=",
"value": "other"}]}],
"title": "simple_measurement",
"type": "graph",
"xaxis": {"mode": "time", "show": True},
"yaxes": [{"show": True, "logBase": 1, "format": "ms"},
{"show": True, "logBase": 1, "format": "short"}]}],
"schemaVersion": 6,
"version": 2},
"overwrite": True
}
Odpowiedź POST będzie zawierać tak zwany identyfikator dashboardu, który jest potrzebny do zarządzania lub usuwania tego dashboardu. Aby usunąć dashboard należy wysłać żądanie DELETE do:
http://<grafana_url>:<grafana_port>/api/dasboards/uid/<dashboard_uid>
Poznaj mageek of j‑labs i daj się zadziwić, jak może wyglądać praca z j‑People!
Skontaktuj się z nami


