{"id":10439,"date":"2026-08-15T14:39:45","date_gmt":"2026-08-15T12:39:45","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/blog\/narzedzia\/prometheus-tsdb-capacity-planner\/"},"modified":"2026-08-15T14:48:59","modified_gmt":"2026-08-15T12:48:59","slug":"prometheus-tsdb-capacity-planner","status":"publish","type":"page","link":"https:\/\/www.lukaswojcik.com\/blog\/pl\/narzedzia\/prometheus-tsdb-capacity-planner\/","title":{"rendered":"Planer pojemno\u015bci szereg\u00f3w czasowych Prometheusa"},"content":{"rendered":"<div class=\"gtm-analyser-container\" style=\"background: var(--bg-panel, #1e1e24); padding: 25px; border-radius: 8px; border: 1px solid var(--border, #2a2a35);\">\n<p style=\"color: var(--text-secondary, #a0a0b0); margin-bottom: 20px;\">Prometheusa na ma\u0142ej maszynie wymiaruje si\u0119 liczb\u0105 szereg\u00f3w czasowych, a ta rzadko jest t\u0105, na kt\u00f3r\u0105 ktokolwiek liczy\u0142: metryki razy cele razy ka\u017cda warto\u015b\u0107 etykiety. Powstaj\u0105 z tego miejsce na dysku, pami\u0119\u0107 i obci\u0105\u017cenie zapisem, kt\u00f3re no\u015bnik musi przetrwa\u0107.<\/p>\n<div style=\"font-family: 'Nunito Sans', sans-serif; font-weight: 700; color: var(--text-primary, #e8e8ee); font-size: 0.92rem; margin-bottom: 8px;\">Sk\u0105d bior\u0105 si\u0119 szeregi<\/div>\n<div id=\"pr-quellen\" style=\"display: grid; grid-template-columns: 1fr auto auto auto; gap: 6px 12px; align-items: baseline; margin-bottom: 18px;\"><\/div>\n<div style=\"display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 12px; margin-bottom: 8px;\">\n<div>\n            <label for=\"pr-intervall\" style=\"color: var(--text-secondary, #a0a0b0); display: block; font-size: 0.85rem; margin-bottom: 5px;\">Interwa\u0142 odpytywania<\/label><br \/>\n            <select id=\"pr-intervall\" class=\"form-control\" style=\"width: 100%; padding: 10px; background: var(--bg-body, #14141a); border: 1px solid var(--border, #2a2a35); color: var(--text-primary, #e8e8ee); border-radius: 6px; box-sizing: border-box;\"><option value=\"10\">10 s<\/option><option value=\"15\" selected>15 s<\/option><option value=\"30\">30 s<\/option><option value=\"60\">60 s<\/option><\/select>\n        <\/div>\n<div>\n            <label for=\"pr-tage\" style=\"color: var(--text-secondary, #a0a0b0); display: block; font-size: 0.85rem; margin-bottom: 5px;\">Przechowywanie (dni)<\/label><br \/>\n            <input id=\"pr-tage\" type=\"number\" min=\"1\" step=\"1\" value=\"90\" class=\"form-control\" style=\"width: 100%; padding: 10px; background: var(--bg-body, #14141a); border: 1px solid var(--border, #2a2a35); color: var(--text-primary, #e8e8ee); border-radius: 6px; box-sizing: border-box;\">\n        <\/div>\n<div>\n            <label for=\"pr-bytes\" style=\"color: var(--text-secondary, #a0a0b0); display: block; font-size: 0.85rem; margin-bottom: 5px;\">Bajty na pr\u00f3bk\u0119<\/label><br \/>\n            <input id=\"pr-bytes\" type=\"number\" min=\"0.5\" max=\"4\" step=\"0.1\" value=\"1.7\" class=\"form-control\" style=\"width: 100%; padding: 10px; background: var(--bg-body, #14141a); border: 1px solid var(--border, #2a2a35); color: var(--text-primary, #e8e8ee); border-radius: 6px; box-sizing: border-box;\">\n        <\/div>\n<div>\n            <label for=\"pr-kopf\" style=\"color: var(--text-secondary, #a0a0b0); display: block; font-size: 0.85rem; margin-bottom: 5px;\">KB na szereg w bloku g\u0142\u00f3wnym<\/label><br \/>\n            <input id=\"pr-kopf\" type=\"number\" min=\"1\" max=\"32\" step=\"0.5\" value=\"8\" class=\"form-control\" style=\"width: 100%; padding: 10px; background: var(--bg-body, #14141a); border: 1px solid var(--border, #2a2a35); color: var(--text-primary, #e8e8ee); border-radius: 6px; box-sizing: border-box;\">\n        <\/div>\n<div>\n            <label for=\"pr-traeger\" style=\"color: var(--text-secondary, #a0a0b0); display: block; font-size: 0.85rem; margin-bottom: 5px;\">No\u015bnik<\/label><br \/>\n            <select id=\"pr-traeger\" class=\"form-control\" style=\"width: 100%; padding: 10px; background: var(--bg-body, #14141a); border: 1px solid var(--border, #2a2a35); color: var(--text-primary, #e8e8ee); border-radius: 6px; box-sizing: border-box;\"><option value=\"sd\" selected>karta SD<\/option><option value=\"ssd\">SSD albo dysk USB<\/option><\/select>\n        <\/div>\n<div>\n            <label for=\"pr-ram\" style=\"color: var(--text-secondary, #a0a0b0); display: block; font-size: 0.85rem; margin-bottom: 5px;\">Pami\u0119\u0107 maszyny<\/label><br \/>\n            <select id=\"pr-ram\" class=\"form-control\" style=\"width: 100%; padding: 10px; background: var(--bg-body, #14141a); border: 1px solid var(--border, #2a2a35); color: var(--text-primary, #e8e8ee); border-radius: 6px; box-sizing: border-box;\"><option value=\"2\">2 GB<\/option><option value=\"4\">4 GB<\/option><option value=\"8\" selected>8 GB<\/option><option value=\"16\">16 GB<\/option><\/select>\n        <\/div>\n<\/p><\/div>\n<p style=\"color: var(--text-secondary, #a0a0b0); font-size: 0.82rem; margin-bottom: 16px;\">Skompresowane pr\u00f3bki zajmuj\u0105 \u015brednio oko\u0142o 1,7 bajta; blok g\u0142\u00f3wny potrzebuje z grubsza 8 KB na aktywny szereg. Oba to warto\u015bci orientacyjne &#8211; pierwsza jest stabilna, druga zmienia si\u0119 z d\u0142ugo\u015bci\u0105 etykiet i obci\u0105\u017ceniem zapytaniami.<\/p>\n<p>    <button id=\"pr-btn\" class=\"button\" style=\"background: var(--accent, #7ee787); color: #0b1114; border: none; padding: 12px 24px; border-radius: 6px; font-weight: 700; cursor: pointer;\">Oblicz bud\u017cet<\/button><\/p>\n<div id=\"pr-ausgabe\" style=\"margin-top: 22px;\"><\/div>\n<\/div>\n<p><script>\n(function () {\n    'use strict';<\/p>\n<p>    const T = {\"einleitung\":\"Prometheusa na ma\u0142ej maszynie wymiaruje si\u0119 liczb\u0105 szereg\u00f3w czasowych, a ta rzadko jest t\u0105, na kt\u00f3r\u0105 ktokolwiek liczy\u0142: metryki razy cele razy ka\u017cda warto\u015b\u0107 etykiety. Powstaj\u0105 z tego miejsce na dysku, pami\u0119\u0107 i obci\u0105\u017cenie zapisem, kt\u00f3re no\u015bnik musi przetrwa\u0107.\",\"h_quellen\":\"Sk\u0105d bior\u0105 si\u0119 szeregi\",\"spalte_jeziel\":\"szeregi na cel\",\"spalte_ziele\":\"cele\",\"spalte_summe\":\"szeregi\",\"quelle_node\":\"node_exporter\",\"quelle_cadvisor\":\"cAdvisor na kontener\",\"quelle_blackbox\":\"sondy Blackbox\",\"quelle_eigen\":\"w\u0142asna aplikacja\",\"label_intervall\":\"Interwa\u0142 odpytywania\",\"label_tage\":\"Przechowywanie (dni)\",\"label_bytes\":\"Bajty na pr\u00f3bk\u0119\",\"label_kopf\":\"KB na szereg w bloku g\u0142\u00f3wnym\",\"label_traeger\":\"No\u015bnik\",\"traeger_sd\":\"karta SD\",\"traeger_ssd\":\"SSD albo dysk USB\",\"label_ram\":\"Pami\u0119\u0107 maszyny\",\"faustwerte\":\"Skompresowane pr\u00f3bki zajmuj\u0105 \u015brednio oko\u0142o 1,7 bajta; blok g\u0142\u00f3wny potrzebuje z grubsza 8 KB na aktywny szereg. Oba to warto\u015bci orientacyjne - pierwsza jest stabilna, druga zmienia si\u0119 z d\u0142ugo\u015bci\u0105 etykiet i obci\u0105\u017ceniem zapytaniami.\",\"knopf\":\"Oblicz bud\u017cet\",\"h_ergebnis\":\"Wynik\",\"zeile_reihen\":\"Aktywne szeregi\",\"zeile_rate\":\"Pr\u00f3bki na sekund\u0119\",\"zeile_platte\":\"Dysk przy pe\u0142nym przechowywaniu\",\"zeile_kopf\":\"Blok g\u0142\u00f3wny w pami\u0119ci\",\"zeile_ramanteil\":\"Udzia\u0142 w pami\u0119ci maszyny\",\"zeile_schreib_tag\":\"Zapisywane dziennie\",\"zeile_schreib_jahr\":\"Zapisywane rocznie\",\"zeile_lebensdauer\":\"Trwa\u0142o\u015b\u0107 no\u015bnika przy tym obci\u0105\u017ceniu\",\"jahre\":\"lat\",\"h_hinweise\":\"Co oznacza ta konfiguracja\",\"hinweis_keine_reihen\":\"Bez szereg\u00f3w nie ma czego przechowywa\u0107.\",\"hinweis_ram_knapp\":\"Sam blok g\u0142\u00f3wny zajmuje ponad po\u0142ow\u0119 pami\u0119ci maszyny. Prometheus potrzebuje obok tego miejsca na zapytania, a Grafana chce swojej cz\u0119\u015bci.\",\"hinweis_ram_reicht_nicht\":\"Blok g\u0142\u00f3wny nie mie\u015bci si\u0119 w pami\u0119ci maszyny. Prometheusa sprz\u0105tnie j\u0105dro, zwykle w trakcie pierwszego wi\u0119kszego zapytania.\",\"hinweis_platte_gross\":\"Ponad 32 GB przy pe\u0142nym przechowywaniu. Na Pi nale\u017cy to na osobny dysk, a nie na no\u015bnik startowy.\",\"hinweis_sd_karte\":\"Ilo\u015b\u0107 jest do ogarni\u0119cia, ale Prometheus pisze nieprzerwanie ma\u0142ymi blokami i w\u0142a\u015bnie to zu\u017cywa kart\u0119 - kt\u00f3ra zabiera ze sob\u0105 ca\u0142\u0105 histori\u0119. SSD, kr\u00f3tsze przechowywanie albo zapis zdalny na drug\u0105 maszyn\u0119 tego unikaj\u0105.\",\"hinweis_verschleiss\":\"Przy tym obci\u0105\u017ceniu zak\u0142adana wytrzyma\u0142o\u015b\u0107 zapisu wyczerpuje si\u0119 w nieca\u0142e trzy lata.\",\"hinweis_rate_hoch\":\"Powy\u017cej dziesi\u0119ciu tysi\u0119cy pr\u00f3bek na sekund\u0119 Pi jest na granicy. Pomaga mniej szereg\u00f3w, a nie d\u0142u\u017cszy interwa\u0142.\",\"hinweis_intervall_kurz\":\"Interwa\u0142 dziesi\u0119ciosekundowy podwaja wszystko wobec dwudziestu sekund i op\u0142aca si\u0119 tylko dla wielko\u015bci, kt\u00f3re faktycznie zmieniaj\u0105 si\u0119 tak szybko.\",\"dezimal\":\",\"};<\/p>\n<p>    \/\/ Uebliche Groessenordnungen je Ziel, als Vorbelegung.\n    const QUELLEN = [\n        { id: 'node',     jeZiel: 900, ziele: 3 },\n        { id: 'cadvisor', jeZiel: 60,  ziele: 12 },\n        { id: 'blackbox', jeZiel: 12,  ziele: 8 },\n        { id: 'eigen',    jeZiel: 40,  ziele: 1 }\n    ];<\/p>\n<p>    const GB = 1024 * 1024 * 1024;\n    const MB = 1024 * 1024;\n    \/\/ Prometheus schreibt jeden Abtastwert zweimal: in das Schreibprotokoll\n    \/\/ und spaeter in den fertigen Block.\n    const SCHREIBFAKTOR = 2;\n    \/\/ Angenommene Schreibfestigkeit einer ordentlichen Karte bzw. SSD.\n    const FESTIGKEIT_TB = { sd: 30, ssd: 300 };<\/p>\n<p>    function zahl(wert, ersatz) {\n        const n = Number(wert);\n        return isFinite(n) ? n : ersatz;\n    }<\/p>\n<p>    function zeitreihen(zeilen) {\n        return (zeilen || []).reduce(function (summe, z) {\n            const je = Math.max(0, zahl(z.jeZiel, 0));\n            const n  = Math.max(0, zahl(z.ziele, 0));\n            return summe + je * n;\n        }, 0);\n    }<\/p>\n<p>    function rechnen(e) {\n        const ein = e || {};\n        const reihen    = Math.max(0, zahl(ein.reihen, 0));\n        const intervall = Math.max(1, zahl(ein.intervall, 15));\n        const tage      = Math.max(1, zahl(ein.tage, 1));\n        const bytes     = Math.max(0.1, zahl(ein.bytes, 1.7));\n        const kopfKB    = Math.max(0.1, zahl(ein.kopfKB, 8));\n        const ramGB     = Math.max(0.5, zahl(ein.ramGB, 8));\n        const traeger   = ein.traeger === 'ssd' ? 'ssd' : 'sd';<\/p>\n<p>        const abtastRate  = reihen \/ intervall;                       \/\/ Abtastwerte je Sekunde\n        const abtastwerte = abtastRate * 86400 * tage;                \/\/ ueber die Aufbewahrung\n        const platteByte  = abtastwerte * bytes;\n        const kopfByte    = reihen * kopfKB * 1024;<\/p>\n<p>        const schreibTagByte  = abtastRate * bytes * SCHREIBFAKTOR * 86400;\n        const schreibJahrByte = schreibTagByte * 365;\n        const festigkeitByte  = FESTIGKEIT_TB[traeger] * 1024 * GB;\n        const lebensdauerJahre = schreibJahrByte > 0 ? festigkeitByte \/ schreibJahrByte : Infinity;<\/p>\n<p>        const ramAnteil = kopfByte \/ (ramGB * GB);<\/p>\n<p>        const hinweise = [];\n        if (reihen <= 0)          { hinweise.push('keine_reihen'); }\n        if (ramAnteil > 0.5)      { hinweise.push('ram_knapp'); }\n        if (ramAnteil > 1)        { hinweise.push('ram_reicht_nicht'); }\n        if (platteByte > 32 * GB) { hinweise.push('platte_gross'); }\n        if (traeger === 'sd')     { hinweise.push('sd_karte'); }\n        if (isFinite(lebensdauerJahre) && lebensdauerJahre < 3) { hinweise.push('verschleiss'); }\n        if (abtastRate > 10000)   { hinweise.push('rate_hoch'); }\n        if (intervall <= 10 &#038;&#038; reihen > 2000) { hinweise.push('intervall_kurz'); }<\/p>\n<p>        return {\n            reihen: reihen,\n            abtastRate: abtastRate,\n            abtastwerte: abtastwerte,\n            platteGB: platteByte \/ GB,\n            kopfGB: kopfByte \/ GB,\n            ramAnteil: ramAnteil,\n            schreibTagMB: schreibTagByte \/ MB,\n            schreibJahrGB: schreibJahrByte \/ GB,\n            lebensdauerJahre: lebensdauerJahre,\n            traeger: traeger,\n            hinweise: hinweise\n        };\n    }<\/p>\n<p>    \/\/ --- Pruefpunkt ----------------------------------------------------------\n    window.LW_TEST = window.LW_TEST || {};\n    window.LW_TEST.PR = { rechnen: rechnen, zeitreihen: zeitreihen, quellen: QUELLEN };<\/p>\n<p>    \/\/ --- Oberflaeche ---------------------------------------------------------<\/p>\n<p>    const quellenBox = document.getElementById('pr-quellen');\n    const btn = document.getElementById('pr-btn');\n    const out = document.getElementById('pr-ausgabe');\n    if (!quellenBox || !btn || !out) { return; }<\/p>\n<p>    function el(tag, stil, text) {\n        const e = document.createElement(tag);\n        if (stil) { e.setAttribute('style', stil); }\n        if (text !== undefined) { e.textContent = text; }\n        return e;\n    }\n    function wert(id) { const e = document.getElementById(id); return e ? e.value : ''; }\n    function komma(n, stellen) {\n        const s = stellen === undefined ? 1 : stellen;\n        if (!isFinite(n)) { return '\u221e'; }\n        return Number(n).toFixed(s).replace('.', T.dezimal);\n    }<\/p>\n<p>    const FELD = 'width: 90px; padding: 7px; background: var(--bg-body, #14141a); border: 1px solid var(--border, #2a2a35); color: var(--text-primary, #e8e8ee); border-radius: 5px; box-sizing: border-box;';<\/p>\n<p>    quellenBox.appendChild(el('div', 'color: var(--text-secondary, #a0a0b0); font-size: 0.78rem;', ''));\n    quellenBox.appendChild(el('div', 'color: var(--text-secondary, #a0a0b0); font-size: 0.78rem;', T.spalte_jeziel));\n    quellenBox.appendChild(el('div', 'color: var(--text-secondary, #a0a0b0); font-size: 0.78rem;', T.spalte_ziele));\n    quellenBox.appendChild(el('div', 'color: var(--text-secondary, #a0a0b0); font-size: 0.78rem;', T.spalte_summe));<\/p>\n<p>    QUELLEN.forEach(function (q) {\n        quellenBox.appendChild(el('div', 'color: var(--text-secondary, #a0a0b0); font-size: 0.87rem;', T['quelle_' + q.id]));\n        const a = document.createElement('input');\n        a.type = 'number'; a.min = '0'; a.step = '1'; a.value = String(q.jeZiel);\n        a.id = 'pr-je-' + q.id; a.style.cssText = FELD;\n        quellenBox.appendChild(a);\n        const b = document.createElement('input');\n        b.type = 'number'; b.min = '0'; b.step = '1'; b.value = String(q.ziele);\n        b.id = 'pr-n-' + q.id; b.style.cssText = FELD;\n        quellenBox.appendChild(b);\n        quellenBox.appendChild(el('div', 'color: var(--text-primary, #e8e8ee); font-size: 0.87rem; font-family: monospace;', '', ''));\n    });<\/p>\n<p>    function zeilenLesen() {\n        return QUELLEN.map(function (q) {\n            return { id: q.id, jeZiel: wert('pr-je-' + q.id), ziele: wert('pr-n-' + q.id) };\n        });\n    }<\/p>\n<p>    const UEBERSCHRIFT = 'font-family: \\'Nunito Sans\\', sans-serif; font-weight: 700; color: var(--text-primary, #e8e8ee); font-size: 0.92rem; margin: 18px 0 8px;';\n    const ZELLE = 'padding: 5px 14px 5px 0; color: var(--text-secondary, #a0a0b0); font-size: 0.87rem;';\n    const ZELLE_WERT = 'padding: 5px 14px 5px 0; color: var(--text-primary, #e8e8ee); font-size: 0.87rem; font-family: monospace;';<\/p>\n<p>    btn.addEventListener('click', function () {\n        const zeilen = zeilenLesen();\n        const reihen = zeitreihen(zeilen);<\/p>\n<p>        \/\/ Summenspalte je Zeile nachtragen\n        QUELLEN.forEach(function (q, i) {\n            const felder = quellenBox.children;\n            const summenFeld = felder[4 + i * 4 + 3];\n            if (summenFeld) {\n                const je = Number(wert('pr-je-' + q.id)) || 0;\n                const n  = Number(wert('pr-n-' + q.id)) || 0;\n                summenFeld.textContent = String(je * n);\n            }\n        });<\/p>\n<p>        const erg = rechnen({\n            reihen: reihen,\n            intervall: wert('pr-intervall'),\n            tage: wert('pr-tage'),\n            bytes: wert('pr-bytes'),\n            kopfKB: wert('pr-kopf'),\n            ramGB: wert('pr-ram'),\n            traeger: wert('pr-traeger')\n        });<\/p>\n<p>        out.innerHTML = '';\n        out.appendChild(el('div', UEBERSCHRIFT, T.h_ergebnis));\n        const g = el('div', 'display: grid; grid-template-columns: auto auto; gap: 0 18px; align-items: baseline;');\n        function zeile(name, w) {\n            g.appendChild(el('div', ZELLE, name));\n            g.appendChild(el('div', ZELLE_WERT, w));\n        }\n        zeile(T.zeile_reihen, komma(erg.reihen, 0));\n        zeile(T.zeile_rate, komma(erg.abtastRate, 1));\n        zeile(T.zeile_platte, komma(erg.platteGB, 2) + ' GB');\n        zeile(T.zeile_kopf, komma(erg.kopfGB, 2) + ' GB');\n        zeile(T.zeile_ramanteil, komma(erg.ramAnteil * 100, 0) + ' %');\n        zeile(T.zeile_schreib_tag, komma(erg.schreibTagMB, 0) + ' MB');\n        zeile(T.zeile_schreib_jahr, komma(erg.schreibJahrGB, 1) + ' GB');\n        zeile(T.zeile_lebensdauer, komma(erg.lebensdauerJahre, 1) + ' ' + T.jahre);\n        out.appendChild(g);<\/p>\n<p>        if (erg.hinweise.length) {\n            out.appendChild(el('div', UEBERSCHRIFT, T.h_hinweise));\n            const liste = el('ul', 'margin: 0 0 0 18px; padding: 0; color: var(--text-secondary, #a0a0b0); font-size: 0.87rem; line-height: 1.65;');\n            erg.hinweise.forEach(function (h) { liste.appendChild(el('li', '', T['hinweis_' + h])); });\n            out.appendChild(liste);\n        }\n    });\n})();\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Zamienia eksportery i interwa\u0142 odpytywania w miejsce na dysku, pami\u0119\u0107 i obci\u0105\u017cenie zapisem &#8211; wraz z tym, co rok zbierania robi z kart\u0105, z kt\u00f3rej startuje Raspberry Pi.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":9284,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"template-tool-base.php","meta":{"footnotes":""},"tags":[92064,92223],"class_list":["post-10439","page","type-page","status-publish","hentry","tag-monitoring-pl","tag-raspberry-pi-pl"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Planer pojemno\u015bci szereg\u00f3w czasowych Prometheusa - Lukas Wojcik - Blog<\/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\/narzedzia\/prometheus-tsdb-capacity-planner\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Planer pojemno\u015bci szereg\u00f3w czasowych Prometheusa - Lukas Wojcik - Blog\" \/>\n<meta property=\"og:description\" content=\"Zamienia eksportery i interwa\u0142 odpytywania w miejsce na dysku, pami\u0119\u0107 i obci\u0105\u017cenie zapisem - wraz z tym, co rok zbierania robi z kart\u0105, z kt\u00f3rej startuje Raspberry Pi.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/pl\/narzedzia\/prometheus-tsdb-capacity-planner\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukas Wojcik - Blog\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-15T12:48:59+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/og-default.jpg\" \/>\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\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/narzedzia\\\/prometheus-tsdb-capacity-planner\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/narzedzia\\\/prometheus-tsdb-capacity-planner\\\/\",\"name\":\"Planer pojemno\u015bci szereg\u00f3w czasowych Prometheusa - Lukas Wojcik - Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"datePublished\":\"2026-08-15T12:39:45+00:00\",\"dateModified\":\"2026-08-15T12:48:59+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/narzedzia\\\/prometheus-tsdb-capacity-planner\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/narzedzia\\\/prometheus-tsdb-capacity-planner\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/narzedzia\\\/prometheus-tsdb-capacity-planner\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Toolbox\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/toolbox-3\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Planer pojemno\u015bci szereg\u00f3w czasowych Prometheusa\"}]},{\"@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\":\"luky\",\"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\":\"luky\"},\"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":"Planer pojemno\u015bci szereg\u00f3w czasowych Prometheusa - Lukas Wojcik - Blog","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\/narzedzia\/prometheus-tsdb-capacity-planner\/","og_locale":"en_US","og_type":"article","og_title":"Planer pojemno\u015bci szereg\u00f3w czasowych Prometheusa - Lukas Wojcik - Blog","og_description":"Zamienia eksportery i interwa\u0142 odpytywania w miejsce na dysku, pami\u0119\u0107 i obci\u0105\u017cenie zapisem - wraz z tym, co rok zbierania robi z kart\u0105, z kt\u00f3rej startuje Raspberry Pi.","og_url":"https:\/\/www.lukaswojcik.com\/blog\/pl\/narzedzia\/prometheus-tsdb-capacity-planner\/","og_site_name":"Lukas Wojcik - Blog","article_modified_time":"2026-08-15T12:48:59+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/og-default.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/narzedzia\/prometheus-tsdb-capacity-planner\/","url":"https:\/\/www.lukaswojcik.com\/blog\/pl\/narzedzia\/prometheus-tsdb-capacity-planner\/","name":"Planer pojemno\u015bci szereg\u00f3w czasowych Prometheusa - Lukas Wojcik - Blog","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"datePublished":"2026-08-15T12:39:45+00:00","dateModified":"2026-08-15T12:48:59+00:00","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/narzedzia\/prometheus-tsdb-capacity-planner\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/pl\/narzedzia\/prometheus-tsdb-capacity-planner\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/narzedzia\/prometheus-tsdb-capacity-planner\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lukaswojcik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Toolbox","item":"https:\/\/www.lukaswojcik.com\/blog\/toolbox-3\/"},{"@type":"ListItem","position":3,"name":"Planer pojemno\u015bci szereg\u00f3w czasowych Prometheusa"}]},{"@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":"luky","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":"luky"},"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\/pages\/10439","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/types\/page"}],"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=10439"}],"version-history":[{"count":1,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/pages\/10439\/revisions"}],"predecessor-version":[{"id":10457,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/pages\/10439\/revisions\/10457"}],"up":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/pages\/9284"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=10439"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=10439"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}