{"id":538,"date":"2026-10-08T20:30:00","date_gmt":"2026-10-08T18:30:00","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/?page_id=538"},"modified":"2026-09-25T15:07:52","modified_gmt":"2026-09-25T13:07:52","slug":"bare-metal-performance-diagnostics-kokpit-prometheus-i-grafana","status":"publish","type":"post","link":"https:\/\/www.lukaswojcik.com\/blog\/pl\/raspberry-pi-pl\/tutorials-pl-raspberry-pi-pl\/bare-metal-performance-diagnostics-kokpit-prometheus-i-grafana\/","title":{"rendered":"Bare-Metal Performance Diagnostics: Kokpit Prometheus i Grafana dla Raspberry Pi"},"content":{"rendered":"<h2>Przegl\u0105d architektury: Podatno\u015bci sprz\u0119towe komputer\u00f3w jednop\u0142ytkowych<\/h2>\n<p>Komputery jednop\u0142ytkowe ARM, takie jak Raspberry Pi 4 i 5, funkcjonuj\u0105 pod rygorystycznymi ograniczeniami termicznymi oraz wej\u015bcia\/wyj\u015bcia (I\/O). D\u0142ugotrwa\u0142e obci\u0105\u017cenia kontenerowe, cz\u0119ste cykle zapisu baz danych i intensywny ruch sieciowy nierzadko prowadz\u0105 do cichej degradacji sprz\u0119tu. Wysokie temperatury uk\u0142adu SoC wyzwalaj\u0105 dynamiczny d\u0142awienie termiczne (thermal throttling) przez oprogramowanie uk\u0142adowe Broadcom, co obni\u017ca taktowanie rdzeni ARM bez generowania jawnych b\u0142\u0119d\u00f3w w przestrzeniach aplikacji u\u017cytkownika. Podobnie, ci\u0105g\u0142e operacje losowego zapisu na kartach MicroSD lub dyskach SSD pod\u0142\u0105czonych przez USB prowadz\u0105 do wyczerpania blok\u00f3w pami\u0119ci flash, zator\u00f3w I\/O i ostatecznego uszkodzenia systemu plik\u00f3w.<\/p>\n<p>Wdro\u017cenie <strong>potoku diagnostyki wydajno\u015bci Bare-Metal<\/strong> z wykorzystaniem platform <strong>Prometheus<\/strong> i <strong>Grafana<\/strong> przekszta\u0142ca nieprzejrzyste stany sprz\u0119towe w mierzalne szeregi czasowe. Standardowy demon <code>node_exporter<\/code> w po\u0142\u0105czeniu ze specjalizowanym skryptem zbieraj\u0105cym dane plikowe (textfile collector) pozwala pobiera\u0107 kluczowe wska\u017aniki fizyczne Raspberry Pi co 15 sekund, analizowa\u0107 je pod k\u0105tem przekroczenia prog\u00f3w i wizualizowa\u0107 w kokpitach czasu rzeczywistego. Chodzi o temperatury rdzenia SoC, flagi spadku napi\u0119cia, taktowanie, nasycenie pami\u0119ci RAM oraz czasy oczekiwania I\/O dysku; warto\u015bci odczytywane poleceniem <code>vcgencmd<\/code> s\u0105 od\u015bwie\u017cane przez zaplanowany skrypt kolektora raz na minut\u0119.<\/p>\n<figure class=\"lw-diagram\">\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/diagrams\/rpi-prometheus-grafana-pipeline-pl.png\" width=\"1120\" height=\"470\" alt=\"Przep\u0142yw danych od odczyt\u00f3w vcgencmd przez kolektor plikowy i Node Exporter do Prometheusa i Grafany\"><figcaption>Przep\u0142yw danych w potoku diagnostycznym: warto\u015bci z <code>vcgencmd<\/code> trafiaj\u0105 przez kolektor plikowy, Node Exporter i Prometheusa do Grafany \u2014 i wywo\u0142uj\u0105 alert powy\u017cej 75 \u00b0C lub przy ustawionej bitmasce throttlingu.<\/figcaption><\/figure>\n<h2>Instrukcja wdro\u017cenia krok po kroku<\/h2>\n<h3>Krok 1: Wdro\u017cenie Node Exportera i skryptu Textfile Collector<\/h3>\n<p>W celu gromadzenia standardowych danych telemetrycznych j\u0105dra Linux oraz w\u0142asnych statystyk sprz\u0119towych Broadcom, nale\u017cy zainstalowa\u0107 narz\u0119dzie <code>node_exporter<\/code> i utworzy\u0107 dedykowany katalog na pliki metryk:<\/p>\n<pre><code>apt update &amp;&amp; apt install -y prometheus-node-exporter\nmkdir -p \/var\/lib\/node_exporter\/textfile_collector\nchmod 755 \/var\/lib\/node_exporter\/textfile_collector<\/code><\/pre>\n<p>Utworzenie skryptu pow\u0142oki w \u015bcie\u017cce <code>\/opt\/scripts\/rpi-hardware-metrics.sh<\/code>, kt\u00f3ry pobiera temperatur\u0119 SoC, napi\u0119cie rdzenia i flagi d\u0142awienia sprz\u0119towego przy u\u017cyciu polecenia <code>vcgencmd<\/code>:<\/p>\n<pre><code>#!\/usr\/bin\/env bash\n# \/opt\/scripts\/rpi-hardware-metrics.sh\n# Pobiera metryki fizyczne SoC dla kolektora plikowego Prometheus\n\nTEXTFILE_DIR=\"\/var\/lib\/node_exporter\/textfile_collector\"\nTMP_FILE=\"$TEXTFILE_DIR\/rpi_metrics.prom.$$\"\nFINAL_FILE=\"$TEXTFILE_DIR\/rpi_metrics.prom\"\n\n# 1. Ekstrakcja temperatury rdzenia CPU (stopnie Celsjusza)\nTEMP_C=$(vcgencmd measure_temp | grep -oE '[0-9]+([.][0-9]+)?')\necho \"# HELP rpi_soc_temperature_celsius Broadcom SoC Core Temperature\" &gt; \"$TMP_FILE\"\necho \"# TYPE rpi_soc_temperature_celsius gauge\" &gt;&gt; \"$TMP_FILE\"\necho \"rpi_soc_temperature_celsius $TEMP_C\" &gt;&gt; \"$TMP_FILE\"\n\n# 2. Ekstrakcja napi\u0119cia rdzenia SoC (Wolty)\nVOLT_V=$(vcgencmd measure_volts core | grep -oE '[0-9]+([.][0-9]+)?')\necho \"# HELP rpi_soc_core_voltage_volts Broadcom SoC Core Voltage\" &gt;&gt; \"$TMP_FILE\"\necho \"# TYPE rpi_soc_core_voltage_volts gauge\" &gt;&gt; \"$TMP_FILE\"\necho \"rpi_soc_core_voltage_volts $VOLT_V\" &gt;&gt; \"$TMP_FILE\"\n\n# 3. Ekstrakcja kodu szesnastkowego d\u0142awienia jako maski bitowej\nTHROTTLE_HEX=$(vcgencmd get_throttled | cut -d'=' -f2)\nTHROTTLE_DEC=$((THROTTLE_HEX))\necho \"# HELP rpi_soc_throttled_bitmask Bitmask representing under-voltage or thermal throttling flags\" &gt;&gt; \"$TMP_FILE\"\necho \"# TYPE rpi_soc_throttled_bitmask gauge\" &gt;&gt; \"$TMP_FILE\"\necho \"rpi_soc_throttled_bitmask $THROTTLE_DEC\" &gt;&gt; \"$TMP_FILE\"\n\nmv \"$TMP_FILE\" \"$FINAL_FILE\"<\/code><\/pre>\n<p>Nadanie praw wykonywania i zaplanowanie uruchamiania co minut\u0119 w harmonogramie cron:<\/p>\n<pre><code>chmod +x \/opt\/scripts\/rpi-hardware-metrics.sh\n(crontab -l 2&gt;\/dev\/null; echo \"* * * * * \/bin\/bash \/opt\/scripts\/rpi-hardware-metrics.sh &gt;\/dev\/null 2&gt;&amp;1\") | crontab -<\/code><\/pre>\n<h3>Krok 2: Rekonfiguracja us\u0142ugi systemd dla Node Exportera<\/h3>\n<p>Modyfikacja konfiguracji systemowej demona <code>node_exporter<\/code> w celu wskazania katalogu z niestandardowymi plikami metryk:<\/p>\n<pre><code># \/etc\/default\/prometheus-node-exporter\nARGS=\"--collector.textfile.directory=\/var\/lib\/node_exporter\/textfile_collector --collector.filesystem.mount-points-exclude='^\/(dev|proc|sys|run)($|\/)'\"<\/code><\/pre>\n<p>Restart us\u0142ugi celem zastosowania nowych flar: <code>systemctl restart prometheus-node-exporter<\/code>.<\/p>\n<h3>Krok 3: Konfiguracja systemu zbierania danych Prometheus<\/h3>\n<p>Wdro\u017cenie bazy Prometheus w \u015brodowisku Docker Compose z <code>network_mode: host<\/code> i 15-sekundowym interwa\u0142em odpytywania lokalnego Node Exportera:<\/p>\n<pre><code># \/opt\/containers\/prometheus\/prometheus.yml\nglobal:\n  scrape_interval: 15s\n  evaluation_interval: 15s\n\nscrape_configs:\n  - job_name: 'raspberry_pi_baremetal'\n    static_configs:\n      - targets: ['127.0.0.1:9100']\n        labels:\n          instance: 'rpi5-homelab'<\/code><\/pre>\n<h3>Krok 4: Wdro\u017cenie Grafany i import paneli Bare-Metal<\/h3>\n<p>Uruchomienie Grafany w kontenerze Docker Compose, r\u00f3wnie\u017c z <code>network_mode: host<\/code>, dodanie bazy Prometheus (<code>http:\/\/127.0.0.1:9090<\/code>) jako domy\u015blnego \u017ar\u00f3d\u0142a danych oraz zdefiniowanie paneli w oparciu o zapytania PromQL:<\/p>\n<ul>\n<li><strong>Panel temperatury rdzenia SoC:<\/strong> <code>rpi_soc_temperature_celsius<\/code> (Pr\u00f3g alarmowy zdefiniowany na &gt; 75\u00b0C).<\/li>\n<li><strong>Alarm spadku napi\u0119cia i d\u0142awienia:<\/strong> <code>rpi_soc_throttled_bitmask &gt; 0<\/code> (Wskazuje na s\u0142aby zasilacz lub przegrzanie, wyst\u0119puj\u0105ce teraz lub od ostatniego rozruchu; alarm pozostaje aktywny a\u017c do ponownego uruchomienia).<\/li>\n<li><strong>Obci\u0105\u017cenie operacjami I\/O dysku:<\/strong> <code>rate(node_disk_io_time_seconds_total[1m]) * 100<\/code> (Wykrywa zatory kontrolera pami\u0119ci flash i zu\u017cycie blok\u00f3w).<\/li>\n<li><strong>Wska\u017anik dost\u0119pno\u015bci pami\u0119ci RAM:<\/strong> <code>(node_memory_MemAvailable_bytes \/ node_memory_MemTotal_bytes) * 100<\/code>.<\/li>\n<\/ul>\n<h3>Krok 5: Kontrola jako\u015bci i testy obci\u0105\u017ceniowe<\/h3>\n<p>W celu potwierdzenia, \u017ce potok telemetryczny poprawnie rejestruje wyczerpywanie zasob\u00f3w, nale\u017cy przeprowadzi\u0107 procedur\u0119 test\u00f3w obci\u0105\u017ceniowych:<\/p>\n<ol>\n<li><strong>Walidacja obci\u0105\u017cenia I\/O:<\/strong> Wykonanie intensywnego testu dysku narz\u0119dziem <code>fio<\/code> (np. <code>fio --name=test --ioengine=libaio --rw=randwrite --bs=4k --size=1G<\/code>) i sprawdzenie, czy panel I\/O Wait w Grafanie wykazuje skoki op\u00f3\u017anie\u0144 w czasie rzeczywistym.<\/li>\n<li><strong>Symulacja d\u0142awienia termicznego:<\/strong> Obci\u0105\u017cenie wszystkich rdzeni ARM poleceniem <code>stress-ng --cpu 4 --timeout 120s<\/code> przy jednoczesnym monitorowaniu <code>rpi_soc_temperature_celsius<\/code> w bazie Prometheus w celu weryfikacji precyzyjnego pomiaru a\u017c do w\u0142\u0105czenia wentylatora ch\u0142odz\u0105cego.<\/li>\n<li><strong>Audyt parsowania metryk plikowych:<\/strong> Wykonanie polecenia <code>curl -s http:\/\/127.0.0.1:9100\/metrics | grep rpi_<\/code> w terminalu, co pozwala upewni\u0107 si\u0119, \u017ce w\u0142asne metryki napi\u0119cia i d\u0142awienia s\u0105 udost\u0119pniane bez b\u0142\u0119d\u00f3w sk\u0142adniowych.<\/li>\n<\/ol>\n<h2>Podsumowanie i mierzalna warto\u015b\u0107 dodana<\/h2>\n<p><strong>Co da si\u0119 osi\u0105gn\u0105\u0107 dzi\u0119ki instrukcji:<\/strong> Wdro\u017cenie autonomicznego potoku diagnostyki wydajno\u015bci sprz\u0119towej Bare-Metal na platformie Raspberry Pi z wykorzystaniem bazy Prometheus, skrypt\u00f3w Textfile Collector dla SoC oraz wizualizacji w Grafanie.<\/p>\n<p><strong>Resultuj\u0105cy warto\u015b\u0107 dodana:<\/strong><\/p>\n<ul>\n<li><strong>Wczesne wykrywanie awarii no\u015bnik\u00f3w:<\/strong> Ci\u0105g\u0142e monitorowanie czasu oczekiwania I\/O oraz zu\u017cycia blok\u00f3w pami\u0119ci flash pozwala na prewencyjn\u0105 wymian\u0119 karty SD lub dysku SSD przed wyst\u0105pieniem awarii systemu plik\u00f3w.<\/li>\n<li><strong>Zapobieganie d\u0142awieniu termicznemu:<\/strong> Widoczno\u015b\u0107 temperatury SoC i masek bitowych d\u0142awienia w czasie rzeczywistym gwarantuje, \u017ce us\u0142ugi kontenerowe dzia\u0142aj\u0105 z maksymaln\u0105 cz\u0119stotliwo\u015bci\u0105 bez cichego spadku wydajno\u015bci.<\/li>\n<li><strong>Kontrola jako\u015bci zasilania:<\/strong> Natychmiastowe rejestrowanie flag spadku napi\u0119cia (bit 0, <code>bitmask 0x1<\/code>) pozwala zidentyfikowa\u0107 uszkodzone zasilacze USB-C lub zbyt du\u017ce pobory pr\u0105du przez peryferia przed wyst\u0105pieniem restartu sprz\u0119tu.<\/li>\n<\/ul>\n<div class=\"lw-faq\">\n<h2>Pytania i odpowiedzi<\/h2>\n<h3>Dlaczego alarm d\u0142awienia po jednym zdarzeniu pozostaje aktywny a\u017c do ponownego uruchomienia?<\/h3>\n<p>Bo get_throttled zwraca dwa rodzaje bit\u00f3w. Ni\u017csze bity opisuj\u0105 stan w danej chwili, mi\u0119dzy innymi bit 0 dla zbyt niskiego napi\u0119cia i bit 2 dla d\u0142awienia. Bity od 16 wzwy\u017c odnotowuj\u0105, \u017ce to samo wyst\u0105pi\u0142o kiedykolwiek od uruchomienia, i pozostaj\u0105 ustawione a\u017c do ponownego uruchomienia Raspberry Pi. Kr\u00f3tki spadek napi\u0119cia rano daje wi\u0119c na przyk\u0142ad 0x50000 (wyst\u0105pi\u0142o zbyt niskie napi\u0119cie i d\u0142awienie), dziesi\u0119tnie 327680, a ta warto\u015b\u0107 pozostaje wi\u0119ksza od zera przez reszt\u0119 dnia.<\/p>\n<p>Przy analizie warto rozdzieli\u0107 jedno od drugiego. PromQL zna operator %, a <code>rpi_soc_throttled_bitmask % 16 &gt; 0<\/code> sprawdza tylko cztery ni\u017csze bity, czyli bie\u017c\u0105cy stan; <code>rpi_soc_throttled_bitmask &gt;= 65536<\/code> zg\u0142asza, \u017ce od uruchomienia co\u015b zasz\u0142o. Przejrzy\u015bciej jest od razu zleci\u0107 skryptowi zapisywanie osobnej metryki dla ka\u017cdego bitu.<\/p>\n<p>Do tego dochodzi rytm skryptu: dzia\u0142a co minut\u0119, a get_throttled podaje tylko stan z tej chwili. D\u0142awienia trwaj\u0105cego kilka sekund mi\u0119dzy dwoma przebiegami ni\u017csze bity nie poka\u017c\u0105, bity od 16 wzwy\u017c ju\u017c tak. Zw\u0142aszcza przy kr\u00f3tkich spadkach napi\u0119cia odnotowana cz\u0119\u015b\u0107 jest wi\u0119c bardziej miarodajna.<\/p>\n<h3>Czy Prometheus w kontenerze osi\u0105gnie cel 127.0.0.1:9100?<\/h3>\n<p>Tylko przy network_mode: host. W zwyk\u0142ej sieci Dockera 127.0.0.1 to sam kontener, a node_exporter dzia\u0142a poza nim, bezpo\u015brednio na ho\u015bcie, wi\u0119c cel pozostaje trwale niedost\u0119pny (down). To samo dotyczy Grafany: je\u015bli oba kontenery dziel\u0105 sie\u0107 Dockera, adres \u017ar\u00f3d\u0142a danych zawiera nazw\u0119 us\u0142ugi Prometheus zamiast 127.0.0.1.<\/p>\n<\/div>\n<div class=\"lw-quellen\">\n<h2>\u0179r\u00f3d\u0142a<\/h2>\n<ul>\n<li><a href=\"https:\/\/prometheus.io\/docs\/introduction\/overview\/\" target=\"_blank\" rel=\"noopener noreferrer\">Prometheus documentation<\/a><\/li>\n<li><a href=\"https:\/\/grafana.com\/docs\/grafana\/latest\/\" target=\"_blank\" rel=\"noopener noreferrer\">Grafana documentation<\/a><\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Techniczny przewodnik po wdro\u017ceniu potoku diagnostyki wydajno\u015bci Bare-Metal dla Raspberry Pi przy u\u017cyciu platform Prometheus, Grafana oraz skrypt\u00f3w Textfile Collector.<\/p>\n","protected":false},"author":1,"featured_media":14090,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[92634],"tags":[92229,92220,92064,92223,92238],"class_list":["post-538","post","type-post","status-publish","format-standard","hentry","category-tutorials-pl-raspberry-pi-pl","tag-devops-pl","tag-homelab-pl","tag-monitoring-pl","tag-raspberry-pi-pl","tag-tutorial-pl"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Bare-Metal Performance Diagnostics: Kokpit Prometheus i Grafana dla Raspberry Pi | Lukas Wojcik<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.lukaswojcik.com\/blog\/pl\/raspberry-pi-pl\/tutorials-pl-raspberry-pi-pl\/bare-metal-performance-diagnostics-kokpit-prometheus-i-grafana\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Bare-Metal Performance Diagnostics: Kokpit Prometheus i Grafana dla Raspberry Pi | Lukas Wojcik\" \/>\n<meta property=\"og:description\" content=\"Techniczny przewodnik po wdro\u017ceniu potoku diagnostyki wydajno\u015bci Bare-Metal dla Raspberry Pi przy u\u017cyciu platform Prometheus, Grafana oraz skrypt\u00f3w Textfile Collector.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/pl\/raspberry-pi-pl\/tutorials-pl-raspberry-pi-pl\/bare-metal-performance-diagnostics-kokpit-prometheus-i-grafana\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukas Wojcik - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-08T18:30:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-538-bare-metal-performance-diagnostics-p-g.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Lukas Wojcik\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Lukas Wojcik\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/raspberry-pi-pl\\\/tutorials-pl-raspberry-pi-pl\\\/bare-metal-performance-diagnostics-kokpit-prometheus-i-grafana\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/raspberry-pi-pl\\\/tutorials-pl-raspberry-pi-pl\\\/bare-metal-performance-diagnostics-kokpit-prometheus-i-grafana\\\/\"},\"author\":{\"name\":\"Lukas Wojcik\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"headline\":\"Bare-Metal Performance Diagnostics: Kokpit Prometheus i Grafana dla Raspberry Pi\",\"datePublished\":\"2026-10-08T18:30:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/raspberry-pi-pl\\\/tutorials-pl-raspberry-pi-pl\\\/bare-metal-performance-diagnostics-kokpit-prometheus-i-grafana\\\/\"},\"wordCount\":1019,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/raspberry-pi-pl\\\/tutorials-pl-raspberry-pi-pl\\\/bare-metal-performance-diagnostics-kokpit-prometheus-i-grafana\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-538-bare-metal-performance-diagnostics-p-g.png\",\"keywords\":[\"DevOps\",\"Homelab\",\"Monitoring\",\"Raspberry Pi\",\"Tutorial\"],\"articleSection\":[\"Tutorials\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/raspberry-pi-pl\\\/tutorials-pl-raspberry-pi-pl\\\/bare-metal-performance-diagnostics-kokpit-prometheus-i-grafana\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/raspberry-pi-pl\\\/tutorials-pl-raspberry-pi-pl\\\/bare-metal-performance-diagnostics-kokpit-prometheus-i-grafana\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/raspberry-pi-pl\\\/tutorials-pl-raspberry-pi-pl\\\/bare-metal-performance-diagnostics-kokpit-prometheus-i-grafana\\\/\",\"name\":\"Bare-Metal Performance Diagnostics: Kokpit Prometheus i Grafana dla Raspberry Pi | Lukas Wojcik\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/raspberry-pi-pl\\\/tutorials-pl-raspberry-pi-pl\\\/bare-metal-performance-diagnostics-kokpit-prometheus-i-grafana\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/raspberry-pi-pl\\\/tutorials-pl-raspberry-pi-pl\\\/bare-metal-performance-diagnostics-kokpit-prometheus-i-grafana\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-538-bare-metal-performance-diagnostics-p-g.png\",\"datePublished\":\"2026-10-08T18:30:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/raspberry-pi-pl\\\/tutorials-pl-raspberry-pi-pl\\\/bare-metal-performance-diagnostics-kokpit-prometheus-i-grafana\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/raspberry-pi-pl\\\/tutorials-pl-raspberry-pi-pl\\\/bare-metal-performance-diagnostics-kokpit-prometheus-i-grafana\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/raspberry-pi-pl\\\/tutorials-pl-raspberry-pi-pl\\\/bare-metal-performance-diagnostics-kokpit-prometheus-i-grafana\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-538-bare-metal-performance-diagnostics-p-g.png\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-538-bare-metal-performance-diagnostics-p-g.png\",\"width\":1200,\"height\":630,\"caption\":\"Bare-Metal Performance Diagnostics: Kokpit Prometheus i Grafana dla Raspberry Pi\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/raspberry-pi-pl\\\/tutorials-pl-raspberry-pi-pl\\\/bare-metal-performance-diagnostics-kokpit-prometheus-i-grafana\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Bare-Metal Performance Diagnostics: Kokpit Prometheus i Grafana dla Raspberry Pi\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\",\"name\":\"Lukas Wojcik - Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\",\"name\":\"Lukas Wojcik\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"width\":424,\"height\":636,\"caption\":\"Lukas Wojcik\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\"},\"sameAs\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Bare-Metal Performance Diagnostics: Kokpit Prometheus i Grafana dla Raspberry Pi | Lukas Wojcik","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.lukaswojcik.com\/blog\/pl\/raspberry-pi-pl\/tutorials-pl-raspberry-pi-pl\/bare-metal-performance-diagnostics-kokpit-prometheus-i-grafana\/","og_locale":"en_US","og_type":"article","og_title":"Bare-Metal Performance Diagnostics: Kokpit Prometheus i Grafana dla Raspberry Pi | Lukas Wojcik","og_description":"Techniczny przewodnik po wdro\u017ceniu potoku diagnostyki wydajno\u015bci Bare-Metal dla Raspberry Pi przy u\u017cyciu platform Prometheus, Grafana oraz skrypt\u00f3w Textfile Collector.","og_url":"https:\/\/www.lukaswojcik.com\/blog\/pl\/raspberry-pi-pl\/tutorials-pl-raspberry-pi-pl\/bare-metal-performance-diagnostics-kokpit-prometheus-i-grafana\/","og_site_name":"Lukas Wojcik - Blog","article_published_time":"2026-10-08T18:30:00+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-538-bare-metal-performance-diagnostics-p-g.png","type":"image\/png"}],"author":"Lukas Wojcik","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Lukas Wojcik","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/raspberry-pi-pl\/tutorials-pl-raspberry-pi-pl\/bare-metal-performance-diagnostics-kokpit-prometheus-i-grafana\/#article","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/raspberry-pi-pl\/tutorials-pl-raspberry-pi-pl\/bare-metal-performance-diagnostics-kokpit-prometheus-i-grafana\/"},"author":{"name":"Lukas Wojcik","@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"headline":"Bare-Metal Performance Diagnostics: Kokpit Prometheus i Grafana dla Raspberry Pi","datePublished":"2026-10-08T18:30:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/raspberry-pi-pl\/tutorials-pl-raspberry-pi-pl\/bare-metal-performance-diagnostics-kokpit-prometheus-i-grafana\/"},"wordCount":1019,"commentCount":0,"publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/raspberry-pi-pl\/tutorials-pl-raspberry-pi-pl\/bare-metal-performance-diagnostics-kokpit-prometheus-i-grafana\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-538-bare-metal-performance-diagnostics-p-g.png","keywords":["DevOps","Homelab","Monitoring","Raspberry Pi","Tutorial"],"articleSection":["Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.lukaswojcik.com\/blog\/pl\/raspberry-pi-pl\/tutorials-pl-raspberry-pi-pl\/bare-metal-performance-diagnostics-kokpit-prometheus-i-grafana\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/raspberry-pi-pl\/tutorials-pl-raspberry-pi-pl\/bare-metal-performance-diagnostics-kokpit-prometheus-i-grafana\/","url":"https:\/\/www.lukaswojcik.com\/blog\/pl\/raspberry-pi-pl\/tutorials-pl-raspberry-pi-pl\/bare-metal-performance-diagnostics-kokpit-prometheus-i-grafana\/","name":"Bare-Metal Performance Diagnostics: Kokpit Prometheus i Grafana dla Raspberry Pi | Lukas Wojcik","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/raspberry-pi-pl\/tutorials-pl-raspberry-pi-pl\/bare-metal-performance-diagnostics-kokpit-prometheus-i-grafana\/#primaryimage"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/raspberry-pi-pl\/tutorials-pl-raspberry-pi-pl\/bare-metal-performance-diagnostics-kokpit-prometheus-i-grafana\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-538-bare-metal-performance-diagnostics-p-g.png","datePublished":"2026-10-08T18:30:00+00:00","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/raspberry-pi-pl\/tutorials-pl-raspberry-pi-pl\/bare-metal-performance-diagnostics-kokpit-prometheus-i-grafana\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/pl\/raspberry-pi-pl\/tutorials-pl-raspberry-pi-pl\/bare-metal-performance-diagnostics-kokpit-prometheus-i-grafana\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/raspberry-pi-pl\/tutorials-pl-raspberry-pi-pl\/bare-metal-performance-diagnostics-kokpit-prometheus-i-grafana\/#primaryimage","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-538-bare-metal-performance-diagnostics-p-g.png","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-538-bare-metal-performance-diagnostics-p-g.png","width":1200,"height":630,"caption":"Bare-Metal Performance Diagnostics: Kokpit Prometheus i Grafana dla Raspberry Pi"},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/raspberry-pi-pl\/tutorials-pl-raspberry-pi-pl\/bare-metal-performance-diagnostics-kokpit-prometheus-i-grafana\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lukaswojcik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Bare-Metal Performance Diagnostics: Kokpit Prometheus i Grafana dla Raspberry Pi"}]},{"@type":"WebSite","@id":"https:\/\/www.lukaswojcik.com\/blog\/#website","url":"https:\/\/www.lukaswojcik.com\/blog\/","name":"Lukas Wojcik - Blog","description":"","publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.lukaswojcik.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9","name":"Lukas Wojcik","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","width":424,"height":636,"caption":"Lukas Wojcik"},"logo":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg"},"sameAs":["https:\/\/www.lukaswojcik.com\/blog"]}]}},"_links":{"self":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/538","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/comments?post=538"}],"version-history":[{"count":7,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/538\/revisions"}],"predecessor-version":[{"id":21703,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/538\/revisions\/21703"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media\/14090"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=538"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/categories?post=538"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=538"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}