{"id":10482,"date":"2026-09-21T07:20:00","date_gmt":"2026-09-21T05:20:00","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/blog\/?p=10482"},"modified":"2026-09-09T17:10:34","modified_gmt":"2026-09-09T15:10:34","slug":"prometheus-on-a-raspberry-pi-how-labels-multiply-time-series","status":"publish","type":"post","link":"https:\/\/www.lukaswojcik.com\/blog\/en\/raspberry-pi\/prometheus-on-a-raspberry-pi-how-labels-multiply-time-series\/","title":{"rendered":"Prometheus on a Raspberry Pi: How Labels Multiply Time Series and How to Find the Offender"},"content":{"rendered":"<p>A Raspberry Pi running Prometheus is usually sized by the number of exporters, which is the wrong unit. Prometheus does not store metrics; it stores one time series per distinct combination of label values, and the number of those combinations is a product.<\/p>\n<p>A product behaves differently from a sum. Adding a sixth exporter adds a few hundred series. Adding a sixth label to an existing metric multiplies everything that was already there.<\/p>\n<figure class=\"lw-diagram\">\n<img decoding=\"async\" src=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/diagrams\/kardinalitaet-en.png\" width=\"1120\" height=\"580\" loading=\"lazy\" alt=\"One metric name multiplied step by step by instance, method, status, handler and finally an unbounded path label, with the running series count rising from one to eleven million\"><figcaption>Five bounded labels and one that is not. The first five are the setup; the sixth is the outage.<\/figcaption><\/figure>\n<h2>Bounded and Unbounded Labels<\/h2>\n<p>The useful distinction is not how many values a label has today but whether its set of values is known in advance. <code>method<\/code> has five values and will still have five next year. <code>status<\/code> has a dozen. <code>instance<\/code> grows when a machine is added, which is a decision somebody makes.<\/p>\n<p>A raw request path has as many values as there are strings, and it grows fastest when the site is under attack. Every scan for <code>\/wp-admin<\/code>, <code>\/.env<\/code> and <code>\/phpmyadmin<\/code> creates a permanent time series in a monitoring system that was watching a site which does not have those pages.<\/p>\n<table style=\"width:100%;border-collapse:collapse\">\n<thead>\n<tr>\n<th style=\"vertical-align:top\">Label<\/th>\n<th style=\"white-space:nowrap;vertical-align:top\">Values<\/th>\n<th>Bounded by<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"white-space:nowrap;vertical-align:top\"><code>job<\/code>, <code>instance<\/code><\/td>\n<td>a handful<\/td>\n<td>the machines that exist<\/td>\n<\/tr>\n<tr>\n<td style=\"white-space:nowrap;vertical-align:top\"><code>method<\/code>, <code>status<\/code><\/td>\n<td>5 to 12<\/td>\n<td>the HTTP specification<\/td>\n<\/tr>\n<tr>\n<td style=\"white-space:nowrap;vertical-align:top\"><code>handler<\/code>, <code>route<\/code><\/td>\n<td>tens<\/td>\n<td>the routes in the code<\/td>\n<\/tr>\n<tr>\n<td style=\"white-space:nowrap;vertical-align:top\"><code>path<\/code> (raw)<\/td>\n<td>unbounded<\/td>\n<td>nothing &#8211; it grows with scanners<\/td>\n<\/tr>\n<tr>\n<td style=\"white-space:nowrap;vertical-align:top\"><code>user_id<\/code>, <code>email<\/code><\/td>\n<td>unbounded<\/td>\n<td>nothing, and it belongs in no monitoring system<\/td>\n<\/tr>\n<tr>\n<td style=\"white-space:nowrap;vertical-align:top\"><code>container_id<\/code>, <code>pod<\/code><\/td>\n<td>unbounded over time<\/td>\n<td>nothing &#8211; a new value on every deploy<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>The last row is the subtle one, because the number of series alive at any moment stays small. What grows without bound is the index, which has to remember every series that has ever existed within the retention window. A deploy every hour with a fresh container id produces a monitoring system that gets slower every week while the dashboard shows nothing unusual.<\/p>\n<h2>What It Costs in Practice<\/h2>\n<p>Memory is the binding constraint long before disk is. The head block holds every active series and its index in RAM, on the order of a few kilobytes per series, and a query touching many series needs room on top of that.<\/p>\n<p>The failure is not gradual. Prometheus grows until the kernel kills it, restarts, replays the write-ahead log, grows again and gets killed again &#8211; usually within minutes of the first larger dashboard query. What looks like a broken exporter is a metric that gained a label three deploys ago.<\/p>\n<h2>The Three Queries That Find It<\/h2>\n<pre class=\"wp-block-kevinbatdorf-code-block-pro\"><code># which metric names carry the most series\ntopk(10, count by (__name__)({__name__=~\".+\"}))\n\n# how many distinct values one label has, for one metric\ncount(count by (path) (http_requests_total))\n\n# total series in the head block, and how fast it is growing\nprometheus_tsdb_head_series\ndelta(prometheus_tsdb_head_series[1h])<\/code><\/pre>\n<p>The first query names the metric, the second names the label, and the third says whether the problem is a size or a leak. A head series count that rises steadily while nothing is being added is churn, and churn is always a label that changes when it should not.<\/p>\n<p>These are worth running once on a healthy system, purely to know what normal looks like. A number without a baseline is not a diagnosis.<\/p>\n<h2>Dropping a Label Is One Line<\/h2>\n<p>The cheapest fix happens at scrape time, before anything is stored. A <code>metric_relabel_configs<\/code> block drops the label from the incoming samples, and everything downstream shrinks by the factor that label contributed.<\/p>\n<pre class=\"wp-block-kevinbatdorf-code-block-pro\"><code>scrape_configs:\n  - job_name: 'app'\n    static_configs:\n      - targets: ['app:9100']\n    metric_relabel_configs:\n      - regex: 'path|user_id|container_id'\n        action: labeldrop<\/code><\/pre>\n<p>Dropping is not the same as aggregating: the series for the individual paths disappear, and the counts they held are merged into whatever series remain. That is usually what was wanted anyway &#8211; almost nobody looks at a per-path request count, and the ones who do want it grouped by route rather than by URL.<\/p>\n<p>Where the detail genuinely matters, the answer is to bound it at the source: label by <code>handler<\/code> or by a normalised route template rather than by the raw path, so that <code>\/product\/12345<\/code> and <code>\/product\/12346<\/code> become one series instead of two.<\/p>\n<h2>A Rule for New Metrics<\/h2>\n<p>Before a label is added, the question worth asking is what its value set is and who decides it. If the answer names a person or a configuration file, the label is bounded. If the answer is a visitor, a request, or an identifier, it is not &#8211; and it will be discovered later, from a Pi that no longer boots into a working Prometheus.<\/p>\n<p>The same question also settles the privacy side of the matter, because the labels that are unbounded are exactly the ones that identify people. An email address in a metric label is a cardinality problem and a data protection problem in the same breath, and both are solved by not putting it there.<\/p>\n<div class=\"lw-quellen\">\n<h2>Sources<\/h2>\n<ul>\n<li><a href=\"https:\/\/www.raspberrypi.com\/documentation\/computers\/raspberry-pi.html\" target=\"_blank\" rel=\"noopener noreferrer\">Raspberry Pi documentation<\/a><\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Prometheus stores one time series per combination of label values, so every label multiplies. One label whose values are not known in advance turns a comfortable setup into an out-of-memory kill.<\/p>\n","protected":false},"author":1,"featured_media":15188,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[21],"tags":[91294,91181],"class_list":["post-10482","post","type-post","status-publish","format-standard","hentry","category-raspberry-pi","tag-monitoring","tag-raspberry-pi"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Prometheus on a Raspberry Pi: How Labels Multiply Time Series and How to Find the Offender - Lukas Wojcik - Blog<\/title>\n<meta name=\"description\" content=\"Why the number of time series is a product and not a sum, and the three queries that find the offender before the machine falls over.\" \/>\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\/en\/raspberry-pi\/prometheus-on-a-raspberry-pi-how-labels-multiply-time-series\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Prometheus on a Raspberry Pi: How Labels Multiply Time Series and How to Find the Offender - Lukas Wojcik - Blog\" \/>\n<meta property=\"og:description\" content=\"Why the number of time series is a product and not a sum, and the three queries that find the offender before the machine falls over.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/en\/raspberry-pi\/prometheus-on-a-raspberry-pi-how-labels-multiply-time-series\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukas Wojcik - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-21T05:20:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-10482-how-a-single-label-blows-up-the-memo-n.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=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/raspberry-pi\\\/prometheus-on-a-raspberry-pi-how-labels-multiply-time-series\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/raspberry-pi\\\/prometheus-on-a-raspberry-pi-how-labels-multiply-time-series\\\/\"},\"author\":{\"name\":\"Lukas Wojcik\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"headline\":\"Prometheus on a Raspberry Pi: How Labels Multiply Time Series and How to Find the Offender\",\"datePublished\":\"2026-09-21T05:20:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/raspberry-pi\\\/prometheus-on-a-raspberry-pi-how-labels-multiply-time-series\\\/\"},\"wordCount\":748,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/raspberry-pi\\\/prometheus-on-a-raspberry-pi-how-labels-multiply-time-series\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-10482-how-a-single-label-blows-up-the-memo-n.png\",\"keywords\":[\"Monitoring\",\"Raspberry Pi\"],\"articleSection\":[\"Raspberry PI\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/raspberry-pi\\\/prometheus-on-a-raspberry-pi-how-labels-multiply-time-series\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/raspberry-pi\\\/prometheus-on-a-raspberry-pi-how-labels-multiply-time-series\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/raspberry-pi\\\/prometheus-on-a-raspberry-pi-how-labels-multiply-time-series\\\/\",\"name\":\"Prometheus on a Raspberry Pi: How Labels Multiply Time Series and How to Find the Offender - Lukas Wojcik - Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/raspberry-pi\\\/prometheus-on-a-raspberry-pi-how-labels-multiply-time-series\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/raspberry-pi\\\/prometheus-on-a-raspberry-pi-how-labels-multiply-time-series\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-10482-how-a-single-label-blows-up-the-memo-n.png\",\"datePublished\":\"2026-09-21T05:20:00+00:00\",\"description\":\"Why the number of time series is a product and not a sum, and the three queries that find the offender before the machine falls over.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/raspberry-pi\\\/prometheus-on-a-raspberry-pi-how-labels-multiply-time-series\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/raspberry-pi\\\/prometheus-on-a-raspberry-pi-how-labels-multiply-time-series\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/raspberry-pi\\\/prometheus-on-a-raspberry-pi-how-labels-multiply-time-series\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-10482-how-a-single-label-blows-up-the-memo-n.png\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-10482-how-a-single-label-blows-up-the-memo-n.png\",\"width\":1200,\"height\":630,\"caption\":\"Prometheus on a Raspberry Pi: How Labels Multiply Time Series and How to Find the Offender\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/raspberry-pi\\\/prometheus-on-a-raspberry-pi-how-labels-multiply-time-series\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Prometheus on a Raspberry Pi: How Labels Multiply Time Series and How to Find the Offender\"}]},{\"@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":"Prometheus on a Raspberry Pi: How Labels Multiply Time Series and How to Find the Offender - Lukas Wojcik - Blog","description":"Why the number of time series is a product and not a sum, and the three queries that find the offender before the machine falls over.","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\/en\/raspberry-pi\/prometheus-on-a-raspberry-pi-how-labels-multiply-time-series\/","og_locale":"en_US","og_type":"article","og_title":"Prometheus on a Raspberry Pi: How Labels Multiply Time Series and How to Find the Offender - Lukas Wojcik - Blog","og_description":"Why the number of time series is a product and not a sum, and the three queries that find the offender before the machine falls over.","og_url":"https:\/\/www.lukaswojcik.com\/blog\/en\/raspberry-pi\/prometheus-on-a-raspberry-pi-how-labels-multiply-time-series\/","og_site_name":"Lukas Wojcik - Blog","article_published_time":"2026-09-21T05:20:00+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-10482-how-a-single-label-blows-up-the-memo-n.png","type":"image\/png"}],"author":"Lukas Wojcik","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Lukas Wojcik","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/raspberry-pi\/prometheus-on-a-raspberry-pi-how-labels-multiply-time-series\/#article","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/raspberry-pi\/prometheus-on-a-raspberry-pi-how-labels-multiply-time-series\/"},"author":{"name":"Lukas Wojcik","@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"headline":"Prometheus on a Raspberry Pi: How Labels Multiply Time Series and How to Find the Offender","datePublished":"2026-09-21T05:20:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/raspberry-pi\/prometheus-on-a-raspberry-pi-how-labels-multiply-time-series\/"},"wordCount":748,"commentCount":0,"publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/raspberry-pi\/prometheus-on-a-raspberry-pi-how-labels-multiply-time-series\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-10482-how-a-single-label-blows-up-the-memo-n.png","keywords":["Monitoring","Raspberry Pi"],"articleSection":["Raspberry PI"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.lukaswojcik.com\/blog\/en\/raspberry-pi\/prometheus-on-a-raspberry-pi-how-labels-multiply-time-series\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/raspberry-pi\/prometheus-on-a-raspberry-pi-how-labels-multiply-time-series\/","url":"https:\/\/www.lukaswojcik.com\/blog\/en\/raspberry-pi\/prometheus-on-a-raspberry-pi-how-labels-multiply-time-series\/","name":"Prometheus on a Raspberry Pi: How Labels Multiply Time Series and How to Find the Offender - Lukas Wojcik - Blog","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/raspberry-pi\/prometheus-on-a-raspberry-pi-how-labels-multiply-time-series\/#primaryimage"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/raspberry-pi\/prometheus-on-a-raspberry-pi-how-labels-multiply-time-series\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-10482-how-a-single-label-blows-up-the-memo-n.png","datePublished":"2026-09-21T05:20:00+00:00","description":"Why the number of time series is a product and not a sum, and the three queries that find the offender before the machine falls over.","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/raspberry-pi\/prometheus-on-a-raspberry-pi-how-labels-multiply-time-series\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/en\/raspberry-pi\/prometheus-on-a-raspberry-pi-how-labels-multiply-time-series\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/raspberry-pi\/prometheus-on-a-raspberry-pi-how-labels-multiply-time-series\/#primaryimage","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-10482-how-a-single-label-blows-up-the-memo-n.png","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-10482-how-a-single-label-blows-up-the-memo-n.png","width":1200,"height":630,"caption":"Prometheus on a Raspberry Pi: How Labels Multiply Time Series and How to Find the Offender"},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/raspberry-pi\/prometheus-on-a-raspberry-pi-how-labels-multiply-time-series\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lukaswojcik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Prometheus on a Raspberry Pi: How Labels Multiply Time Series and How to Find the Offender"}]},{"@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\/10482","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=10482"}],"version-history":[{"count":4,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/10482\/revisions"}],"predecessor-version":[{"id":17116,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/10482\/revisions\/17116"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media\/15188"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=10482"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/categories?post=10482"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=10482"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}