Files
nexus/sreweekly/articles/480/03-understanding-and-optimizing-resource-consumption-in-prometheus.html
2026-09-12 17:23:01 +08:00

1673 lines
187 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en-GB">
<head>
<meta content="width=device-width, initial-scale=1" name="viewport"/>
<link href="https://palark.com/wp-content/themes/palark/assets/images/favicon.png" rel="shortcut icon"
type="image/x-icon"/>
<link href="https://palark.com/wp-content/themes/palark/assets/images/webclip.png" rel="apple-touch-icon"/>
<link rel="preconnect" href="https://palark.matomo.cloud">
<script async type="text/javascript" src="https://palark.com/wp-admin/admin-ajax.php?action=pll_xdata_check&#038;redirect=https%3A%2F%2Fpalark.com%2Fblog%2Fprometheus-resource-consumption-optimization%2F&#038;nonce=a8b1dc82b0"></script><meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' />
<script type="application/ld+json">{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Organization",
"@id": "https://palark.com#organization",
"name": "Palark",
"url": "https://palark.com",
"description": "Palark is a DevOps and SRE (Site Reliability Engineering) agency, created by passionate engineers and offering top-notch, all-in-one services worldwide. We specialise in Kubernetes-based infrastructure and Cloud Native technologies, and provide both a project-based approach and subscription packages, including 24/7 support and consulting services.",
"logo": {
"@type": "ImageObject",
"url": "https://palark.com/wp-content/uploads/2023/07/palark-logo.svg",
"width": 1200,
"height": 216,
"caption": "Palark"
},
"image": {
"@type": "ImageObject",
"url": "https://palark.com/wp-content/uploads/2023/07/palark-logo.svg",
"width": 1200,
"height": 216,
"caption": "Palark"
},
"sameAs": [
"https://www.linkedin.com/company/palark",
"https://github.com/palark",
"https://bsky.app/profile/palark.com",
"https://www.facebook.com/palarkcom/",
"https://www.youtube.com/@palark",
"https://clutch.co/profile/palark"
],
"award": "ISO/IEC 27001 certified",
"knowsAbout": [
"SRE as a Service",
"DevOps as a Service",
"DevOps emergency support",
"Kubernetes and cloud migration",
"Infrastructure & CI/CD audit",
"R&D and technology consulting",
"Private, self-hosted LLM",
"Kubernetes support",
"Solution for SaaS"
],
"contactPoint": {
"@type": "ContactPoint",
"contactType": "customer service",
"email": "info@palark.com",
"telephone": "+49 731 1461 3240",
"availableLanguage": [
"English",
"German"
],
"areaServed": [
"EU",
"US",
"Worldwide"
]
},
"foundingDate": "2022-05-04",
"address": {
"@type": "PostalAddress",
"streetAddress": "Hafenbad 33",
"addressLocality": "Ulm",
"addressCountry": "DE",
"addressRegion": "Baden-Württemberg",
"postalCode": "89073"
},
"legalName": "Palark GmbH",
"numberOfEmployees": {
"@type": "QuantitativeValue",
"minValue": 11,
"maxValue": 50
},
"vatID": "DE352602106"
},
{
"@type": "WebSite",
"@id": "https://palark.com#website",
"url": "https://palark.com",
"name": "Palark",
"description": "Palark | DevOps &amp; SRE",
"publisher": {
"@id": "https://palark.com#organization"
},
"inLanguage": "en-GB",
"potentialAction": {
"@type": "SearchAction",
"target": {
"@type": "EntryPoint",
"urlTemplate": "https://palark.com/?s={search_term_string}"
},
"query-input": {
"@type": "PropertyValueSpecification",
"valueRequired": true,
"valueName": "search_term_string"
}
}
},
{
"@type": "WebPage",
"@id": "https://palark.com/blog/prometheus-resource-consumption-optimization/",
"url": "https://palark.com/blog/prometheus-resource-consumption-optimization/",
"name": "Understanding and optimizing resource consumption in Prometheus | Palark",
"description": "Explore the Prometheus design and see which components consume the most resources. Find out why it happens, what affects it, and how you can optimize your setups to get the best performance in monitoring.",
"isPartOf": {
"@id": "https://palark.com#website"
},
"about": {
"@id": "https://palark.com#organization"
},
"inLanguage": "en-GB",
"datePublished": "2025-05-19T05:56:56+00:00",
"dateModified": "2025-12-23T09:35:13+00:00",
"image": {
"@type": "ImageObject",
"url": "https://palark.com/wp-content/uploads/2025/05/prometheus-resources-and-optimisation.png",
"width": 982,
"height": 500
},
"thumbnailUrl": "https://palark.com/wp-content/uploads/2025/05/prometheus-resources-and-optimisation.png",
"breadcrumb": {
"@id": "https://palark.com/blog/prometheus-resource-consumption-optimization/#breadcrumb"
},
"publisher": {
"@id": "https://palark.com#organization"
}
},
{
"@type": "BreadcrumbList",
"@id": "https://palark.com/blog/prometheus-resource-consumption-optimization/#breadcrumb",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://palark.com/"
},
{
"@type": "ListItem",
"position": 2,
"name": "Blog",
"item": "https://palark.com/blog/"
},
{
"@type": "ListItem",
"position": 3,
"name": "observability",
"item": "https://palark.com/blog/tag/observability/"
},
{
"@type": "ListItem",
"position": 4,
"name": "Understanding and optimizing resource consumption in Prometheus",
"item": "https://palark.com/blog/prometheus-resource-consumption-optimization/"
}
]
},
{
"@type": "TechArticle",
"@id": "https://palark.com/blog/prometheus-resource-consumption-optimization/#techarticle",
"headline": "Understanding and optimizing resource consumption in Prometheus",
"description": "Explore the Prometheus design and see which components consume the most resources. Find out why it happens, what affects it, and how you can optimize your setups to get the best performance in monitoring.",
"mainEntityOfPage": {
"@id": "https://palark.com/blog/prometheus-resource-consumption-optimization/"
},
"url": "https://palark.com/blog/prometheus-resource-consumption-optimization/",
"datePublished": "2025-05-19T05:56:56+00:00",
"dateModified": "2025-12-23T09:35:13+00:00",
"inLanguage": "en-GB",
"publisher": {
"@id": "https://palark.com#organization"
},
"image": {
"@type": "ImageObject",
"url": "https://palark.com/wp-content/uploads/2025/05/prometheus-resources-and-optimisation.png",
"width": 982,
"height": 500
},
"thumbnailUrl": "https://palark.com/wp-content/uploads/2025/05/prometheus-resources-and-optimisation.png",
"wordCount": 4094,
"proficiencyLevel": "Expert",
"articleSection": [
"observability",
"Prometheus"
],
"keywords": [
"observability",
"Prometheus"
]
},
{
"@type": "SoftwareSourceCode",
"name": "Understanding and optimizing resource consumption in Prometheus - Source Code",
"codeSampleType": "full code snippet",
"programmingLanguage": "TypeScript",
"runtimePlatform": "Cloud",
"url": "https://github.com/google/pprof",
"isPartOf": "https://palark.com/blog/prometheus-resource-consumption-optimization/"
}
]
}</script>
<!-- This site is optimized with the Yoast SEO plugin v28.4 - https://yoast.com/product/yoast-seo-wordpress/ -->
<title>Understanding and optimizing resource consumption in Prometheus | Tech blog | Palark</title>
<link rel="canonical" href="https://palark.com/blog/prometheus-resource-consumption-optimization/" />
<meta property="og:locale" content="en_GB" />
<meta property="og:type" content="article" />
<meta property="og:title" content="Understanding and optimizing resource consumption in Prometheus | Tech blog | Palark" />
<meta property="og:description" content="Explore the Prometheus design and see which components consume the most resources. Find out why it happens, what affects it, and how you can optimize your setups to get the best performance in monitoring." />
<meta property="og:url" content="https://palark.com/blog/prometheus-resource-consumption-optimization/" />
<meta property="og:site_name" content="Palark" />
<meta property="article:published_time" content="2025-05-19T05:56:56+00:00" />
<meta property="article:modified_time" content="2025-12-23T09:35:13+00:00" />
<meta property="og:image" content="https://palark.com/wp-content/uploads/2025/05/prometheus-resources-and-optimisation.png" />
<meta property="og:image:width" content="982" />
<meta property="og:image:height" content="500" />
<meta property="og:image:type" content="image/png" />
<meta name="author" content="Vladimir Guryanov" />
<meta name="twitter:card" content="summary_large_image" />
<!-- / Yoast SEO plugin. -->
<link rel='dns-prefetch' href='//www.googletagmanager.com' />
<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://palark.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fpalark.com%2Fblog%2Fprometheus-resource-consumption-optimization%2F" />
<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://palark.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fpalark.com%2Fblog%2Fprometheus-resource-consumption-optimization%2F&#038;format=xml" />
<style id="wp-img-auto-sizes-contain-inline-css">
img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
</style>
<link id='wp-block-library-css' href='/wp-includes/css/dist/block-library/style.min.css?ver=7.1' media='all' rel="preload" as="style" onload="this.onload=null;this.rel='stylesheet'" /><noscript><link rel='stylesheet' id='wp-block-library-css' href='/wp-includes/css/dist/block-library/style.min.css?ver=7.1' media='all' />
</noscript><style id="co-authors-plus-coauthors-style-inline-css">
.wp-block-co-authors-plus-coauthors.is-layout-flow [class*=wp-block-co-authors-plus]{display:inline}
/*# sourceURL=https://palark.com/wp-content/plugins/co-authors-plus/build/blocks/block-coauthors/style-index.css */
</style>
<style id="co-authors-plus-avatar-style-inline-css">
.wp-block-co-authors-plus-avatar :where(img){height:auto;max-width:100%;vertical-align:bottom}.wp-block-co-authors-plus-coauthors.is-layout-flow .wp-block-co-authors-plus-avatar :where(img){vertical-align:middle}.wp-block-co-authors-plus-avatar:is(.alignleft,.alignright){display:table}.wp-block-co-authors-plus-avatar.aligncenter{display:table;margin-inline:auto}
/*# sourceURL=https://palark.com/wp-content/plugins/co-authors-plus/build/blocks/block-coauthor-avatar/style-index.css */
</style>
<style id="co-authors-plus-image-style-inline-css">
.wp-block-co-authors-plus-image{margin-bottom:0}.wp-block-co-authors-plus-image :where(img){height:auto;max-width:100%;vertical-align:bottom}.wp-block-co-authors-plus-coauthors.is-layout-flow .wp-block-co-authors-plus-image :where(img){vertical-align:middle}.wp-block-co-authors-plus-image:is(.alignfull,.alignwide) :where(img){width:100%}.wp-block-co-authors-plus-image:is(.alignleft,.alignright){display:table}.wp-block-co-authors-plus-image.aligncenter{display:table;margin-inline:auto}
/*# sourceURL=https://palark.com/wp-content/plugins/co-authors-plus/build/blocks/block-coauthor-image/style-index.css */
</style>
<style id="safe-svg-svg-icon-style-inline-css">
.wp-block-safe-svg-svg-icon a{align-self:center}.safe-svg-cover{text-align:center}.safe-svg-cover .safe-svg-inside{display:inline-block;max-width:100%}.safe-svg-cover svg{fill:currentColor;height:100%;max-height:100%;max-width:100%;width:100%}
/*# sourceURL=https://palark.com/wp-content/plugins/safe-svg/dist/safe-svg-block-frontend.css */
</style>
<style id="global-styles-inline-css">
:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--color--purple: #9540ff;--wp--preset--color--lime: #00ddba;--wp--preset--color--blue: #00a1fC;--wp--preset--color--dark: #231f20;--wp--preset--color--gray: #bcbcbc;--wp--preset--color--light-gray: #f6f6f6;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,0) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:where(body) { margin: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}.is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){margin-left: auto !important;margin-right: auto !important;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-purple-color{color: var(--wp--preset--color--purple) !important;}.has-lime-color{color: var(--wp--preset--color--lime) !important;}.has-blue-color{color: var(--wp--preset--color--blue) !important;}.has-dark-color{color: var(--wp--preset--color--dark) !important;}.has-gray-color{color: var(--wp--preset--color--gray) !important;}.has-light-gray-color{color: var(--wp--preset--color--light-gray) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-purple-background-color{background-color: var(--wp--preset--color--purple) !important;}.has-lime-background-color{background-color: var(--wp--preset--color--lime) !important;}.has-blue-background-color{background-color: var(--wp--preset--color--blue) !important;}.has-dark-background-color{background-color: var(--wp--preset--color--dark) !important;}.has-gray-background-color{background-color: var(--wp--preset--color--gray) !important;}.has-light-gray-background-color{background-color: var(--wp--preset--color--light-gray) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-purple-border-color{border-color: var(--wp--preset--color--purple) !important;}.has-lime-border-color{border-color: var(--wp--preset--color--lime) !important;}.has-blue-border-color{border-color: var(--wp--preset--color--blue) !important;}.has-dark-border-color{border-color: var(--wp--preset--color--dark) !important;}.has-gray-border-color{border-color: var(--wp--preset--color--gray) !important;}.has-light-gray-border-color{border-color: var(--wp--preset--color--light-gray) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
:root :where(.wp-block-icon svg){width: 24px;}
:where(.wp-block-gallery.is-layout-flex){gap: var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) );}:where(.wp-block-gallery.is-layout-grid){gap: var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) );}
:where(.wp-block-latest-posts.is-layout-flex){gap: 1.25em;}:where(.wp-block-latest-posts.is-layout-grid){gap: 1.25em;}
:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}
:where(.wp-block-term-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-term-template.is-layout-grid){gap: 1.25em;}
:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}
:root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;}
/*# sourceURL=global-styles-inline-css */
</style>
<link id='cf7apps-honeypot-frontend-css' href='/wp-content/plugins/contact-form-7-honeypot/legacy-honeypot/includes/css/honeypot-frontend.css?ver=3.7.1' media='all' rel="preload" as="style" onload="this.onload=null;this.rel='stylesheet'" /><noscript><link rel='stylesheet' id='cf7apps-honeypot-frontend-css' href='/wp-content/plugins/contact-form-7-honeypot/legacy-honeypot/includes/css/honeypot-frontend.css?ver=3.7.1' media='all' />
</noscript><link id='scriptlesssocialsharing-css' href='/wp-content/plugins/scriptless-social-sharing/includes/css/scriptlesssocialsharing-style.css?ver=3.3.1' media='all' rel="preload" as="style" onload="this.onload=null;this.rel='stylesheet'" /><noscript><link rel='stylesheet' id='scriptlesssocialsharing-css' href='/wp-content/plugins/scriptless-social-sharing/includes/css/scriptlesssocialsharing-style.css?ver=3.3.1' media='all' />
</noscript><style id="scriptlesssocialsharing-inline-css">
.scriptlesssocialsharing__buttons a.button { padding: 12px; flex: 1; }@media only screen and (max-width: 767px) { .scriptlesssocialsharing .sss-name { position: absolute; clip: rect(1px, 1px, 1px, 1px); height: 1px; width: 1px; border: 0; overflow: hidden; } }
/*# sourceURL=scriptlesssocialsharing-inline-css */
</style>
<link id='lazyload-video-css-css' href='/wp-content/plugins/lazy-load-for-videos/public/css/lazyload-shared.css?ver=2.18.11' media='all' rel="preload" as="style" onload="this.onload=null;this.rel='stylesheet'" /><noscript><link rel='stylesheet' id='lazyload-video-css-css' href='/wp-content/plugins/lazy-load-for-videos/public/css/lazyload-shared.css?ver=2.18.11' media='all' />
</noscript><style id="lazyload-video-css-inline-css">
.entry-content a.lazy-load-youtube, a.lazy-load-youtube, .lazy-load-vimeo{ background-size: cover; }.titletext.youtube { display: none; }.lazy-load-div:before { content: "\25B6"; text-shadow: 0px 0px 60px rgba(0,0,0,0.8); }
/*# sourceURL=lazyload-video-css-inline-css */
</style>
<script id="theme-app-js-extra">
var backend_data = {"ajax_url":"https://palark.com/wp-admin/admin-ajax.php","current_lang":"en","second_lang":"de"};
var popup_messages = {"language_helper":{"title":"Deutsch?","text":"In&nbsp;deinen Spracheinstellungen ist Deutsch als Standardsprache eingestellt. Du kannst jetzt zur deutschen Version wechseln.","button":"Zu palark.de wechseln"}};
var palark_cf7 = {"phone_invalid":"Please enter a\u00a0valid phone number for\u00a0the\u00a0selected country.","server_error":"Something went wrong while sending your message. Please try again later."};
//# sourceURL=theme-app-js-extra
</script>
<script id="theme-app-js" defer src="/wp-content/themes/palark/assets/js/app.min.js?ver=1.6.41"></script>
<script id="theme-language-helper-js" defer src="/wp-content/themes/palark/assets/js/language-helper.min.js?ver=1.6.41"></script>
<script id="theme-cookie-banner-js" defer src="/wp-content/themes/palark/assets/js/cookie-banner.min.js?ver=1.6.41"></script>
<script id="theme-nice-select-js" defer src="/wp-content/themes/palark/assets/js/nice-select.min.js?ver=1.6.41"></script>
<script id="theme-highlight-js" defer src="/wp-content/themes/palark/assets/js/highlight.min.js?ver=1.6.41"></script>
<script id="theme-comment-js" defer src="/wp-content/themes/palark/assets/js/comment.min.js?ver=1.6.41"></script>
<script id="theme-tooltips-js" defer src="/wp-content/themes/palark/assets/js/tooltips.min.js?ver=1.6.41"></script>
<script id="theme-blog-post-toc-js" defer src="/wp-content/themes/palark/assets/js/blog-post-toc.min.js?ver=1.6.41"></script>
<script id="theme-clipboard-js" defer src="/wp-content/themes/palark/assets/js/clipboard.min.js?ver=1.6.41"></script>
<!-- Google tag (gtag.js) snippet added by Site Kit -->
<!-- Google Analytics snippet added by Site Kit -->
<script id="google_gtagjs-js" defer src="https://www.googletagmanager.com/gtag/js?id=GT-PBZC4FK" async></script>
<script id="google_gtagjs-js-after">
window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);}
gtag("set","linker",{"domains":["palark.com"]});
gtag("js", new Date());
gtag("set", "developer_id.dZTNiMT", true);
gtag("config", "GT-PBZC4FK");
window._googlesitekit = window._googlesitekit || {}; window._googlesitekit.throttledEvents = []; window._googlesitekit.gtagEvent = (name, data) => { var key = JSON.stringify( { name, data } ); if ( !! window._googlesitekit.throttledEvents[ key ] ) { return; } window._googlesitekit.throttledEvents[ key ] = true; setTimeout( () => { delete window._googlesitekit.throttledEvents[ key ]; }, 5 ); gtag( "event", name, { ...data, event_source: "site-kit" } ); };
//# sourceURL=google_gtagjs-js-after
</script>
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://palark.com/xmlrpc.php?rsd" />
<meta name="generator" content="Site Kit by Google 1.186.0" />
<!-- OneAll.com / Social Login for WordPress / v5.10.0 -->
<script data-cfasync="false" type="text/javascript">
(function() {
var oa = document.createElement('script'); oa.type = 'text/javascript';
oa.async = true; oa.src = 'https://palark.api.oneall.com/socialize/library.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(oa, s);
})();
</script>
<style>.oneall_social_login + p.comment-notes{margin-top: 10px !important;}#login #loginform .oneall_social_login{background-color: rgba(0, 0, 0, 0.04);padding: 10px 10px 0 10px;margin-bottom: 10px;border: 1px solid rgba(0, 0, 0, 0.06);border-radius: 4px;}</style><link rel="preload" href="https://palark.com/wp-content/themes/palark/assets/fonts/fonts.css?ver=1.6.41" as="style" onload="this.onload=null;this.rel='stylesheet'">
<noscript><link rel="stylesheet" href="https://palark.com/wp-content/themes/palark/assets/fonts/fonts.css?ver=1.6.41"></noscript>
<link rel="preload" href="https://palark.com/wp-content/themes/palark/assets/css/roboto-fonts.min.css?ver=1.6.41" as="style" onload="this.onload=null;this.rel='stylesheet'">
<noscript><link rel="stylesheet" href="https://palark.com/wp-content/themes/palark/assets/css/roboto-fonts.min.css?ver=1.6.41"></noscript>
<link rel="preload" href="https://palark.com/wp-content/themes/palark/assets/fonts/StyreneA/Bold.woff" as="font" type="font/woff" crossorigin>
<link rel="preload" href="https://palark.com/wp-content/themes/palark/assets/fonts/StyreneA/Medium.woff" as="font" type="font/woff" crossorigin>
<link rel="preload" href="https://palark.com/wp-content/themes/palark/assets/fonts/StyreneA/Regular.woff" as="font" type="font/woff" crossorigin>
<style>@media screen and (max-width:767px){:root{--wp--preset--font-size--medium:1.125rem}}html{height:100%;scroll-behavior:smooth;scroll-padding-top:110px}@media screen and (max-width:991px){html{scroll-padding-top:60px}}html ::selection{background:#9540ff;color:#fff}body{--wp--style--global--content-size:1504px;background-color:#fff;color:#231f20;font-family:Styrene A,Arial,sans-serif;font-size:14px;line-height:1.2;margin:0;min-height:100%;overflow-x:hidden}@media screen and (min-width:480px){body{font-size:16px}}main{margin-top:-4rem;position:relative}@media screen and (min-width:768px){main{margin-top:-100px}}a{color:#231f20;transition:color .2s}a:hover{text-decoration:none}p{line-height:1.6;margin:0 0 1em}p:first-child{margin-top:0}p:last-child{margin-bottom:0}ul{line-height:1.6;margin:0 0 1rem;padding-left:2.5rem}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.2;margin:0 0 10px}.h1,.h1 .bold,.h2 .bold,.h3 .bold,.h4 .bold,.h5 .bold,.h6 .bold,h1,h1 .bold,h2 .bold,h3 .bold,h4 .bold,h5 .bold,h6 .bold{text-transform:uppercase}.h1,h1{font-size:1.75rem;margin-bottom:1rem;margin-top:0}@media screen and (min-width:480px){.h1,h1{font-size:2.2rem}}@media screen and (min-width:768px){.h1,h1{font-size:2.5rem}}@media screen and (min-width:992px){.h1,h1{font-size:3rem}}.h1.margin-medium{margin-right:2rem}@media screen and (min-width:1440px){.h1.pricing-heading-chlim{max-width:35%}}@media screen and (max-width:479px){.h1.mob-xl{font-size:2.4rem}}.h1.x-large{font-size:3.6rem}@media screen and (min-width:480px){.h1.x-large{font-size:5rem}}.h1.xx-large{font-size:2.9rem}@media screen and (min-width:480px){.h1.xx-large{font-size:6rem}}.h1.absolute-center{bottom:auto;left:auto;margin:auto;position:absolute;right:auto;top:auto}.h1.home-hero-chlim{max-width:20ch}.h2,h2{font-size:1.5rem;margin-bottom:1.2rem;text-transform:uppercase}@media screen and (min-width:480px){.h2,h2{font-size:2rem}}@media screen and (min-width:768px){.h2,h2{font-size:2.5em}}@media screen and (min-width:1280px){.h2,h2{font-size:2.8rem}}.h2 img,h2 img{vertical-align:bottom}.h2.chlim---what-we-do{max-width:11ch}@media screen and (min-width:992px){.h2.chlim---what-we-do{max-width:9ch}}.h2.chlim-service-hero{max-width:20ch}.h2.snake-case{text-transform:capitalize}.h2.bold{margin-bottom:2rem}.h2.margin-top-a{margin-top:auto}.h2.margin-bottom-none{margin-bottom:0}.h2.margin-bottom-none.services{font-size:1.3rem}@media screen and (min-width:480px){.h2.margin-bottom-none.services{font-size:1.4rem}}@media screen and (min-width:768px){.h2.margin-bottom-none.services{font-size:2rem}}.h2.text-white{color:#fff}.h2.align-left{margin-right:auto}.h2.subscribe-heading{margin-bottom:1.8rem}.h2.medium{margin-bottom:0;text-decoration:none}.h2.accent span{color:#9540ff}.h3,h3{font-size:1.5em;margin-bottom:1rem}@media screen and (min-width:768px){.h3,h3{font-size:1.75rem}}@media screen and (min-width:992px){.h3,h3{font-size:2rem}}.h3.margin-bottom-s{margin-bottom:2.5rem}.h3.margin-b-m{margin-bottom:2rem}@media screen and (min-width:1280px){.h3.bold{color:#000}}.h4,h4{font-size:1.25rem;letter-spacing:-.02em;margin-bottom:0;margin-top:0}@media screen and (min-width:768px){.h4,h4{font-size:1.5rem}}.h4.medium{text-decoration:underline}.h4.medium,.h4.normal{font-weight:500}.h4.team-member-name{margin-bottom:1rem;margin-right:auto}@media screen and (min-width:1440px){.h4.team-member-name{margin-bottom:.125rem}}.h4.no-margin{margin-bottom:0}.h4.blogs{font-size:1.3rem;font-weight:700;min-height:6.1rem}@media screen and (min-width:1280px){.h4.blogs{font-size:1.4rem}}@media screen and (max-width:767px){.h4.blogs{font-size:1.5rem;line-height:148%;min-height:3rem}}.h5,h5{font-size:1.2rem;margin-bottom:1rem;margin-top:0}.h5.grey{color:#575863}.h6,h6{font-size:.75rem;margin-bottom:1rem;margin-top:10px}.bold{font-weight:700}.upper{text-transform:uppercase}.t-red{color:#f14040}.t-center{text-align:center}.accent-p,.span-purple{color:#9540ff;text-align:left}img{height:auto;max-width:100%;object-fit:contain}.link{color:#231f20;font-weight:700;text-decoration:none}.link--arrow{align-items:center;display:inline-flex;font-size:1.25rem;gap:.25rem;line-height:1.6;position:relative}.link--arrow img{filter:invert(1) brightness(0) contrast(70%);height:.875rem;position:relative;top:.125rem;transform:translateX(0);transition:transform .3s ease;width:.875rem}.link--arrow:hover img{transform:translateX(25%)}.num-list{counter-reset:num;line-height:1.6;list-style-type:none;margin:30px 0 0 45px;padding:15px 0 5px}@media screen and (min-width:992px){.num-list{font-size:20px;margin:30px 0 30px 45px}}.num-list li{padding:0 0 36px 54px;position:relative}@media screen and (min-width:992px){.num-list li{padding:0 0 0 84px}}.num-list li:last-child{padding-bottom:0}.num-list li:before{align-items:center;border:3px solid #231f20;border-radius:50%;color:#231f20;content:counters(num,".",decimal-leading-zero);counter-increment:num;display:flex;font-size:16px;font-weight:700;height:36px;justify-content:center;left:0;position:absolute;top:0;width:36px}@media screen and (min-width:992px){.num-list li:before{border-width:4px;font-size:20px;height:40px;top:4px;width:40px}}.wide-list{display:flex;flex-direction:column}.wide-list li{box-sizing:content-box}@media screen and (min-width:992px){.wide-list li{max-width:373px}.wide-list li:nth-child(2n){margin-left:auto}}.overflow-hidden{overflow:hidden}section{margin-bottom:2em;margin-top:2em}section:first-child{margin-top:0}section:last-child{margin-bottom:0}@media screen and (min-width:768px){section{margin-bottom:3em;margin-top:3em}}@media screen and (min-width:1280px){section{margin-bottom:5em;margin-top:5em}}section.has-background{padding-bottom:2em;padding-top:2em}@media screen and (min-width:768px){section.has-background{padding-bottom:3em;padding-top:3em}}@media screen and (min-width:1280px){section.has-background{padding-bottom:5em;padding-top:5em}}.hero-spacer-top{background-color:#f4f3f4;height:4.8rem}@media screen and (min-width:480px){.hero-spacer-top{height:5.5rem}}@media screen and (min-width:768px){.hero-spacer-top{height:5.4rem}}@media screen and (min-width:992px){.hero-spacer-top{height:14rem}}@media screen and (min-width:768px){.hero-spacer-top_small{height:7rem}}.g-t-10{grid-template-columns:10% auto!important}@media screen and (min-width:768px){.g-t-10{font-size:1.25rem}}.a-i-right{align-items:flex-end!important}.a-i-right .wp-block-group{width:100%}.m-b-40{margin-bottom:1.5rem}@media screen and (min-width:992px){.m-b-40{margin-bottom:2.5rem}}.m-0-auto{margin:0 auto}.p-l-0{padding-left:0!important}.container{box-sizing:border-box;margin:0 auto;max-width:100%;padding-left:20px;padding-right:20px;width:100%}@media screen and (min-width:480px){.container{padding-left:32px;padding-right:32px}}@media screen and (min-width:1440px){.container{max-width:var(--wp--style--global--content-size)}}.container--bordered{border-bottom:1px solid #231f20}.content{align-items:flex-start;display:flex;flex-direction:column;height:100%;justify-content:center;max-width:1180px;min-height:4rem;width:90%}@media screen and (min-width:1280px){.content{max-width:1340px;width:92%}}@media screen and (min-width:1440px){.content{max-width:1440px}}.content.large,.content.relative{position:relative;z-index:2}.content.large{max-width:none;width:100%}@media screen and (min-width:1280px){.content.large{width:100%}}.content.large.center{align-items:center}@media screen and (max-width:991px){.content.large.tablet-reversed{flex-direction:column-reverse}}.content.left-align{align-items:flex-start;width:90%}.content.display-flex{flex-direction:row}@media screen and (max-width:767px){.content.display-flex{align-items:center;flex-direction:column}}.content.overflow{display:none;width:100%}@media screen and (max-width:991px){.content.overflow{display:flex}}.content.align-left{align-items:flex-start}.content.reduced{width:84%}@media screen and (min-width:1280px){.content.reduced{max-width:979px}}@media screen and (min-width:1440px){.content.reduced{max-width:1160px}}.content.small-inner{align-items:center;bottom:0;flex-direction:row;left:0;margin-left:auto;margin-right:auto;position:absolute;right:0;top:0;z-index:-1}@media screen and (min-width:1440px){.content.small-inner{align-items:center;flex-direction:row;margin-left:auto;margin-right:auto;position:absolute;z-index:10}}@media screen and (max-width:991px){.content.small-inner{flex-direction:column}}.content.small-hero-inner{align-items:flex-end;bottom:auto;flex-direction:row;height:45%;left:0;margin-left:auto;margin-right:auto;position:absolute;right:0;top:0;z-index:-1}@media screen and (min-width:1440px){.content.small-hero-inner{align-items:center;flex-direction:row;height:39.6%;margin-left:auto;margin-right:auto;position:absolute;z-index:-1}}@media screen and (max-width:991px){.content.small-hero-inner{flex-direction:column;height:55%}}@media screen and (max-width:767px){.content.small-hero-inner{display:none}}.content.inner-cards{align-items:center;bottom:0;flex-direction:row;left:0;margin-left:auto;margin-right:auto;position:absolute;right:0;top:0;z-index:2}@media screen and (min-width:1440px){.content.inner-cards{align-items:center;flex-direction:row;margin-left:auto;margin-right:auto;position:absolute;z-index:10}}@media screen and (max-width:991px){.content.inner-cards{flex-direction:column}}@media screen and (max-width:767px){.content.inner-cards{flex-direction:column}}.content.center{align-items:flex-start}@media screen and (min-width:1440px){.content.center{align-items:flex-start}}.content.hero-content-handler{align-items:center;bottom:0;flex-direction:row;justify-content:flex-start;left:0;margin-left:auto;margin-right:auto;position:absolute;right:0;top:0;z-index:-1}@media screen and (min-width:1440px){.content.hero-content-handler{align-items:center;flex-direction:row;margin-left:auto;margin-right:auto;position:absolute;z-index:10}}@media screen and (max-width:991px){.content.hero-content-handler{flex-direction:column;margin-top:3rem;position:relative;z-index:2}}.content-grid{grid-column-gap:0;grid-row-gap:0;align-items:center;grid-template-columns:minmax(30px,1fr) minmax(auto,500px) minmax(auto,700px) minmax(30px,1fr);grid-template-rows:auto}@media screen and (max-width:767px){.content-grid{grid-template-columns:1fr}}.nb{background-color:#00a1fc;color:#fff;position:sticky;top:0;z-index:92}.nb .container{align-items:center;display:flex;gap:16px;justify-content:space-between}.nb__spacer{display:none}@media screen and (min-width:992px){.nb__spacer{display:block}}.nb__content{font-size:14px;line-height:1.35}@media screen and (min-width:992px){.nb__content{font-size:16px}}.nb__content p{margin:0;padding:.5em 0}.nb__content p a{color:#fff;text-decoration:underline}.nb__content p a:hover{text-decoration:none}.nb__close{cursor:pointer;font-size:25px}.nb__close:hover{color:#fff}.header{box-shadow:0 0 10px transparent;display:flex;justify-content:center;left:0;position:sticky;top:0;transition:all .15s ease-in-out;z-index:150}@media screen and (min-width:601px){body.admin-bar .header{top:46px}}@media screen and (min-width:782px){body.admin-bar .header{top:32px}}body.header-menu-opened .header{background:#fff}@media screen and (max-width:991px){body.header-menu-opened .header{position:fixed;right:0;top:0!important;width:100%}}.header_float{background:#fff}.header__logo{height:28px}@media screen and (min-width:1280px){.header__logo{height:40px}}.header__logo>*{height:100%;width:auto}.header__content{align-items:center;display:flex;justify-content:space-between;width:100%}@media screen and (min-width:768px){.header__content{height:100px}}@media screen and (min-width:992px){.header__controls{align-items:center;display:flex;flex:1;position:relative}}@media screen and (max-width:991px){.header__controls{display:contents}}.header__right{align-items:center;display:flex;gap:2.5rem;margin-left:2em}@media screen and (min-width:1440px){.header__right{gap:3.125rem}}@media screen and (max-width:991px){.header__right{display:contents}}.header__title{align-items:center;display:flex;flex-direction:row}.header__title img{max-height:22px}@media screen and (min-width:768px){.header__title img{max-height:26px}}@media screen and (min-width:992px){.header__title img{max-height:none}}.header__hamburger{cursor:pointer;display:inline-block;flex-shrink:0;height:1rem;position:relative;transition:.3s;width:1.5rem}@media screen and (min-width:992px){.header__hamburger{display:none}}.header__hamburger span{background:#141f2e;border-radius:8px;display:block;height:.125rem;position:absolute;transition:.5s cubic-bezier(.8,.5,.2,1.4);width:100%}.header__hamburger span:first-child{left:0;top:0}.header__hamburger span:nth-child(2){left:0;top:50%;transform:translateY(-50%)}.header__hamburger span:nth-child(3){bottom:0;left:0}body.header-menu-opened .header__hamburger{transition:.2s cubic-bezier(.8,.5,.2,1.4)}body.header-menu-opened .header__hamburger span:first-child{transform:rotate(-45deg) translate(-4px,6px)}body.header-menu-opened .header__hamburger span:nth-child(2){opacity:0;transform:translate(100%,-50%)}body.header-menu-opened .header__hamburger span:nth-child(3){transform:rotate(45deg) translate(-4px,-6px)}@media screen and (min-width:992px){.header .nav{align-items:center;display:flex;font-size:.85rem;gap:1rem;justify-content:space-between;list-style:none;margin:0;padding:0}}@media screen and (min-width:1280px){.header .nav{font-size:1rem;gap:2rem}}@media screen and (min-width:992px){.header .nav .sub-menu{background-color:#f3f3f3;border:1px solid #7e7e7e;border-radius:1px;display:flex;flex-direction:column;gap:1rem 1.875rem;list-style:none;margin:0;min-width:240px;padding:1.5rem}.header .nav .sub-menu-container{left:-2em;opacity:0;padding-top:1.5rem;position:absolute;transform:scale(.75) translateY(19px);transform-origin:50% 0;transition:all .2s cubic-bezier(.5,0,0,1.25),opacity .15s ease-out;visibility:hidden;z-index:100}.header .nav .sub-menu-container--grouped{left:auto;max-width:calc(100vw - 2.5rem);min-width:52.0625rem;right:0;width:max-content}.header .nav .sub-menu a{color:#231f20;text-decoration:none;white-space:nowrap}.header .nav .sub-menu a:hover{color:#9540ff}.header .nav .sub-menu:not(.grouped-menu,.two-columns){width:max-content}.header .nav .sub-menu.two-columns{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);width:100%}.header .nav .sub-menu.grouped-menu{column-gap:1.875rem;display:grid;grid-template-columns:minmax(max-content,1fr) minmax(max-content,1fr);row-gap:2rem;width:100%}.header .nav .sub-menu.grouped-menu .menu-group{display:block;padding-right:0}.header .nav .sub-menu.grouped-menu .menu-group:nth-child(2){grid-column:2;grid-row:1/span 2}.header .nav .sub-menu.grouped-menu .menu-group:nth-child(3){grid-column:1;grid-row:2}.header .nav .sub-menu.grouped-menu .menu-group__title{display:block;font-size:.875rem;font-weight:700;line-height:1.1875rem;text-transform:uppercase;white-space:nowrap}}@media screen and (min-width:992px)and (min-width:1280px){.header .nav .sub-menu.grouped-menu .menu-group__title{font-size:1rem}}@media screen and (min-width:992px){.header .nav .sub-menu.grouped-menu .menu-group__items{align-items:flex-start;display:flex;flex-direction:column;gap:1.25rem;list-style:none;margin:1.25rem 0 0;padding:0}.header .nav .sub-menu.grouped-menu>.menu-item__last{grid-column:1/-1}.header .nav .sub-menu .menu-item__icon{display:inline-block;height:1.125rem;margin-right:.25rem;object-fit:contain;vertical-align:middle;width:1.125rem}.header .nav .sub-menu .menu-item__last{border-top:1px solid #7e7e7e;grid-column:1/-1;padding-top:1rem}}.header .nav a{color:#231f20;font-size:1rem;text-decoration:none;white-space:nowrap}.header .nav a:hover{color:#9540ff}@media screen and (min-width:768px){.header .nav a{font-size:1.125rem}}@media screen and (min-width:992px){.header .nav a{font-size:.85rem}}@media screen and (min-width:1280px){.header .nav a{font-size:1rem}}.header .nav a[target=_blank]{align-items:center;display:inline-flex}.header .nav a[target=_blank]:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 1024 1024'%3E%3Cpath d='M960 704c-35.346 0-64 28.654-64 64v64c0 35.346-28.654 64-64 64H192c-35.346 0-64-28.654-64-64V192c0-35.346 28.654-64 64-64h64c35.346 0 64-28.654 64-64S291.346 0 256 0h-64C85.961 0 0 85.961 0 192v640c0 106.039 85.961 192 192 192h640c106.039 0 192-85.961 192-192v-64c0-35.346-28.654-64-64-64z'/%3E%3Cpath d='M1023.876 51.52c0-1.92 0-3.84-1.6-5.44a63.957 63.957 0 0 0-1.92-6.4 63.973 63.973 0 0 0-3.2-6.4s0-3.2-2.56-4.8a63.989 63.989 0 0 0-17.6-17.6L991.876 8l-6.08-3.2-6.72-1.92h-5.44A64.028 64.028 0 0 0 959.876 0h-384c-35.346 0-64 28.654-64 64s28.654 64 64 64h229.44l-370.56 370.88c-25.007 25.007-25.007 65.553 0 90.56s65.553 25.007 90.56 0l370.56-370.88V448c0 35.346 28.654 64 64 64s64-28.654 64-64V64c.407-4.15.407-8.33 0-12.48z'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:contain;content:"";display:inline-block;height:.875rem;margin-left:.375rem;width:.875rem}@media screen and (max-width:991px){.header .nav .current-menu-item a,.header .nav .current_page_parent a{color:#818181!important}}@media screen and (min-width:992px){.header .nav>.current-menu-item:not(:has(>.sub-menu-container))>a,.header .nav>.current_page_parent:not(:has(>.sub-menu-container))>a{color:#818181!important}.header .nav .sub-menu .current-menu-item>a{color:#818181!important}}.header .button.pc-only-button{font-size:1rem;min-height:3rem;min-width:10rem;padding:.5rem 1.5rem}@media screen and (max-width:991px){.header .button.pc-only-button{display:none}}@media screen and (min-width:992px){.header .menu-item-has-children{display:inline-block;padding-right:1.625rem;position:relative}.header .menu-item-has-children.menu-item--grouped-submenu{position:static}.header .menu-item-has-children:hover .sub-menu-container{opacity:1;transform:scale(1);visibility:visible}.header .menu-item-has-children:hover>a{color:#9540ff}.header .menu-item-has-children:hover>a:after{border-color:#9540ff;transform:rotate(-135deg)}.header .menu-item-has-children>a{cursor:pointer;display:inline-block;position:relative}.header .menu-item-has-children>a:after{border-bottom:1.5px solid #000;border-right:1.5px solid #000;content:"";display:block;height:5px;margin-top:-3px;pointer-events:none;position:absolute;right:-.875rem;top:50%;transform:rotate(45deg);transform-origin:66% 66%;transition:all .15s ease-in-out;width:5px}}@media screen and (min-width:992px)and (min-width:1280px){.header .menu-item-has-children>a:after{border-width:2px}}.header .language-links{display:flex;font-size:14px;gap:1em;margin:0 auto 0 1.25em}@media screen and (min-width:480px){.header .language-links{margin:0 auto 0 3em}}@media screen and (min-width:1280px){.header .language-links{font-size:16px}}.header .language-links a{color:#231f20;text-decoration:none}.header .language-links a:hover{color:#9540ff}.header .language-links a.active{color:#9540ff;position:relative}@media screen and (min-width:768px){.header .language-links a.active{font-weight:600}}.header .language-links a.active:after{background-color:#9540ff;bottom:-.2em;content:"";height:2px;left:0;position:absolute;width:100%}@media screen and (min-width:768px){.header .language-links a.active:after{bottom:-.45em;height:3px}}html:has(body.header-menu-opened){overflow:hidden;overscroll-behavior:none}body.header-menu-opened{overflow:hidden;overscroll-behavior:none;transition:.2s}body.header-menu-opened:after{background-color:rgba(0,0,0,.5);content:"";height:100%;position:fixed;width:100%;z-index:55}.header__menu{background:#fff;bottom:0;box-sizing:border-box;display:block;height:100dvh;overflow:auto;overscroll-behavior:contain;position:fixed;right:-100vw;top:0;transition:.2s;width:100vw;z-index:-1}@media screen and (min-width:992px){.header__menu{display:contents}.header__menu .sidebar__buttons{display:none}.header__menu>div.container{display:contents}.header__menu>div.container>a{display:none}}body.header-menu-opened .header__menu{left:0;z-index:60}.header__menu .container{align-items:flex-start;display:flex;flex-direction:column;padding-bottom:5rem;padding-top:1.375rem}@media screen and (max-width:991px){.header__menu .container{padding:.625rem 1.25rem 1.5rem}.header__menu .container>a{display:none}.header__menu .container .sidebar__buttons{margin:0 0 2.125rem}.header__menu .container .sidebar__buttons .button{border-radius:1rem;font-size:1rem;height:3rem;line-height:1.6;margin:0;padding:0 1.5rem;white-space:nowrap;width:10rem}}.header__menu .container>a{font-size:1rem;margin:1rem 0;text-decoration:none}@media screen and (min-width:768px){.header__menu .container>a{font-size:1.125rem}}.header__menu .container>a:hover{color:#9540ff}.header__menu .container>a.button--dark{margin:2rem auto}@media screen and (min-width:480px){.header__menu .container>a.button--dark{margin:2.5rem auto 2rem}}.header__menu ul{align-items:flex-start;display:flex;flex-direction:column;gap:1rem;list-style:none;margin:0;padding:0}@media screen and (min-width:768px){.header__menu ul{font-size:1rem}}@media screen and (min-width:992px){.header__menu ul{flex-direction:row}}@media screen and (max-width:991px){.header__menu .sidebar__nav{gap:.5rem;width:100%}.header__menu li{align-items:flex-start;display:flex;flex-direction:column;width:100%}.header__menu .menu-item-has-children>a{align-items:center;box-sizing:border-box;color:#231f20;cursor:text;display:flex;min-height:3rem;padding:.875rem 3rem .875rem 1rem;position:relative;user-select:none;width:100%}.header__menu .menu-item-has-children>a:after{background:url(https://palark.com/wp-content/themes/palark/assets/fonts/menu-chevron.svg) 50%/contain no-repeat;content:"";cursor:pointer;height:1.5rem;position:absolute;right:1rem;top:50%;transform:translateY(-50%);transition:transform .2s ease;width:1.5rem}.header__menu .menu-item-has-children.open{background-color:#f4f3f4}.header__menu .menu-item-has-children.open>a:after{transform:translateY(-50%) rotate(180deg)}.header__menu .menu-item__icon{display:inline-block;flex:0 0 1.125rem;height:1.125rem;margin-right:.25rem;object-fit:contain;vertical-align:middle;width:1.125rem}.header__menu .sidebar__nav>.menu-item:not(.menu-item-has-children)>a{align-items:center;box-sizing:border-box;display:flex;min-height:3rem;padding:.875rem 1rem;width:100%}}.header__menu .sub-menu-container{position:relative}@media screen and (max-width:991px){.header__menu .sub-menu-container{box-sizing:border-box;display:none;padding:0 1rem 1rem;width:100%}}.header__menu .sub-menu-container .menu-item{position:relative}@media screen and (max-width:991px){.header__menu .sub-menu-container .menu-item{display:block}.header__menu .menu-item-has-children.open>.sub-menu-container{display:block;padding-top:1rem}.header__menu .sub-menu{gap:1.25rem;width:100%}.header__menu .sub-menu a{align-items:center;color:#231f20;display:flex;font-size:1rem;line-height:1.6;text-decoration:none;white-space:normal;width:100%}.header__menu .sub-menu.grouped-menu{gap:2rem}.header__menu .sub-menu.grouped-menu .menu-group{display:block}.header__menu .sub-menu.grouped-menu .menu-group__title{display:block;font-size:1rem;font-weight:700;line-height:1.2;text-transform:uppercase}.header__menu .sub-menu.grouped-menu .menu-group__items{display:flex;flex-direction:column;gap:1.25rem;margin:1.25rem 0 0;padding:0}.header__menu .sub-menu.grouped-menu>.menu-item__last{border-top:.0625rem solid #7e7e7e;padding-top:1.5rem}}.header__menu__footer{align-items:flex-end;display:flex;justify-content:space-between;padding-bottom:1.25rem}.header__menu__footer .socials{align-items:center;display:flex;gap:15px}.header__menu__footer .socials a{width:1.875rem}.header__menu__footer .socials svg{display:block;height:auto;width:100%}.header__menu__buttons{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}.header__menu__buttons .button{margin:0}.button--black.button,.button--black.wpcf7-submit,.menu-item.button a,.wp-block-button a,a.button,a.wpcf7-submit,button.button,button.wpcf7-submit,input.button,input.wpcf7-submit{align-items:center;border:0;border-radius:1rem;box-sizing:border-box;display:inline-flex;font-size:1.25rem;font-weight:700;justify-content:center;line-height:1.6;min-height:3.5rem;min-width:11.25rem;padding:.75rem 1.75rem;position:relative;text-align:center;text-decoration:none;transition:background-color .3s cubic-bezier(.123,.837,.404,.902),border-color .3s cubic-bezier(.123,.837,.404,.902),color .3s cubic-bezier(.123,.837,.404,.902);user-select:none;width:fit-content}@media screen and (max-width:479px){.button--black.button,.button--black.wpcf7-submit,.menu-item.button a,.wp-block-button a,a.button,a.wpcf7-submit,button.button,button.wpcf7-submit,input.button,input.wpcf7-submit{font-size:1.125rem}}.button--black.button:not(:disabled):not([aria-disabled=true]),.button--black.wpcf7-submit:not(:disabled):not([aria-disabled=true]),.menu-item.button a:not(:disabled):not([aria-disabled=true]),.wp-block-button a:not(:disabled):not([aria-disabled=true]),a.button:not(:disabled):not([aria-disabled=true]),a.wpcf7-submit:not(:disabled):not([aria-disabled=true]),button.button:not(:disabled):not([aria-disabled=true]),button.wpcf7-submit:not(:disabled):not([aria-disabled=true]),input.button:not(:disabled):not([aria-disabled=true]),input.wpcf7-submit:not(:disabled):not([aria-disabled=true]){cursor:pointer}.button--black.button:disabled,.button--black.wpcf7-submit:disabled,.menu-item.button a:disabled,.menu-item.button a[aria-disabled=true],.wp-block-button a:disabled,.wp-block-button a[aria-disabled=true],[aria-disabled=true].button--black.button,[aria-disabled=true].button--black.wpcf7-submit,a.button:disabled,a.wpcf7-submit:disabled,a[aria-disabled=true].button,a[aria-disabled=true].wpcf7-submit,button.button:disabled,button.wpcf7-submit:disabled,button[aria-disabled=true].button,button[aria-disabled=true].wpcf7-submit,input.button:disabled,input.wpcf7-submit:disabled,input[aria-disabled=true].button,input[aria-disabled=true].wpcf7-submit{cursor:not-allowed;opacity:.65}.button--black.button:focus-visible,.button--black.wpcf7-submit:focus-visible,.menu-item.button a:focus-visible,.wp-block-button a:focus-visible,a.button:focus-visible,a.wpcf7-submit:focus-visible,button.button:focus-visible,button.wpcf7-submit:focus-visible,input.button:focus-visible,input.wpcf7-submit:focus-visible{outline:.1875rem solid #9540ff;outline-offset:.1875rem}.button--small.button--black.button,.button--small.button--black.wpcf7-submit,.menu-item.button a.button--small,.wp-block-button a.button--small,a.button--small.button,a.button--small.wpcf7-submit,button.button--small.button,button.button--small.wpcf7-submit,input.button--small.button,input.button--small.wpcf7-submit{border-radius:8px;font-size:.875rem;gap:10px;line-height:1.6;min-height:0;min-width:0;padding:4px 10px 5px 16px;width:fit-content}@media screen and (max-width:479px){.button--small.button--black.button,.button--small.button--black.wpcf7-submit,.menu-item.button a.button--small,.wp-block-button a.button--small,a.button--small.button,a.button--small.wpcf7-submit,button.button--small.button,button.button--small.wpcf7-submit,input.button--small.button,input.button--small.wpcf7-submit{font-size:1.125rem}}.button--upload.button--black.button,.button--upload.button--black.wpcf7-submit,.menu-item.button a.button--upload,.wp-block-button a.button--upload,a.button--upload.button,a.button--upload.wpcf7-submit,button.button--upload.button,button.button--upload.wpcf7-submit,input.button--upload.button,input.button--upload.wpcf7-submit{background-color:#fff;border-color:#00ddba;border-style:dashed;color:#000;font-size:1rem;font-weight:400;min-height:0;min-width:0;width:100%}.button--upload.button--black.button:hover,.button--upload.button--black.wpcf7-submit:hover,.menu-item.button a.button--upload:hover,.wp-block-button a.button--upload:hover,a.button--upload.button:hover,a.button--upload.wpcf7-submit:hover,button.button--upload.button:hover,button.button--upload.wpcf7-submit:hover,input.button--upload.button:hover,input.button--upload.wpcf7-submit:hover{background-color:inherit;border-style:solid}.button--red.button--black.button,.button--red.button--black.wpcf7-submit,.menu-item.button a.button--red,.wp-block-button a.button--red,a.button--red.button,a.button--red.wpcf7-submit,button.button--red.button,button.button--red.wpcf7-submit,input.button--red.button,input.button--red.wpcf7-submit{background-color:#f14040;border:2px solid #f14040;color:#fff}.button--red_border.button--black.button,.button--red_border.button--black.wpcf7-submit,.menu-item.button a.button--red_border,.wp-block-button a.button--red_border,a.button--red_border.button,a.button--red_border.wpcf7-submit,button.button--red_border.button,button.button--red_border.wpcf7-submit,input.button--red_border.button,input.button--red_border.wpcf7-submit{background-color:transparent;border:2px solid #f14040;color:#f14040}.button--red_border.button--black.button:hover,.button--red_border.button--black.wpcf7-submit:hover,.menu-item.button a.button--red_border:hover,.wp-block-button a.button--red_border:hover,a.button--red_border.button:hover,a.button--red_border.wpcf7-submit:hover,button.button--red_border.button:hover,button.button--red_border.wpcf7-submit:hover,input.button--red_border.button:hover,input.button--red_border.wpcf7-submit:hover{background-color:#f14040;color:#fff}.loading.button--black.button,.loading.button--black.button:hover,.loading.button--black.wpcf7-submit,.loading.button--black.wpcf7-submit:hover,.menu-item.button a.loading,.menu-item.button a.loading:hover,.wp-block-button a.loading,.wp-block-button a.loading:hover,a.loading.button,a.loading.button:hover,a.loading.wpcf7-submit,a.loading.wpcf7-submit:hover,button.loading.button,button.loading.button:hover,button.loading.wpcf7-submit,button.loading.wpcf7-submit:hover,input.loading.button,input.loading.button:hover,input.loading.wpcf7-submit,input.loading.wpcf7-submit:hover{background-color:#bcbcbc}.button--black.button,.button--black.wpcf7-submit,a.button,a.wpcf7-submit,button.button,button.wpcf7-submit,input.button,input.wpcf7-submit{background-color:#231f20;color:#fff}.button--black.button:before,.button--black.wpcf7-submit:before,a.button:before,a.wpcf7-submit:before,button.button:before,button.wpcf7-submit:before,input.button:before,input.wpcf7-submit:before{left:-4px}.button--black.button:after,.button--black.wpcf7-submit:after,a.button:after,a.wpcf7-submit:after,button.button:after,button.wpcf7-submit:after,input.button:after,input.wpcf7-submit:after{right:-4px}.button--black.button:not(:disabled):not([aria-disabled=true]):is(:hover,:active),.button--black.wpcf7-submit:not(:disabled):not([aria-disabled=true]):is(:hover,:active),a.button:not(:disabled):not([aria-disabled=true]):is(:hover,:active),a.wpcf7-submit:not(:disabled):not([aria-disabled=true]):is(:hover,:active),button.button:not(:disabled):not([aria-disabled=true]):is(:hover,:active),button.wpcf7-submit:not(:disabled):not([aria-disabled=true]):is(:hover,:active),input.button:not(:disabled):not([aria-disabled=true]):is(:hover,:active),input.wpcf7-submit:not(:disabled):not([aria-disabled=true]):is(:hover,:active){background-color:#0fdfbd;color:#231f20}.button--black.button.full-width,.button--black.wpcf7-submit.full-width,a.button.full-width,a.wpcf7-submit.full-width,button.button.full-width,button.wpcf7-submit.full-width,input.button.full-width,input.wpcf7-submit.full-width{width:100%}@media screen and (max-width:767px){.buttons-row,.buttons-row .button{width:100%}}@media screen and (max-width:479px){.pricing-cta .buttons-row .button{font-size:1.125rem}}.menu-item.button--primary a,.wp-block-button--primary a{background-color:#231f20;color:#fff}.menu-item.button--primary a:is(:hover,:active),.wp-block-button--primary a:is(:hover,:active){background-color:#0fdfbd;color:#231f20}.all_link{align-items:center;display:inline-flex;font-size:1.125rem;font-weight:700;gap:1rem;margin-top:1.5rem;text-decoration:none}@media screen and (min-width:768px){.all_link:hover span{left:-4px}}@media screen and (min-width:992px){.all_link{font-size:1.25rem}}.all_link span{height:24px;left:0;position:relative;transition:.3s;width:24px}.wp-block-group.button--red .button{background-color:#f14040;border:2px solid #f14040;color:#fff}.wp-block-group.button--red .button_border{background-color:transparent;border:2px solid #f14040;color:#f14040}.wp-block-group.button--red .button_border:hover{background-color:#f14040;color:#fff}.wp-block-group-mail{position:relative}.wp-block-group-mail:after{content:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTMuNTU1IDcuMTY4YTEgMSAwIDEgMC0xLjExIDEuNjY0bDEuMTEtMS42NjRabTcuMzM2IDYuMDkyLjU1NC0uODMyLS41NTQuODMyWm0yLjIxOCAwLS41NTQtLjgzMi41NTQuODMyWm04LjQ0Ni00LjQyOGExIDEgMCAxIDAtMS4xMS0xLjY2NGwxLjExIDEuNjY0Wm0tMTkuMTEgMCA3Ljg5IDUuMjYgMS4xMS0xLjY2NC03Ljg5LTUuMjYtMS4xMSAxLjY2NFptNy44OSA1LjI2YTMgMyAwIDAgMCAzLjMzIDBsLTEuMTEtMS42NjRhMSAxIDAgMCAxLTEuMTEgMGwtMS4xMSAxLjY2NFptMy4zMyAwIDcuODktNS4yNi0xLjExLTEuNjY0LTcuODkgNS4yNiAxLjExIDEuNjY0Wk01IDIwaDE0di0ySDV2MlptMTQgMGEzIDMgMCAwIDAgMy0zaC0yYTEgMSAwIDAgMS0xIDF2MlptMy0zVjdoLTJ2MTBoMlptMC0xMGEzIDMgMCAwIDAtMy0zdjJhMSAxIDAgMCAxIDEgMWgyWm0tMy0zSDV2MmgxNFY0Wk01IDRhMyAzIDAgMCAwLTMgM2gyYTEgMSAwIDAgMSAxLTFWNFpNMiA3djEwaDJWN0gyWm0wIDEwYTMgMyAwIDAgMCAzIDN2LTJhMSAxIDAgMCAxLTEtMUgyWiIvPjwvc3ZnPg==);height:24px;margin-left:.5rem;position:relative;width:24px}.button.mt-40{margin-top:40px}.button.margin-top-small{margin-right:auto;margin-top:2rem}.button.margin-top-small.center{align-items:center}.button.hidden{display:none}.button.read-more{font-size:1rem;font-weight:500;margin-top:2rem;padding:.7rem 1.5rem}.button.read-more,.button.round{color:#fff;flex-direction:row;line-height:100%}.button.round{border-radius:50px;font-weight:700;height:2rem;margin-top:2.5rem;padding:0;width:2rem}.button.margin-bottom-m{margin-bottom:1.8rem}.button.submit-contact-form{margin-left:auto;margin-top:2.375rem}.button.outline{background-color:#fff;box-shadow:inset 0 0 0 .125rem #231f20;color:#000}.button.mr-s{margin-right:1.2rem}.button.no-transitions-duplicate-page{transition-property:none}.button.center{margin-left:auto;margin-right:auto}.button-mail{position:relative}.button-mail:after{content:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTMuNTU1IDcuMTY4YTEgMSAwIDEgMC0xLjExIDEuNjY0bDEuMTEtMS42NjRabTcuMzM2IDYuMDkyLjU1NC0uODMyLS41NTQuODMyWm0yLjIxOCAwLS41NTQtLjgzMi41NTQuODMyWm04LjQ0Ni00LjQyOGExIDEgMCAxIDAtMS4xMS0xLjY2NGwxLjExIDEuNjY0Wm0tMTkuMTEgMCA3Ljg5IDUuMjYgMS4xMS0xLjY2NC03Ljg5LTUuMjYtMS4xMSAxLjY2NFptNy44OSA1LjI2YTMgMyAwIDAgMCAzLjMzIDBsLTEuMTEtMS42NjRhMSAxIDAgMCAxLTEuMTEgMGwtMS4xMSAxLjY2NFptMy4zMyAwIDcuODktNS4yNi0xLjExLTEuNjY0LTcuODkgNS4yNiAxLjExIDEuNjY0Wk01IDIwaDE0di0ySDV2MlptMTQgMGEzIDMgMCAwIDAgMy0zaC0yYTEgMSAwIDAgMS0xIDF2MlptMy0zVjdoLTJ2MTBoMlptMC0xMGEzIDMgMCAwIDAtMy0zdjJhMSAxIDAgMCAxIDEgMWgyWm0tMy0zSDV2MmgxNFY0Wk01IDRhMyAzIDAgMCAwLTMgM2gyYTEgMSAwIDAgMSAxLTFWNFpNMiA3djEwaDJWN0gyWm0wIDEwYTMgMyAwIDAgMCAzIDN2LTJhMSAxIDAgMCAxLTEtMUgyWiIvPjwvc3ZnPg==);height:24px;margin-left:.5rem;position:relative;width:24px}.small-hero-inner{align-items:flex-end;bottom:auto;flex-direction:row;height:45%;left:0;margin-left:auto;margin-right:auto;position:absolute;right:0;top:0;z-index:-1}@media screen and (min-width:768px){.small-hero-inner{flex-direction:column;height:55%}}@media screen and (min-width:992px){.small-hero-inner{flex-direction:column;height:55%}}@media screen and (min-width:1440px){.small-hero-inner{align-items:center;flex-direction:row;height:39.6%;margin-left:auto;margin-right:auto;position:absolute;z-index:-1}}.hero.hero-main{background:#01a2fd;overflow:hidden;position:relative}.hero.hero-main.section{margin-bottom:1.5rem;margin-top:4.5rem;padding:3.5rem 0}@media screen and (min-width:768px){.hero.hero-main.section{margin-bottom:2rem;margin-top:6rem;padding:4.5rem 0}}@media screen and (min-width:992px){.hero.hero-main.section{padding:6.5rem 0}}.hero__row{align-items:center;display:flex;flex-direction:row;justify-content:flex-end;width:100%}.hero__section-top{gap:2.5rem;height:100%;position:relative;z-index:5}.hero__heading-wrap,.hero__section-top{display:flex;flex-direction:column;width:100%}.hero__heading-wrap{row-gap:1.5rem}.hero__heading-wrap h1{font-size:1.75rem;margin-bottom:0}@media screen and (min-width:992px){.hero__heading-wrap h1{font-size:2.5rem}}.hero__heading-wrap h1 span{color:#fff}.hero__buttons{align-items:center;display:flex;gap:1.25rem}.hero__buttons .button:not(:disabled):not([aria-disabled=true]):is(:hover,:active){background-color:#fff;color:#231f20}.hero-card-right{align-items:flex-start;display:flex;flex-direction:column;justify-content:flex-start;margin-left:auto;width:100%}@media screen and (max-width:479px){.hero-card-right{height:auto}}.hero-card-right.negative-margin-top{height:auto;margin-top:-2.7rem;min-width:55%;padding-top:2.75rem;width:auto}@media screen and (max-width:991px){.hero-card-right.negative-margin-top{height:50%}}@media screen and (max-width:767px){.hero-card-right.negative-margin-top{width:41%}}@media screen and (max-width:479px){.hero-card-right.negative-margin-top{padding-bottom:.625rem}}.hero-card-right.purple{background-color:#a55cff;width:50%}@media screen and (max-width:991px){.hero-card-right.purple{margin-top:0;min-width:40%;width:100%}}@media screen and (max-width:767px){.hero-card-right.purple{margin-top:0;width:100%}}@media screen and (max-width:479px){.hero-card-right.purple{height:40%;width:100%}}.hero-card-right.blue{background-color:#00a1fc;display:flex;min-width:50%;overflow:visible;width:55%}@media screen and (min-width:992px)and (max-width:1280px){.hero-card-right.blue{margin-bottom:60px;max-width:46%;min-width:40%}}@media screen and (max-width:991px){.hero-card-right.blue{margin-top:0;min-width:40%;width:100%}}@media screen and (max-width:767px){.hero-card-right.blue{margin-top:0;width:80%}}@media screen and (max-width:479px){.hero-card-right.blue{height:40%;width:100%}}.hero-card-right.green{background-color:#0fdfbd;max-width:56%;min-width:50%}@media screen and (min-width:992px)and (max-width:1280px){.hero-card-right.green{margin-bottom:200px;max-width:46%;min-width:40%}}@media screen and (max-width:991px){.hero-card-right.green{margin-top:0;min-width:40%;width:100%}}@media screen and (max-width:767px){.hero-card-right.green{margin-top:0;max-width:100%;width:100%}}@media screen and (max-width:479px){.hero-card-right.green{height:40%;width:100%}}.hero__image{height:100%;margin-left:auto}.hero__image-block-left{display:none}@media screen and (min-width:768px){.hero__image-block-left{align-items:center;bottom:-1%;display:flex;height:100%;justify-content:flex-end;max-width:75%;position:absolute;right:-35%;top:auto;width:100%;z-index:0}}@media screen and (min-width:992px){.hero__image-block-left{max-width:100%;right:-15%}}@media screen and (min-width:1280px){.hero__image-block-left{right:0}}@media screen and (min-width:1600px){.hero__image-block-left{min-height:615px}}.hero__image-wrap{margin-bottom:4.2rem}.hero__subtext{flex-direction:column;font-size:1rem;height:auto;line-height:160%;margin-right:auto;max-width:475px;position:relative}@media screen and (min-width:480px){.hero__subtext{font-size:1.125rem}}@media screen and (min-width:992px){.hero__subtext{font-size:1.25rem}}.hero__subtext-right{flex-direction:column;height:auto;margin-bottom:2.1rem;margin-left:auto;margin-top:auto}@media screen and (max-width:991px){.hero__subtext-right{margin-bottom:2.4rem;margin-top:-6%}}@media screen and (max-width:767px){.hero__subtext-right{font-size:.9rem;margin-top:-6%}}@media screen and (max-width:479px){.hero__subtext-right{font-size:.7rem;margin-bottom:2.5rem;margin-top:-8%}}.hero__block-left{display:flex;flex-direction:column;margin-right:5%;min-width:45%}.hero__block-left.center-vert{align-items:flex-start;flex-direction:column;justify-content:flex-end}.hero__block-left.mob-landscape-mt-2{justify-content:center;width:47%}@media screen and (min-width:992px)and (max-width:1280px){.hero__block-left.mob-landscape-mt-2{width:56%}}.hero__block-left.neg-margin-top{max-width:46%}@media screen and (min-width:992px)and (max-width:1280px){.hero__block-left.neg-margin-top{max-width:56%;width:56%}}.hero__img{align-items:center;display:flex;flex-direction:column;justify-content:flex-start;margin-top:110px;position:relative;width:100%}@media screen and (max-width:991px){.hero__img{margin-top:90px}}@media screen and (max-width:767px){.hero__img{margin-top:80px}}@media screen and (max-width:479px){.hero__img{margin-top:70px}}</style>
<link rel="preload" href="https://palark.com/wp-content/themes/palark/assets/css/main.min.css?ver=1.6.41" as="style" onload="this.onload=null;this.rel='stylesheet'"><noscript><link rel="stylesheet" href="https://palark.com/wp-content/themes/palark/assets/css/main.min.css?ver=1.6.41" media=""></noscript>
<link rel="stylesheet" href="https://palark.com/wp-content/themes/palark/assets/css/blog.min.css?ver=1.6.41" media="">
<link rel="alternate" type="application/rss+xml" title="Palark » Blog Feed" href="https://palark.com/blog/feed/">
<link rel="icon" href="https://palark.com/wp-content/uploads/2023/07/favicon.png" sizes="32x32" />
<link rel="icon" href="https://palark.com/wp-content/uploads/2023/07/favicon.png" sizes="192x192" />
<link rel="apple-touch-icon" href="https://palark.com/wp-content/uploads/2023/07/favicon.png" />
<meta name="msapplication-TileImage" content="https://palark.com/wp-content/uploads/2023/07/favicon.png" />
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-M4P3BZ5');</script>
<!-- End Google Tag Manager -->
</head>
<body class="wp-singular post-template-default single single-post postid-2665 single-format-standard wp-custom-logo wp-theme-palark">
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-M4P3BZ5"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
<!-- Matomo -->
<script>
var _paq = window._paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be&nbsp;called before "trackPageView" */
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="https://palark.matomo.cloud/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '1']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src='//cdn.matomo.cloud/palark.matomo.cloud/matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<!-- End Matomo Code --> <header class="header">
<div class="content">
<div class="header__content">
<a href="https://palark.com/" class="header__logo">
<?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 18" fill="none"><path fill="#231F20" d="M87.77 3.18h-2.98v13.53h2.98V3.18ZM100 3.18h-3.68l-6.85 6.76 6.85 6.77H100l-6.85-6.77L100 3.18ZM31.33 12.68 23.4.5l-7.9 12.18h3.54l4.36-7.03 4.37 7.03h3.55ZM62.25 12.68 54.33.5l-7.9 12.18h3.54l4.36-7.03 4.36 7.03h3.56ZM80.14 16.71l-3.76-4.36a4.76 4.76 0 0 0-1.75-9.17h-9.22v13.53h2.98V5.91h6.25a2.01 2.01 0 1 1 0 4.03H71.2l-1.46 2.74h3.5l3.48 4.03h3.44ZM9.23 3.18H0v13.53h2.99V5.91h6.25a2.01 2.01 0 1 1 0 4.03H5.78l-1.46 2.74h4.92a4.75 4.75 0 0 0 0-9.5h-.01ZM37.78 13.98V3.18H34.8v13.53h8.8l1.76-2.73h-7.58Z"></path></svg> </a>
<div class="header__controls">
<div class="language-links">
<a class="active">En</a><a class="second" href="https://palark.de/">De</a></div> <div class="header__right">
<div class="header__menu">
<div class="container">
<div class="sidebar__buttons">
<a href="/contact-us/"
class="button button--dark">Contact us</a>
</div>
<a href="/" class="">Home</a>
<ul id="top-header-nav" class="nav sidebar__nav"><li id="menu-item-16" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item--grouped-submenu"><a>Services</a>
<div class='sub-menu-container sub-menu-container--grouped'><ul class='sub-menu grouped-menu'>
<li id="menu-item-16247" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-group"><span class="menu-group__title">Continuous Support</span>
<ul class='menu-group__items'>
<li id="menu-item-1395" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="/services/sre-as-a-service/"><img height="18" width="18" src="https://palark.com/wp-content/uploads/2026/08/sre.svg" alt="" class="menu-item__icon">SRE as a Service</a></li>
<li id="menu-item-1392" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="/services/devops-as-a-service/"><img height="18" width="18" src="https://palark.com/wp-content/uploads/2026/08/DevOps-as-a-Service.svg" alt="" class="menu-item__icon">DevOps as a Service</a></li>
<li id="menu-item-4386" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="/services/devops-insurance/"><img height="18" width="18" src="https://palark.com/wp-content/uploads/2026/08/devops.svg" alt="" class="menu-item__icon">DevOps insurance</a></li>
</ul>
</li>
<li id="menu-item-16248" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-group"><span class="menu-group__title">Time &#038; Materials</span>
<ul class='menu-group__items'>
<li id="menu-item-1394" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="/services/cloud-server-audit/"><img height="18" width="18" src="https://palark.com/wp-content/uploads/2026/08/Infrastructure.svg" alt="" class="menu-item__icon">Infrastructure &amp; CI/CD audit</a></li>
<li id="menu-item-1393" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="/services/kubernetes-migration-cloud-enablement/"><img height="18" width="18" src="https://palark.com/wp-content/uploads/2026/08/Cloud.svg" alt="" class="menu-item__icon">Kubernetes and cloud migration</a></li>
<li id="menu-item-1396" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="/services/technology-consulting/"><img height="18" width="18" src="https://palark.com/wp-content/uploads/2026/08/RD.svg" alt="" class="menu-item__icon">R&amp;D and technology consulting</a></li>
</ul>
</li>
<li id="menu-item-16249" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-group"><span class="menu-group__title">Industry Solutions</span>
<ul class='menu-group__items'>
<li id="menu-item-498" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="/services/kubernetes-support/"><img height="18" width="18" src="https://palark.com/wp-content/uploads/2026/08/Kubernative.svg" alt="" class="menu-item__icon">Kubernetes support</a></li>
<li id="menu-item-89" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="/services/solution-for-saas/"><img height="18" width="18" src="https://palark.com/wp-content/uploads/2026/08/Solution.svg" alt="" class="menu-item__icon">Solution for SaaS</a></li>
<li id="menu-item-2131" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="/services/private-self-hosted-llm/"><img height="18" width="18" src="https://palark.com/wp-content/uploads/2026/08/Private.svg" alt="" class="menu-item__icon">Private, self-hosted LLM</a></li>
<li id="menu-item-4514" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="/services/vercel-alternative-migration/"><img height="18" width="18" src="https://palark.com/wp-content/uploads/2026/08/Migration.svg" alt="" class="menu-item__icon">Migration from Vercel</a></li>
</ul>
</li>
<li id="menu-item-1666" class="menu-item__last menu-item menu-item-type-post_type menu-item-object-page"><a href="/services/"><img height="18" width="18" src="https://palark.com/wp-content/uploads/2026/08/Group-8980.svg" alt="" class="menu-item__icon">All services</a></li>
</ul></div>
</li>
<li id="menu-item-4838" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children"><a>Pricing</a>
<div class='sub-menu-container'><ul class='sub-menu'>
<li id="menu-item-1884" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="/pricing/"><img height="18" width="18" src="https://palark.com/wp-content/uploads/2026/08/Frame.svg" alt="" class="menu-item__icon">DevOps and SRE as a Service comparison</a></li>
</ul></div>
</li>
<li id="menu-item-112" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="/rnd/">R&#038;D</a></li>
<li id="menu-item-699" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children"><a>Company</a>
<div class='sub-menu-container'><ul class='sub-menu'>
<li id="menu-item-129" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="/about/">About us</a></li>
<li id="menu-item-1486" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="/news/">News</a></li>
<li id="menu-item-700" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="/about/meet-us/">Meet us</a></li>
<li id="menu-item-1162" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="/about/kubernative/">Kubernative channel</a></li>
</ul></div>
</li>
<li id="menu-item-3704" class="menu-item menu-item-type-post_type menu-item-object-page current_page_parent"><a href="/blog/">Blog</a></li>
</ul> </div>
</div>
<a href="/contact-us/" class="button pc-only-button button--dark">Contact us</a>
</div>
</div>
<div class="hamburger hamburger--collapse header__hamburger" type="button">
<span></span>
<span></span>
<span></span>
</div>
</div>
</div>
</header>
<div class="header-blog">
<div class="header-blog__content">
<div class="container">
<div class="header-blog__left">
<a href="/blog/">
<img height="28" width="111" src="https://palark.com/wp-content/themes/palark/assets/images/blog-logo.svg"
alt="blog-logo">
</a>
</div>
<form action="https://palark.com/" class="form_search" role="search">
<input type="text" name="s" class="search" value="" placeholder="Search" autocomplete="off"/>
</form> <div class="header-blog__categories">
<select class="a-select right" multiple="multiple" data-placeholder="Posts by tags">
<optgroup label="Popular">
<option value="/blog/tag/kubernetes/">Kubernetes (83)</option><option value="/blog/tag/tools/">tools (31)</option><option value="/blog/tag/databases/">databases (28)</option><option value="/blog/tag/migrations/">migrations (14)</option><option value="/blog/tag/postgresql/">PostgreSQL (14)</option> </optgroup>
<optgroup label="A-Z">
<option value="/blog/tag/aiops/">AIOps (2)</option><option value="/blog/tag/ansible/">Ansible (1)</option><option value="/blog/tag/arm/">ARM (1)</option><option value="/blog/tag/aws/">AWS (4)</option><option value="/blog/tag/backups/">backups (3)</option><option value="/blog/tag/benchmarking/">benchmarking (2)</option><option value="/blog/tag/best-practices/">best practices (9)</option><option value="/blog/tag/business/">business (4)</option><option value="/blog/tag/caching/">caching (3)</option><option value="/blog/tag/calico/">Calico (1)</option><option value="/blog/tag/cassandra/">Cassandra (2)</option><option value="/blog/tag/ceph/">Ceph (5)</option><option value="/blog/tag/cert-manager/">cert-manager (1)</option><option value="/blog/tag/ci-cd/">CI/CD (10)</option><option value="/blog/tag/cli/">CLI (4)</option><option value="/blog/tag/clickhouse/">ClickHouse (3)</option><option value="/blog/tag/cni/">CNI (2)</option><option value="/blog/tag/cockroachdb/">CockroachDB (1)</option><option value="/blog/tag/comparison/">comparison (9)</option><option value="/blog/tag/databases/">databases (28)</option><option value="/blog/tag/ebpf/">eBPF (2)</option><option value="/blog/tag/elasticsearch/">Elasticsearch (5)</option><option value="/blog/tag/etcd/">etcd (3)</option><option value="/blog/tag/failures/">failures (11)</option><option value="/blog/tag/finops/">FinOps (2)</option><option value="/blog/tag/fluentd/">Fluentd (1)</option><option value="/blog/tag/gitlab/">GitLab (5)</option><option value="/blog/tag/helm/">Helm (6)</option><option value="/blog/tag/hyperconvergence/">hyperconvergence (1)</option><option value="/blog/tag/iac/">IaC (5)</option><option value="/blog/tag/ingress/">Ingress (3)</option><option value="/blog/tag/kafka/">Kafka (2)</option><option value="/blog/tag/keycloak/">Keycloak (1)</option><option value="/blog/tag/keydb/">KeyDB (3)</option><option value="/blog/tag/kubernetes/">Kubernetes (83)</option><option value="/blog/tag/kubernetes-operators/">Kubernetes operators (11)</option><option value="/blog/tag/linux/">Linux (4)</option><option value="/blog/tag/logging/">logging (5)</option><option value="/blog/tag/logstash/">Logstash (1)</option><option value="/blog/tag/memcached/">memcached (1)</option><option value="/blog/tag/migrations/">migrations (14)</option><option value="/blog/tag/mongodb/">MongoDB (2)</option><option value="/blog/tag/mysql/">MySQL (2)</option><option value="/blog/tag/networking/">networking (6)</option><option value="/blog/tag/nginx/">nginx (1)</option><option value="/blog/tag/observability/">observability (13)</option><option value="/blog/tag/palark/">Palark (7)</option><option value="/blog/tag/patroni/">Patroni (3)</option><option value="/blog/tag/php/">PHP (1)</option><option value="/blog/tag/postgresql/">PostgreSQL (14)</option><option value="/blog/tag/prometheus/">Prometheus (5)</option><option value="/blog/tag/python/">Python (4)</option><option value="/blog/tag/rabbitmq/">RabbitMQ (1)</option><option value="/blog/tag/redis/">Redis (4)</option><option value="/blog/tag/rook/">Rook (3)</option><option value="/blog/tag/security/">security (7)</option><option value="/blog/tag/sentry/">Sentry (1)</option><option value="/blog/tag/serverless/">serverless (2)</option><option value="/blog/tag/software-development/">software development (2)</option><option value="/blog/tag/ssl/">SSL (1)</option><option value="/blog/tag/storage/">storage (10)</option><option value="/blog/tag/success-stories/">success stories (3)</option><option value="/blog/tag/terraform/">Terraform (3)</option><option value="/blog/tag/tools/">tools (31)</option><option value="/blog/tag/trends/">trends (9)</option><option value="/blog/tag/troubleshooting/">troubleshooting (10)</option><option value="/blog/tag/vault/">Vault (1)</option><option value="/blog/tag/vector/">Vector (2)</option><option value="/blog/tag/virtualization/">virtualization (1)</option><option value="/blog/tag/vpn/">VPN (1)</option><option value="/blog/tag/werf/">werf (3)</option><option value="/blog/tag/yaml/">YAML (2)</option><option value="/blog/tag/zookeeper/">ZooKeeper (1)</option> </optgroup>
</select> </div>
</div>
</div>
</div> <main class="wrapper">
<div class="container container--bordered">
<div class="content full">
<ul class="content__tags">
<li>
<a href="https://palark.com/blog/tag/observability/"
class="content__tags-item content__tags-item--big content__tags-item--main">
observability </a>
</li>
<li>
<a href="https://palark.com/blog/tag/prometheus/"
class="content__tags-item content__tags-item--big">
Prometheus </a>
</li>
</ul>
<h1 class="content__title">
Understanding and optimizing resource consumption in Prometheus </h1>
<div class="content__top">
<div class="content__column">
<div class="content__date">
19 May 2025 </div>
<div class="content__author">
By Vladimir Guryanov, solution architect @ Odarix </div>
<img width="982" height="500" src="https://palark.com/wp-content/uploads/2025/05/prometheus-resources-and-optimisation.png" class="content__image wp-post-image" alt="Prometheus resources and optimisation" decoding="async" fetchpriority="high" srcset="https://palark.com/wp-content/uploads/2025/05/prometheus-resources-and-optimisation.png 982w, https://palark.com/wp-content/uploads/2025/05/prometheus-resources-and-optimisation-550x280.png 550w, https://palark.com/wp-content/uploads/2025/05/prometheus-resources-and-optimisation-768x391.png 768w" sizes="(max-width: 982px) 100vw, 982px" /> </div>
</div>
<div class="content__wrapper">
<aside class="content__toc">
<div class="toc__title">Content</div>
<div class="toc__show-more" style="display: none">
Show more <svg width="24" height="24" viewBox="0 0 24 24" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path d="M15 6L9 12L15 18" stroke="black" stroke-width="4" stroke-linecap="round"
stroke-linejoin="round"/>
</svg>
</div>
</aside>
<div class="content__column">
<article class="content__content post__content">
<p class="wp-block-paragraph">While Prometheus is&nbsp;an excellent and&nbsp;capable monitoring system, one aspect I find very frustrating is&nbsp;its resource consumption. If&nbsp;this&nbsp;frustrates you as much as it&nbsp;does me, let&#8217;s break down the&nbsp;causes of this&nbsp;issue and&nbsp;see how to&nbsp;address it.</p>
<p class="wp-block-paragraph">But first, let&#8217;s have a&nbsp;short overview of Prometheus, discuss its design, how its components consume resources, and&nbsp;look for&nbsp;the&nbsp;possible culprit that wastes them.</p>
<h2 class="wp-block-heading">Prometheus architecture and&nbsp;resource consumption</h2>
<p class="wp-block-paragraph">In&nbsp;2012, SoundCloud, inspired by Borgmon—a monitoring system for&nbsp;Borg used in&nbsp;Google—<a href="https://promlabs.com/blog/2022/11/24/prometheus-turns-10/">decided</a> to&nbsp;create something similar but Open Source. That&#8217;s how Prometheus was born. Its first public version was released in&nbsp;2015. Prometheus is&nbsp;written in&nbsp;Go and&nbsp;is&nbsp;a&nbsp;single binary file. Several interrelated processes run inside it, and&nbsp;you can easily differentiate them according to&nbsp;their objectives.</p>
<p class="wp-block-paragraph">Let&#8217;s see what Prometheus has under the&nbsp;hood:</p>
<figure class="wp-block-image size-full"><img decoding="async" width="730" height="400" src="/wp-content/uploads/2025/05/prometheus-architecture-diagram.png" alt="Prometheus architecture diagram" class="wp-image-2702" srcset="https://palark.com/wp-content/uploads/2025/05/prometheus-architecture-diagram.png 730w, https://palark.com/wp-content/uploads/2025/05/prometheus-architecture-diagram-550x301.png 550w" sizes="(max-width: 730px) 100vw, 730px" /></figure>
<ol class="wp-block-list">
<li>First of all, the&nbsp;monitoring system needs to&nbsp;know where it&nbsp;will scrape the&nbsp;metrics from. <strong>Service discovery</strong> takes care of this. It&nbsp;interacts with external APIs, retrieves metadata from&nbsp;them, and&nbsp;builds a&nbsp;list of data sources called <em>targets</em>.</li>
<li>Next comes the&nbsp;data retrieval process, <strong>scraping</strong>. It&nbsp;collects data from&nbsp;targets using the&nbsp;pull model and&nbsp;the&nbsp;HTTP protocol. Scraping obtains data from&nbsp;exporters that can extract metrics and&nbsp;convert them into a&nbsp;Prometheus-compatible format. Another source is&nbsp;the&nbsp;applications themselves. You can use standard client libraries to&nbsp;integrate metrics right into them.</li>
<li>Once the&nbsp;metrics are collected, they need to&nbsp;be&nbsp;saved somewhere. Prometheus uses TSDB (Time Series Database) as a&nbsp;<strong>storage</strong>.</li>
<li>Then, the&nbsp;<strong>user interface</strong> lets you read the&nbsp;stored metrics. Prometheus has its own UI, though it&nbsp;is&nbsp;not functional enough in&nbsp;many cases. Thus, a&nbsp;third-party one (Grafana) is&nbsp;usually used instead.</li>
<li>Prometheus has two types of <strong>rules</strong>: <em>recording</em> and&nbsp;<em>alerting</em>.
<ul class="wp-block-list">
<li>Recording rules allow you to&nbsp;execute a&nbsp;query and&nbsp;save its result as a&nbsp;new metric.</li>
<li>Alerting rules check if&nbsp;certain conditions are met and, as the&nbsp;name implies, send notifications to&nbsp;external systems such as Alertmanager.</li>
</ul>
</li>
</ol>
<p class="wp-block-paragraph">While we&nbsp;have looked at the&nbsp;Prometheus architecture and&nbsp;the&nbsp;external elements it&nbsp;interacts with, finding out which component consumes the&nbsp;most resources is&nbsp;pretty simple. All you actually need is&nbsp;this&nbsp;minified diagram:</p>
<figure class="wp-block-image size-full"><img decoding="async" width="529" height="281" src="/wp-content/uploads/2025/05/prometheus-architecture-simplified.png" alt="Prometheus architecture simplified" class="wp-image-2703"/></figure>
<p class="wp-block-paragraph">Since Prometheus is&nbsp;written in&nbsp;Go, you can use the&nbsp;built-in <a href="https://github.com/google/pprof">pprof</a> tool to&nbsp;find out how much memory each component consumes. I collected statistics on&nbsp;about a&nbsp;dozen or so installations and&nbsp;got the&nbsp;following approximate memory usage distribution:</p>
<figure class="wp-block-image size-full"><img decoding="async" width="635" height="434" src="/wp-content/uploads/2025/05/prometheus-memory-consumption-pprof.png" alt="Prometheus memory consumption pprof" class="wp-image-2704" srcset="https://palark.com/wp-content/uploads/2025/05/prometheus-memory-consumption-pprof.png 635w, https://palark.com/wp-content/uploads/2025/05/prometheus-memory-consumption-pprof-550x376.png 550w" sizes="(max-width: 635px) 100vw, 635px" /></figure>
<p class="wp-block-paragraph">This&nbsp;memory consumption distribution shows us that:</p>
<ul class="wp-block-list">
<li><em>Service discovery</em> is&nbsp;a&nbsp;low-overhead operation that consumes virtually no resources.</li>
<li><em>Rules</em> are usually run hourly, so they don&#8217;t require a&nbsp;lot of data and&nbsp;resources.</li>
<li>Surprisingly, <em>UI</em> requests only consume about 10% of the&nbsp;resources, too.</li>
<li>The&nbsp;30% is&nbsp;reasonable in&nbsp;the&nbsp;case of <em>scraping</em> because it&nbsp;receives data as plain text and&nbsp;converts it&nbsp;to&nbsp;internal structures. String operations in&nbsp;Go are notoriously computationally costly.</li>
<li><strong><em>Storage</em> (TSDB) definitely comes out on&nbsp;top</strong>.</li>
</ul>
<p class="wp-block-paragraph">This&nbsp;is&nbsp;undoubtedly what requires our further investigation.</p>
<h2 class="wp-block-heading">Looking for&nbsp;a&nbsp;culprit</h2>
<h3 class="wp-block-heading">#1: TSDB performance peculiarities</h3>
<p class="wp-block-paragraph">It&#8217;s worth mentioning that in&nbsp;a&nbsp;<a href="/blog/prometheus-architecture-tsdb/">previous article</a>, I covered the&nbsp;concept of TSDBs with a&nbsp;special focus on&nbsp;them in&nbsp;Prometheus. Below are the&nbsp;key findings from&nbsp;that piece.</p>
<p class="wp-block-paragraph">Suppose you have a&nbsp;bunch of thermometers that are data sources. Every 30 or 60 seconds, their values are collected and&nbsp;saved along with their timestamps. Since there are a&nbsp;lot of thermometers, you have to&nbsp;identify them somehow. You can do this&nbsp;by using so-called <em>label sets</em>, which are key-value pairs. Below is&nbsp;an example of a&nbsp;label set:</p>
<pre class="wp-block-code"><code>{
name: cpu_usage,
node: curiosity,
core: 0
}</code></pre>
<p class="wp-block-paragraph">In&nbsp;Prometheus, as in&nbsp;most monitoring systems, label sets are usually shown in&nbsp;curly brackets. Moreover, since these are long strings, you don&#8217;t deal with them directly — each label set is&nbsp;assigned an ID. Then the&nbsp;label set values are stored together with their ID (aka time series or series):</p>
<figure class="wp-block-image size-full"><img decoding="async" width="927" height="404" src="/wp-content/uploads/2025/05/prometheus-labelsets.png" alt="Prometheus labelsets" class="wp-image-2706" srcset="https://palark.com/wp-content/uploads/2025/05/prometheus-labelsets.png 927w, https://palark.com/wp-content/uploads/2025/05/prometheus-labelsets-550x240.png 550w, https://palark.com/wp-content/uploads/2025/05/prometheus-labelsets-768x335.png 768w" sizes="(max-width: 927px) 100vw, 927px" /></figure>
<p class="wp-block-paragraph">Let&#8217;s say you have a&nbsp;million data sources in&nbsp;Prometheus, a&nbsp;hard drive and&nbsp;some memory range.</p>
<p class="wp-block-paragraph"><strong><em>Note:</em></strong> <em>TSDB has an active block. In&nbsp;the&nbsp;case of Prometheus, it&nbsp;usually spans two hours. Prometheus stores it&nbsp;in&nbsp;memory and&nbsp;flushes it&nbsp;to&nbsp;disk after some time.</em></p>
<p class="wp-block-paragraph">In&nbsp;this&nbsp;case, here&#8217;s how the&nbsp;data will be&nbsp;stored:</p>
<ol class="wp-block-list">
<li>Scrape the&nbsp;value from&nbsp;a&nbsp;source and&nbsp;save the&nbsp;label set&#8217;s mapping to&nbsp;ID in&nbsp;memory.</li>
<li>Save the&nbsp;same mapping in&nbsp;the&nbsp;log. In&nbsp;case of an incident (server reboot, memory shortage), the&nbsp;log allows you to&nbsp;restore all data to&nbsp;memory.</li>
<li>Write the&nbsp;value and&nbsp;the&nbsp;time it&nbsp;was collected in&nbsp;the&nbsp;log.</li>
<li>Write the&nbsp;value and&nbsp;the&nbsp;time it&nbsp;was collected in&nbsp;memory.</li>
<li>Repeat operations 1-4 for&nbsp;the&nbsp;subsequent sources.</li>
</ol>
<p class="wp-block-paragraph">In&nbsp;the&nbsp;end, you&#8217;ll have some data accumulated. Periodically, this&nbsp;data is&nbsp;dumped to&nbsp;disk as a&nbsp;separate block that includes both the&nbsp;metric values and&nbsp;the&nbsp;full range of label sets. Essentially, a&nbsp;block is&nbsp;a&nbsp;mini-database that contains all the&nbsp;information necessary to&nbsp;determine what value a&nbsp;particular metric had in&nbsp;the&nbsp;time period that this&nbsp;block spans:</p>
<figure class="wp-block-image size-full"><img decoding="async" width="914" height="445" src="/wp-content/uploads/2025/05/prometheus-labelsets-storage.png" alt="Prometheus labelsets storage" class="wp-image-2707" srcset="https://palark.com/wp-content/uploads/2025/05/prometheus-labelsets-storage.png 914w, https://palark.com/wp-content/uploads/2025/05/prometheus-labelsets-storage-550x268.png 550w, https://palark.com/wp-content/uploads/2025/05/prometheus-labelsets-storage-768x374.png 768w" sizes="(max-width: 914px) 100vw, 914px" /></figure>
<p class="wp-block-paragraph">Now, the&nbsp;data in&nbsp;memory can be&nbsp;roughly divided into two pieces: the&nbsp;first one contains the&nbsp;data, and&nbsp;the&nbsp;second one works with the&nbsp;label sets. Let&#8217;s take a&nbsp;look at the&nbsp;first one and&nbsp;try to&nbsp;figure out what may cause excessive memory consumption.</p>
<h3 class="wp-block-heading">#2: Processing data</h3>
<p class="wp-block-paragraph">Let&#8217;s go back to&nbsp;our thermometer example. We&nbsp;retrieve values from&nbsp;it&nbsp;and&nbsp;save timestamps. The&nbsp;data in&nbsp;memory is&nbsp;encoded and&nbsp;compressed:</p>
<ul class="wp-block-list">
<li>The&nbsp;<strong>values</strong> are encoded using the&nbsp;<a href="https://www.researchgate.net/figure/Example-of-GORILLA-encoding-algorithm_fig5_378153300">GORILLA algorithm</a>. It&nbsp;enables time series to&nbsp;be&nbsp;stored in&nbsp;memory in&nbsp;the&nbsp;most efficient way. There is&nbsp;an important thing about this&nbsp;algorithm: to&nbsp;read any point, the&nbsp;entire amount of data must first be&nbsp;decoded, i.e., in&nbsp;our case, the&nbsp;entire two-hour block.</li>
<li><strong>Timestamps</strong> are encoded using the&nbsp;<a href="https://www.timescale.com/blog/time-series-compression-algorithms-explained/">Delta-Delta algorithm</a>. Supposing the&nbsp;values are retrieved at regular intervals, e.g., every 30 or 60 seconds, <em>only one bit is&nbsp;needed</em> to&nbsp;store one timestamp.</li>
</ul>
<figure class="wp-block-image size-full"><img decoding="async" width="327" height="203" src="/wp-content/uploads/2025/05/labelsets-data-encoding.png" alt="Labelsets data encoding" class="wp-image-2708"/></figure>
<p class="wp-block-paragraph">The&nbsp;sequence of timestamps and&nbsp;values is&nbsp;called a&nbsp;<em>chunk</em>. The&nbsp;default chunk in&nbsp;Prometheus covers two hours&#8217; worth of data. After two hours, the&nbsp;chunk is&nbsp;flushed to&nbsp;disk, and&nbsp;a&nbsp;new data collection begins.</p>
<p class="wp-block-paragraph">If&nbsp;there are a&nbsp;million sources, a&nbsp;million chunks will be&nbsp;created (one source = one chunk). In&nbsp;two hours, you&#8217;ll end up with a&nbsp;million files on&nbsp;disk. That&#8217;s not too much, but in&nbsp;24 hours, their number would rise to&nbsp;12 million. With a&nbsp;large number of data sources (e.g., millions) and&nbsp;a&nbsp;long retention period (e.g., a&nbsp;month instead of a&nbsp;day), the&nbsp;data files would be&nbsp;scattered across the&nbsp;disk. This&nbsp;would result in&nbsp;significantly slower reads, as the&nbsp;system would have to&nbsp;access many scattered files for&nbsp;each request.</p>
<p class="wp-block-paragraph">To&nbsp;get around this&nbsp;bottleneck, in&nbsp;Prometheus, the&nbsp;<strong>chunks are written to&nbsp;disk sequentially in&nbsp;a&nbsp;single file</strong>. This&nbsp;reduces the&nbsp;number of files, keeps data consistent, and&nbsp;makes reading operations fast and&nbsp;convenient. In&nbsp;addition, all the&nbsp;offsets in&nbsp;the&nbsp;file are known, which means that you can easily find the&nbsp;right chunk without reading the&nbsp;whole file. The&nbsp;maximum file size is&nbsp;128 MB.</p>
<p class="wp-block-paragraph">The&nbsp;recording algorithm is&nbsp;as follows:</p>
<ul class="wp-block-list">
<li>Initially, the&nbsp;first chunks from&nbsp;all the&nbsp;sources are written to&nbsp;the&nbsp;file.</li>
<li>Then, if&nbsp;there is&nbsp;space left, the&nbsp;second chunks are written, and&nbsp;so on.</li>
<li>When space in&nbsp;the&nbsp;file runs out, another one is&nbsp;opened, and&nbsp;writing continues.</li>
</ul>
<figure class="wp-block-image size-full"><img decoding="async" width="631" height="324" src="/wp-content/uploads/2025/05/prometheus-stores-chunks.png" alt="Prometheus stores chunks" class="wp-image-2709" srcset="https://palark.com/wp-content/uploads/2025/05/prometheus-stores-chunks.png 631w, https://palark.com/wp-content/uploads/2025/05/prometheus-stores-chunks-550x282.png 550w" sizes="(max-width: 631px) 100vw, 631px" /></figure>
<p class="wp-block-paragraph">The&nbsp;main drawback is&nbsp;that the&nbsp;chunk size is&nbsp;limited <em>only</em> by the&nbsp;time interval and&nbsp;<em>not</em> by the&nbsp;number of data points. For&nbsp;example, with a&nbsp;standard data collection interval of 60 seconds, a&nbsp;two-hour chunk would contain 120 data points. However, if&nbsp;you reduce the&nbsp;data collection interval to&nbsp;15 seconds, the&nbsp;number of data points in&nbsp;the&nbsp;same two-hour segment would increase to&nbsp;480.</p>
<p class="wp-block-paragraph">This&nbsp;Prometheus feature raises two challenges:</p>
<ol class="wp-block-list">
<li>You cannot predict the&nbsp;amount of memory required to&nbsp;store a&nbsp;chunk.</li>
<li>Since reading any data point requires decoding the&nbsp;entire chunk, the&nbsp;<strong>overall memory consumption of the&nbsp;system increases</strong>.</li>
</ol>
<p class="wp-block-paragraph">Prometheus addresses the&nbsp;issue of growing data volumes by limiting the&nbsp;size of each chunk to&nbsp;120 data points. When a&nbsp;chunk reaches this&nbsp;limit, it&nbsp;is&nbsp;automatically saved to&nbsp;disk.</p>
<p class="wp-block-paragraph">At the&nbsp;same time, it&nbsp;is&nbsp;essential to&nbsp;maintain the&nbsp;speed of data processing so that data can be&nbsp;quickly read from&nbsp;it. To&nbsp;do so, Prometheus leverages the&nbsp;<strong>memory-mapping technology</strong>. Swap memory works in&nbsp;much the&nbsp;same way:</p>
<ul class="wp-block-list">
<li>Data structures are created in&nbsp;RAM.</li>
<li>When such a&nbsp;structure is&nbsp;accessed, the&nbsp;operating system quickly reads the&nbsp;data from&nbsp;the&nbsp;disk and&nbsp;places it&nbsp;into memory.</li>
<li>From&nbsp;the&nbsp;application perspective, it&nbsp;looks like the&nbsp;data has always been in&nbsp;memory.</li>
</ul>
<p class="wp-block-paragraph">This&nbsp;approach significantly reduces RAM usage, since the&nbsp;data is&nbsp;physically stored on&nbsp;the&nbsp;disk and&nbsp;only read into memory when needed.</p>
<p class="wp-block-paragraph">After three hours (one full two-hour block and&nbsp;half of the&nbsp;next block), the&nbsp;system groups the&nbsp;chunks belonging to&nbsp;the&nbsp;same time block. With a&nbsp;scrape interval of 15 seconds, each block would contain four chunks, each with 120 data points. Then, an index gets added to&nbsp;these chunks, thus creating a&nbsp;valid metrics database. Then, the&nbsp;process repeats.</p>
<figure class="wp-block-image size-full"><img decoding="async" width="688" height="324" src="/wp-content/uploads/2025/05/prometheus-stores-chunks-2.png" alt="Prometheus stores chunks 2" class="wp-image-2710" srcset="https://palark.com/wp-content/uploads/2025/05/prometheus-stores-chunks-2.png 688w, https://palark.com/wp-content/uploads/2025/05/prometheus-stores-chunks-2-550x259.png 550w" sizes="(max-width: 688px) 100vw, 688px" /></figure>
<p class="wp-block-paragraph">Let us recap what we&nbsp;have covered so far.</p>
<ul class="wp-block-list">
<li>All data from&nbsp;each source is&nbsp;written to&nbsp;individual chunks. The&nbsp;size of the&nbsp;chunk is&nbsp;120 points. The&nbsp;chunks are sequentially written to&nbsp;a&nbsp;single file until a&nbsp;maximum size of 128 MB is&nbsp;reached. When the&nbsp;file reaches this&nbsp;limit, the&nbsp;system creates a&nbsp;new file and&nbsp;continues writing to&nbsp;it. Every three hours, the&nbsp;system &#8220;cuts off&#8221; the&nbsp;accumulated chunks and&nbsp;merges them into a&nbsp;separate data block.</li>
<li>For&nbsp;efficient memory utilisation, all data is&nbsp;stored in&nbsp;compressed and&nbsp;encoded form. Prometheus leverages two encoding methods: GORILLA encoding for&nbsp;metric values and&nbsp;Delta-Delta encoding for&nbsp;timestamps. The&nbsp;distinctive feature of GORILLA encoding is&nbsp;that to&nbsp;read any single value, you have to&nbsp;decode the&nbsp;whole chunk. Delta-Delta encoding, on&nbsp;the&nbsp;other hand, is&nbsp;very efficient at compressing timestamps — only one bit is&nbsp;used to&nbsp;store each timestamp.</li>
</ul>
<p class="wp-block-paragraph">It&nbsp;looks like the&nbsp;data storage and&nbsp;processing system is&nbsp;quite efficient. Perhaps the&nbsp;problem of <strong>excessive memory consumption is&nbsp;not related to&nbsp;the&nbsp;data</strong> but to&nbsp;the&nbsp;label sets storage system? Let&#8217;s look at it&nbsp;in&nbsp;more detail.</p>
<h3 class="wp-block-heading">#3: Working with label sets</h3>
<p class="wp-block-paragraph">Below is&nbsp;an example of a&nbsp;label set:</p>
<pre class="wp-block-code"><code>{_name_="http_requests_total", job="ingress", method="GET"}</code></pre>
<p class="wp-block-paragraph">In&nbsp;this&nbsp;example, the&nbsp;label set consists of three components: <code>name</code>, <code>job</code>, and&nbsp;<code>method</code>.</p>
<p class="wp-block-paragraph">All label sets are stored in&nbsp;a&nbsp;special data structure called an <em>Index</em>, which works similarly to&nbsp;indexes in&nbsp;relational databases. In&nbsp;Prometheus, however, you don&#8217;t usually search for&nbsp;a&nbsp;full label set, but for&nbsp;one or more labels. This&nbsp;way, you can find all the&nbsp;time series containing these labels.</p>
<p class="wp-block-paragraph"><em><strong>Note:</strong> I&#8217;ll present a&nbsp;simplified perspective on&nbsp;how Index works (the actual implementation in&nbsp;the&nbsp;source code is&nbsp;more complex).</em></p>
<p class="wp-block-paragraph">The&nbsp;Index structure in&nbsp;Prometheus uses a&nbsp;dedicated memory area containing several components.</p>
<p class="wp-block-paragraph">The&nbsp;first one is&nbsp;<strong>Symbols</strong>. In&nbsp;this&nbsp;component, all keys and&nbsp;label values are stored as separate strings, and&nbsp;each string is&nbsp;assigned a&nbsp;unique identifier (ID).</p>
<figure class="wp-block-image size-full"><img decoding="async" width="672" height="530" src="/wp-content/uploads/2025/05/prometheus-memory-symbols.png" alt="Prometheus memory symbols" class="wp-image-2712" srcset="https://palark.com/wp-content/uploads/2025/05/prometheus-memory-symbols.png 672w, https://palark.com/wp-content/uploads/2025/05/prometheus-memory-symbols-550x434.png 550w" sizes="(max-width: 672px) 100vw, 672px" /></figure>
<p class="wp-block-paragraph">This&nbsp;approach ensures efficient memory utilization because the&nbsp;same keys and&nbsp;values are often repeated in&nbsp;label sets.</p>
<p class="wp-block-paragraph">The&nbsp;next entity, <strong>Postings</strong>, lets you quickly search for&nbsp;key-value pairs. For&nbsp;each such pair, the&nbsp;system stores a&nbsp;list of time series containing this&nbsp;pair. However, it&nbsp;uses not the&nbsp;string values themselves, but their identifiers (IDs) and&nbsp;the&nbsp;corresponding series arrays:</p>
<figure class="wp-block-image size-full"><img decoding="async" width="672" height="530" src="/wp-content/uploads/2025/05/prometheus-memory-postings.png" alt="Prometheus memory postings" class="wp-image-2713" srcset="https://palark.com/wp-content/uploads/2025/05/prometheus-memory-postings.png 672w, https://palark.com/wp-content/uploads/2025/05/prometheus-memory-postings-550x434.png 550w" sizes="(max-width: 672px) 100vw, 672px" /></figure>
<p class="wp-block-paragraph">For&nbsp;example, to&nbsp;find all series that have the&nbsp;<code>job</code> label with the&nbsp;<code>ingress</code> value, you must first convert the&nbsp;key-value pair using symbols. In&nbsp;our example, these are symbols 3 and&nbsp;4. Next, you have to&nbsp;find a&nbsp;pair of 3,4 and&nbsp;read the&nbsp;series array.</p>
<p class="wp-block-paragraph">The&nbsp;<strong>Series</strong> entity associates label sets with their data. It&nbsp;contains series IDs and&nbsp;an array of IDs describing the&nbsp;complete label set. The&nbsp;system converts the&nbsp;IDs back to&nbsp;text values to&nbsp;extract the&nbsp;original label set. Series also stores references to&nbsp;the&nbsp;data as offsets in&nbsp;the&nbsp;chunk files, allowing you to&nbsp;access the&nbsp;chunks themselves. Since there are usually multiple chunks for&nbsp;each series, the&nbsp;structure stores multiple such references:</p>
<figure class="wp-block-image size-full"><img decoding="async" width="672" height="530" src="/wp-content/uploads/2025/05/prometheus-memory-series.png" alt="Prometheus memory series" class="wp-image-2714" srcset="https://palark.com/wp-content/uploads/2025/05/prometheus-memory-series.png 672w, https://palark.com/wp-content/uploads/2025/05/prometheus-memory-series-550x434.png 550w" sizes="(max-width: 672px) 100vw, 672px" /></figure>
<p class="wp-block-paragraph">Let&#8217;s now look at how these entities will change if&nbsp;we&nbsp;add a&nbsp;new series that differs from&nbsp;the&nbsp;original one only by the&nbsp;value of the&nbsp;method label (<code>POST</code> instead of <code>GET</code>):</p>
<pre class="wp-block-code"><code>{_name_="http_requests_total", job="ingress", method="POST"}</code></pre>
<p class="wp-block-paragraph">Let&#8217;s break down the&nbsp;steps of how a&nbsp;series is&nbsp;added to&nbsp;the&nbsp;Index.</p>
<p class="wp-block-paragraph"><em>Step 1</em>. Add a&nbsp;<code>POST</code> entry to&nbsp;Symbols:</p>
<figure class="wp-block-image size-full"><img decoding="async" width="672" height="530" src="/wp-content/uploads/2025/05/prometheus-symbols-post.png" alt="Prometheus symbols post" class="wp-image-2715" srcset="https://palark.com/wp-content/uploads/2025/05/prometheus-symbols-post.png 672w, https://palark.com/wp-content/uploads/2025/05/prometheus-symbols-post-550x434.png 550w" sizes="(max-width: 672px) 100vw, 672px" /></figure>
<p class="wp-block-paragraph"><em>Step 2</em>. Add to&nbsp;Postings a&nbsp;new key-value pair (<code>method="POST"</code>) and&nbsp;the&nbsp;series in&nbsp;which it&nbsp;occurs. Update records for&nbsp;the&nbsp;existing key-value pairs, since the&nbsp;pairs <code>_name_="http_requests_total"</code> and&nbsp;<code>job="ingress"</code> are already there:</p>
<figure class="wp-block-image size-full"><img decoding="async" width="672" height="530" src="/wp-content/uploads/2025/05/prometheus-symbols-postings.png" alt="Prometheus symbols postings" class="wp-image-2716" srcset="https://palark.com/wp-content/uploads/2025/05/prometheus-symbols-postings.png 672w, https://palark.com/wp-content/uploads/2025/05/prometheus-symbols-postings-550x434.png 550w" sizes="(max-width: 672px) 100vw, 672px" /></figure>
<p class="wp-block-paragraph"><em>Step 3</em>. Add a&nbsp;new entry to&nbsp;Series, since this&nbsp;is&nbsp;a&nbsp;new series and&nbsp;it&nbsp;has its own references to&nbsp;chunks and&nbsp;its own label set:</p>
<figure class="wp-block-image size-full"><img decoding="async" width="672" height="530" src="/wp-content/uploads/2025/05/prometheus-symbols-postings-series.png" alt="Prometheus symbols postings series" class="wp-image-2717" srcset="https://palark.com/wp-content/uploads/2025/05/prometheus-symbols-postings-series.png 672w, https://palark.com/wp-content/uploads/2025/05/prometheus-symbols-postings-series-550x434.png 550w" sizes="(max-width: 672px) 100vw, 672px" /></figure>
<p class="wp-block-paragraph">As you can see, Symbols, Postings and&nbsp;Series enable storing label sets efficiently. They help you get rid of duplicating strings, use numeric IDs and&nbsp;chunk offsets, and, at the&nbsp;same time, maintain the&nbsp;search speed. Therefore, <strong>label sets processing is&nbsp;unlikely to&nbsp;be&nbsp;the&nbsp;cause</strong> of high resource consumption by the&nbsp;system.</p>
<p class="wp-block-paragraph">However, two other characteristics usually go unnoticed but can greatly affect system performance—the number of unique label sets (cardinality) and&nbsp;the&nbsp;rate at which new time series emerge (churn). Let&#8217;s examine them.</p>
<h3 class="wp-block-heading">#4: Cardinality</h3>
<p class="wp-block-paragraph">Cardinality is&nbsp;the&nbsp;number of unique label sets for&nbsp;a&nbsp;metric.</p>
<p class="wp-block-paragraph">Let&#8217;s explore it&nbsp;with a&nbsp;basic example. Suppose you have the&nbsp;<code>http_requests_total</code> metric with two labels: <code>instance</code> (has three different values) and&nbsp;<code>job</code> (has one value).</p>
<figure class="wp-block-image size-full"><img decoding="async" width="762" height="157" src="/wp-content/uploads/2025/05/prometheus-metric-cardinality-1.png" alt="Prometheus metric cardinality 1" class="wp-image-2718" srcset="https://palark.com/wp-content/uploads/2025/05/prometheus-metric-cardinality-1.png 762w, https://palark.com/wp-content/uploads/2025/05/prometheus-metric-cardinality-1-550x113.png 550w" sizes="(max-width: 762px) 100vw, 762px" /></figure>
<p class="wp-block-paragraph">To&nbsp;calculate cardinality, you need to&nbsp;multiply the&nbsp;number of values of each label: 1 (metric name) × 3 (instance values) × 1 (job values) = 3. This&nbsp;means that there are three different label combinations, so the&nbsp;system will create three chunks to&nbsp;store the&nbsp;data.</p>
<p class="wp-block-paragraph">If&nbsp;you throw another label (<code>method</code>) with five possible values to&nbsp;the&nbsp;mix, the&nbsp;cardinality would increase to&nbsp;1 × 3 × 1 × 1 × 5 = 15.</p>
<figure class="wp-block-image size-full"><img decoding="async" width="867" height="200" src="/wp-content/uploads/2025/05/prometheus-metric-cardinality-2.png" alt="Prometheus metric cardinality 2" class="wp-image-2719" srcset="https://palark.com/wp-content/uploads/2025/05/prometheus-metric-cardinality-2.png 867w, https://palark.com/wp-content/uploads/2025/05/prometheus-metric-cardinality-2-550x127.png 550w, https://palark.com/wp-content/uploads/2025/05/prometheus-metric-cardinality-2-768x177.png 768w" sizes="(max-width: 867px) 100vw, 867px" /></figure>
<p class="wp-block-paragraph">The&nbsp;number of chunks would grow as well. Still, the&nbsp;difference between 3 and&nbsp;15 is&nbsp;not that large. However, the&nbsp;situation can change drastically when new labels are added.</p>
<p class="wp-block-paragraph">For&nbsp;example, if&nbsp;you add an endpoint label with, say, 1000 different values, the&nbsp;cardinality (and the&nbsp;number of chunks) would increase to&nbsp;1 × 3 × 1 × 5 × 1000 = 15,000:</p>
<figure class="wp-block-image size-full"><img decoding="async" width="960" height="200" src="/wp-content/uploads/2025/05/prometheus-metric-cardinality-3.png" alt="Prometheus metric cardinality 3" class="wp-image-2720" srcset="https://palark.com/wp-content/uploads/2025/05/prometheus-metric-cardinality-3.png 960w, https://palark.com/wp-content/uploads/2025/05/prometheus-metric-cardinality-3-550x115.png 550w, https://palark.com/wp-content/uploads/2025/05/prometheus-metric-cardinality-3-768x160.png 768w" sizes="(max-width: 960px) 100vw, 960px" /></figure>
<p class="wp-block-paragraph">Apparently, storing that much data in&nbsp;chunks requires a&nbsp;large amount of memory. It&nbsp;also takes much more resources to&nbsp;insert data into those chunks and&nbsp;to&nbsp;read them. For&nbsp;example, if&nbsp;you want to&nbsp;count how many total requests were received, you’ll need to&nbsp;decode all 15,000 chunks.</p>
<p class="wp-block-paragraph">A&nbsp;cardinality of 15,000 means that there are as many new series and&nbsp;label sets in&nbsp;the&nbsp;Index. In&nbsp;other words, you must store 15,000 new label sets in&nbsp;Symbols and&nbsp;Postings, with these structures growing in&nbsp;both number of records and&nbsp;size as a&nbsp;result. Series arrays would also grow as key-value pairs are repeated. On&nbsp;top of that, it&nbsp;takes more resources to&nbsp;update the&nbsp;Index as well as read and&nbsp;resolve the&nbsp;request.</p>
<p class="wp-block-paragraph">Finally, it&nbsp;looks like we&nbsp;have found <strong>one of the&nbsp;culprits for&nbsp;high resource consumption</strong> in&nbsp;Prometheus. However, let&#8217;s consider one more suspect: churn.</p>
<h3 class="wp-block-heading">#5: Churn</h3>
<p class="wp-block-paragraph">Churn is&nbsp;a&nbsp;measure of the&nbsp;rate at which time series are added to&nbsp;or removed from&nbsp;a&nbsp;monitoring system. This&nbsp;parameter helps you figure out how rapidly the&nbsp;metrics&#8217; composition in&nbsp;the&nbsp;system is&nbsp;changing.</p>
<p class="wp-block-paragraph">To&nbsp;better understand this&nbsp;term, here’s a&nbsp;real-life illustration of churn. Imagine you produce cups and&nbsp;pack them into batches of 100 cups each. You can put 100 cups into a&nbsp;box, but they all should have the&nbsp;same design. Having a&nbsp;<em>high churn</em> means you produce 100 different designs for&nbsp;your cups, and&nbsp;each will require a&nbsp;separate box. In&nbsp;this&nbsp;case, you’ll end up with 100 boxes and&nbsp;hiring a&nbsp;truck to&nbsp;deliver all of them. If&nbsp;your <em>churn was 0</em>, you can pack all your cups into a&nbsp;single box and&nbsp;even use public transport for&nbsp;delivery.</p>
<p class="wp-block-paragraph">Let’s come back to&nbsp;Prometheus. Consider an example with four thermometers. Only one of them (the fourth) sends readings regularly; the&nbsp;rest work erratically. When 120 measurements are accumulated, Prometheus creates a&nbsp;chunk and&nbsp;saves it&nbsp;to&nbsp;disk. Then, a&nbsp;new cycle of data collection commences.</p>
<figure class="wp-block-image size-full"><img decoding="async" width="691" height="347" src="/wp-content/uploads/2025/05/prometheus-memory-chunks.png" alt="Prometheus memory chunks" class="wp-image-2721" srcset="https://palark.com/wp-content/uploads/2025/05/prometheus-memory-chunks.png 691w, https://palark.com/wp-content/uploads/2025/05/prometheus-memory-chunks-550x276.png 550w" sizes="(max-width: 691px) 100vw, 691px" /></figure>
<p class="wp-block-paragraph">After three hours, the&nbsp;data is&nbsp;written to&nbsp;the&nbsp;disk. However, during those three hours, <strong>Prometheus continues to&nbsp;store information from&nbsp;the&nbsp;other three sources</strong> that have stopped sending data. Since chunks from&nbsp;erratic sources contain few values, data compression works less efficiently compared to&nbsp;full chunks. This&nbsp;results in&nbsp;increased consumption of system resources.</p>
<p class="wp-block-paragraph">Symbols, Postings, and&nbsp;Series are also increasing in&nbsp;size, consuming more resources for&nbsp;Index updates and&nbsp;reading.</p>
<figure class="wp-block-image size-full"><img decoding="async" width="672" height="498" src="/wp-content/uploads/2025/05/prometheus-memory-storage-chart.png" alt="Prometheus memory storage chart" class="wp-image-2722" srcset="https://palark.com/wp-content/uploads/2025/05/prometheus-memory-storage-chart.png 672w, https://palark.com/wp-content/uploads/2025/05/prometheus-memory-storage-chart-550x408.png 550w" sizes="(max-width: 672px) 100vw, 672px" /></figure>
<p class="wp-block-paragraph">Prometheus has to&nbsp;store in&nbsp;the&nbsp;Index information about all time series that have ever existed in&nbsp;the&nbsp;system, as this&nbsp;historical data may be&nbsp;required for&nbsp;analysis. This&nbsp;means that the&nbsp;Index has to&nbsp;keep metadata about inactive series, too.</p>
<p class="wp-block-paragraph">While Prometheus&#8217;s chunk and&nbsp;index handling mechanisms are quite efficient, <strong>high cardinality and&nbsp;churn are still the&nbsp;main reasons for&nbsp;excessive resource consumption</strong>. That said, churn has yet another annoying feature: it&nbsp;doesn&#8217;t keep track of which metrics come up and&nbsp;which ones go away, so the&nbsp;initial 1000 unique metrics in&nbsp;a&nbsp;block can turn into 3000 in&nbsp;a&nbsp;few hours. This&nbsp;can be&nbsp;hard to&nbsp;detect.</p>
<h3 class="wp-block-heading">#6 (Bonus): remote_write&nbsp;</h3>
<p class="wp-block-paragraph">The&nbsp;well-known remote_write mechanism in&nbsp;Prometheus allows you to&nbsp;export collected metrics to&nbsp;external storage systems.</p>
<p class="wp-block-paragraph">This&nbsp;component can also affect the&nbsp;system&#8217;s resource consumption, but its effect depends on&nbsp;the&nbsp;configuration. A&nbsp;single remote_write endpoint has minimal impact on&nbsp;system resource consumption. However, if&nbsp;there are multiple endpoints, the&nbsp;situation can deteriorate quickly, especially if&nbsp;those external storage systems become unavailable. In&nbsp;this&nbsp;case, each configured remote_write can consume between 500 and&nbsp;700 megabytes of RAM, with the&nbsp;exact value depending on&nbsp;the&nbsp;total number of metrics in&nbsp;the&nbsp;cluster.</p>
<p class="wp-block-paragraph">While remote_write does affect resource consumption, its impact is&nbsp;usually much smaller than that caused by high cardinality or churn. This&nbsp;is&nbsp;why remote_write is&nbsp;seen as a&nbsp;minor factor in&nbsp;the&nbsp;overall Prometheus performance analysis.</p>
<h2 class="wp-block-heading">Optimizing Prometheus: Analyzing resource consumption</h2>
<p class="wp-block-paragraph">Now that we&#8217;ve identified the&nbsp;main causes of elevated resource consumption in&nbsp;Prometheus, let&#8217;s take a&nbsp;look at the&nbsp;tools that help you discover abusive metrics.</p>
<h3 class="wp-block-heading">Dealing with churn</h3>
<p class="wp-block-paragraph">First of all, let&#8217;s focus on&nbsp;churn, as it&nbsp;is&nbsp;quite difficult to&nbsp;track and&nbsp;its impact is&nbsp;not always obvious.</p>
<p class="wp-block-paragraph">Prometheus features a&nbsp;<code>./tsdb</code> tool. If&nbsp;you run it&nbsp;with the&nbsp;<code>analyze</code> command, it&nbsp;will analyze the&nbsp;completed data blocks and&nbsp;help you <strong>find the&nbsp;key-value pairs that cause the&nbsp;most churn</strong>:</p>
<pre class="wp-block-code"><code>./tsdb analyze
Label pairs most involved in&nbsp;churning:
17 job=node
11 __name__=node_systemd_unit_state
6 instance=foo:9100
4 instance=bar:9100
3 instance=baz:9100</code></pre>
<p class="wp-block-paragraph">Starting with version 2.14, a&nbsp;custom metric has been introduced — using the&nbsp;query below, you can find the&nbsp;series that have been added and&nbsp;removed most often in&nbsp;the&nbsp;last hour:</p>
<pre class="wp-block-code"><code>topk(10, sum without(instance)(sum_over_time(scrape_series_added&#91;1h])))</code></pre>
<h3 class="wp-block-heading">Dealing with cardinality</h3>
<p class="wp-block-paragraph">The&nbsp;selection of tools for&nbsp;analyzing the&nbsp;cardinality is&nbsp;wider. In&nbsp;addition to&nbsp;<code>./tsdb analyze</code>, you can use <em>Prometheus Status</em>, a&nbsp;page in&nbsp;Prometheus that <strong>shows the&nbsp;labels with the&nbsp;highest cardinality</strong>. Another utility worth noting is&nbsp;<code>mimirtool</code>. Let&#8217;s look at it&nbsp;in&nbsp;more detail.</p>
<p class="wp-block-paragraph">Mimirtool gathers information from&nbsp;two sources:</p>
<ul class="wp-block-list">
<li>It&nbsp;extracts from&nbsp;Grafana a&nbsp;list of metrics that are used in&nbsp;the&nbsp;dashboards.</li>
<li>It&nbsp;retrieves from&nbsp;Prometheus the&nbsp;full list of metrics, specifically those metrics that are used in&nbsp;Rules.</li>
</ul>
<p class="wp-block-paragraph">Once the&nbsp;data is&nbsp;collected, mimirtool analyzes it&nbsp;and&nbsp;<strong>determines which metrics are not being used</strong> anywhere. While finding unused metrics does not mean that they should be&nbsp;removed without any consideration, it&nbsp;is&nbsp;still a&nbsp;good reason to&nbsp;assess whether they are really in&nbsp;demand for&nbsp;the&nbsp;monitoring system.</p>
<figure class="wp-block-image size-full"><img decoding="async" width="575" height="335" src="/wp-content/uploads/2025/05/prometheus-mimirtool-architecture.png" alt="Prometheus mimirtool architecture" class="wp-image-2723" srcset="https://palark.com/wp-content/uploads/2025/05/prometheus-mimirtool-architecture.png 575w, https://palark.com/wp-content/uploads/2025/05/prometheus-mimirtool-architecture-550x320.png 550w" sizes="(max-width: 575px) 100vw, 575px" /></figure>
<h2 class="wp-block-heading">Optimizing Prometheus: Getting rid of unnecessary stuff</h2>
<p class="wp-block-paragraph">Let&#8217;s look at a&nbsp;real-life example of optimizing a&nbsp;monitoring system. There was a&nbsp;cluster where Prometheus was scraping about 10 million metrics, consuming a&nbsp;whopping 64 gigabytes of RAM:</p>
<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="406" src="/wp-content/uploads/2025/05/prometheus-memory-usage-64gb-1024x406.png" alt="Prometheus memory usage 64gb" class="wp-image-2728" srcset="https://palark.com/wp-content/uploads/2025/05/prometheus-memory-usage-64gb-1024x406.png 1024w, https://palark.com/wp-content/uploads/2025/05/prometheus-memory-usage-64gb-550x218.png 550w, https://palark.com/wp-content/uploads/2025/05/prometheus-memory-usage-64gb-768x305.png 768w, https://palark.com/wp-content/uploads/2025/05/prometheus-memory-usage-64gb.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
<p class="wp-block-paragraph">Once the&nbsp;optimization was performed and&nbsp;redundant metrics and&nbsp;label sets were removed, the&nbsp;system performance improved significantly: the&nbsp;number of metrics shrank >11 times to&nbsp;877К while memory consumption was down to&nbsp;less than 5 gigabytes (which is&nbsp;an impressive 92% optimization!).</p>
<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="445" src="/wp-content/uploads/2025/05/prometheus-memory-usage-5gb-1024x445.png" alt="Prometheus memory usage 5gb" class="wp-image-2729" srcset="https://palark.com/wp-content/uploads/2025/05/prometheus-memory-usage-5gb-1024x445.png 1024w, https://palark.com/wp-content/uploads/2025/05/prometheus-memory-usage-5gb-550x239.png 550w, https://palark.com/wp-content/uploads/2025/05/prometheus-memory-usage-5gb-768x334.png 768w, https://palark.com/wp-content/uploads/2025/05/prometheus-memory-usage-5gb.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
<p class="wp-block-paragraph">There are a&nbsp;couple of proven methods to&nbsp;optimize Prometheus memory consumption and&nbsp;performance:</p>
<ol class="wp-block-list">
<li><strong>Avoid adding unnecessary labels in&nbsp;the&nbsp;first place</strong>. Modern exporters and&nbsp;instrumenting libraries feature flexible settings that allow you to&nbsp;control this&nbsp;process.</li>
<li><strong>Delete unused labels or metrics</strong>. Prometheus features a&nbsp;special relabeling mechanism (<code>relabel_configs</code>) that allows you to&nbsp;remove unnecessary elements or convert them to&nbsp;a&nbsp;more efficient format:</li>
</ol>
<pre class="wp-block-code yaml"><code>- source_labels: &#91;requestID]
action: labeldrop
...
- source_labels: &#91;__name__]
regexp: not_important_metric
action: drop</code></pre>
<ol start="3" class="wp-block-list">
<li><strong>Set limits on&nbsp;the&nbsp;number of samples to&nbsp;collect from&nbsp;the&nbsp;source</strong>. This&nbsp;will prevent Prometheus from&nbsp;&#8220;getting hot&#8221; if&nbsp;some application suddenly tries to&nbsp;send too many metrics.</li>
<li><strong>Set limits on&nbsp;the&nbsp;number of sources</strong>. This&nbsp;will help in&nbsp;case someone decides to&nbsp;scale their Pod running 50,000 metrics to&nbsp;1000 Pods, for&nbsp;example.</li>
</ol>
<h2 class="wp-block-heading">Effective use of Prometheus after optimizations</h2>
<p class="wp-block-paragraph">You may now be&nbsp;wondering how to&nbsp;effectively investigate incidents after all the&nbsp;unnecessary stuff has been removed.</p>
<p class="wp-block-paragraph">Suppose there is&nbsp;an HTTP 500 error. Before optimization, its associated metric used to&nbsp;look like this:</p>
<pre class="wp-block-code"><code>{__name__="http_requests_total", code="500", user_agent="Mozilla/5.0", uri="/service/action/42", method="POST", request_id="XXXX-XX-XX", backend="backend-42", user_id="17"}</code></pre>
<p class="wp-block-paragraph">This&nbsp;metric provided comprehensive information such as server-side (backend) identifier, request identifier, request destination (endpoint), and&nbsp;even user identifier.</p>
<p class="wp-block-paragraph">And&nbsp;here&#8217;s what that same metric looks like after the&nbsp;“general cleanup”:</p>
<pre class="wp-block-code"><code>{__name__="http_requests_total", code="500", method="POST"}</code></pre>
<p class="wp-block-paragraph">The&nbsp;main idea behind monitoring is&nbsp;to&nbsp;notify you when something has gone wrong, so that you can quickly figure things out and&nbsp;correct the&nbsp;error. At first glance, it&nbsp;seems that the&nbsp;&#8220;cleaned up&#8221; metric above contains fewer details, but this&nbsp;is&nbsp;not the&nbsp;case, as <strong>you can get detailed information for&nbsp;analyzing incidents from&nbsp;system logs and&nbsp;traces</strong>. Logs usually contain all necessary extra information, including the&nbsp;<code>user_agent</code>, the&nbsp;<code>backend</code> used, as well as other vital details.</p>
<p class="wp-block-paragraph">The&nbsp;<a href="https://grafana.com/docs/grafana/latest/fundamentals/exemplars/">exemplars mechanism</a> in&nbsp;Prometheus allows you to&nbsp;link metrics to&nbsp;the&nbsp;corresponding logs and&nbsp;traces. The&nbsp;typical Prometheus metric looks as follows:</p>
<pre class="wp-block-code"><code>http_requests_total{method="POST", code="500"} 3</code></pre>
<p class="wp-block-paragraph">And&nbsp;here&#8217;s what that same metric looks like with exemplars:</p>
<pre class="wp-block-code"><code>http_requests_total{method="GET", code="500"} 3 # {trace_id="foo123"}</code></pre>
<p class="wp-block-paragraph">Essentially, exemplars are about being able to&nbsp;add metadata to&nbsp;metrics. <code>Trace_id</code> is&nbsp;most commonly used as such metadata, allowing for&nbsp;more detailed analysis by associating metrics with corresponding traces.</p>
<p class="wp-block-paragraph">In&nbsp;Prometheus, exemplars are stored separately from&nbsp;the&nbsp;main metrics, thus consuming additional system resources. So, when dealing with exemplars, you should follow the&nbsp;same optimization principles as when dealing with conventional metrics, i.e., you should <strong>carefully evaluate the&nbsp;need to&nbsp;add each exemplar on&nbsp;a&nbsp;case-by-case basis</strong>.</p>
<p class="wp-block-paragraph">For&nbsp;example, if&nbsp;the&nbsp;system logged several dozen 500 errors for&nbsp;a&nbsp;single endpoint over a&nbsp;30-second period, it&nbsp;is&nbsp;likely that all of these errors were caused by the&nbsp;same thing. In&nbsp;that case, you only need to&nbsp;add an exemplar to&nbsp;a&nbsp;single metric (or, if&nbsp;you are super meticulous, to&nbsp;every tenth or hundredth metric). Thus, you have to&nbsp;think ahead about adding exemplars; otherwise, you risk going back to&nbsp;where it&nbsp;all started: resource scarcity.</p>
<p class="wp-block-paragraph">Real-world experience shows the&nbsp;effectiveness of this&nbsp;approach: the&nbsp;team behind the&nbsp;example above confirmed that removing redundant metrics and&nbsp;label sets did <em>not</em> reduce the&nbsp;efficiency of the&nbsp;incident monitoring and&nbsp;handling. They continue to&nbsp;use the&nbsp;same monitoring dashboards and&nbsp;alerts as before, and&nbsp;the&nbsp;exemplars mechanism they have been using for&nbsp;a&nbsp;long time now remains just as beneficial, providing all the&nbsp;detail they need when investigating incidents.</p>
<h2 class="wp-block-heading">Takeaways</h2>
<p class="wp-block-paragraph">Prometheus is&nbsp;an advanced monitoring system with many tools and&nbsp;features. Its known drawback is&nbsp;excessive resource consumption, but as we&nbsp;have found, this&nbsp;is&nbsp;often due to&nbsp;a&nbsp;lack of understanding of the&nbsp;tool and&nbsp;thus its misuse.</p>
<p class="wp-block-paragraph">The&nbsp;solution lies in&nbsp;proper management of metrics and&nbsp;labels: you can delete unnecessary ones and&nbsp;set limits on&nbsp;the&nbsp;number of samples from&nbsp;sources or the&nbsp;number of sources themselves. You can use both Prometheus built-in tools (<code>./tsdb analyze</code> and&nbsp;<em>Prometheus Status</em>) and&nbsp;a&nbsp;third-party <em>mimirtool</em> to&nbsp;scan for&nbsp;unused metrics.</p>
<p class="wp-block-paragraph">At the&nbsp;same time, deleting redundancies should not affect the&nbsp;effectiveness of monitoring and&nbsp;incident handling. So, you must carefully analyze the&nbsp;used and&nbsp;even unused metrics before deleting them.</p>
<p class="wp-block-paragraph"></p>
</article>
</div>
</div>
<div class="content__wrapper">
<div class="content__column">
<section class="subscribe subscribe-blog">
<div class="container">
<img height="560" width="404" class="subscribe-blog__image"
src="https://palark.com/wp-content/themes/palark/assets/images/subscribe-blog.svg"
alt="pic">
<div class="subscribe-blog__content">
<div class="subscribe-blog__info">
<div class="subscribe-blog__title">Subscribe to our blog</div>
<div class="subscribe-blog__text">
<p>Get our new tech articles in a good old fashion!<br> We promise not to send anything besides
them.</p>
</div>
</div>
<div class="wpcf7 no-js" id="wpcf7-f4950-o1" lang="en-US" dir="ltr" data-wpcf7-id="4950">
<div class="screen-reader-response"><p role="status" aria-live="polite" aria-atomic="true"></p> <ul></ul></div>
<form action="/blog/prometheus-resource-consumption-optimization/#wpcf7-f4950-o1" method="post" class="wpcf7-form init palark-cf7 palark-subscribe-form wpcf7-acceptance-as-validation" id="contact-form" aria-label="Contact form" novalidate="novalidate" data-status="init">
<fieldset class="hidden-fields-container"><input type="hidden" name="_wpcf7" value="4950" /><input type="hidden" name="_wpcf7_version" value="6.1.7" /><input type="hidden" name="_wpcf7_locale" value="en_US" /><input type="hidden" name="_wpcf7_unit_tag" value="wpcf7-f4950-o1" /><input type="hidden" name="_wpcf7_container_post" value="0" /><input type="hidden" name="_wpcf7_posted_data_hash" value="" />
</fieldset>
<div class="cf7-grid cf7-grid--subscribe">
<div class="cf7-row">
<span class="wpcf7-form-control-wrap" data-name="your-email"><input size="40" maxlength="400" class="wpcf7-form-control wpcf7-email wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-email cf7-input" autocomplete="email" aria-required="true" aria-invalid="false" placeholder="Email" value="" type="email" name="your-email" /></span>
</div>
<div class="cf7-row cf7-row--consent">
<span class="wpcf7-form-control-wrap" data-name="consent"><span class="wpcf7-form-control wpcf7-acceptance"><span class="wpcf7-list-item"><label><input type="checkbox" name="consent" value="1" aria-invalid="false" /><span class="wpcf7-list-item-label">I consent to the <a href="/privacy-policy/" target="_blank">privacy policy</a></span></label></span></span></span>
</div>
<span id="wpcf7-6aa4f48988b57-wrapper" class="wpcf7-form-control-wrap cf7apps-honeypot-wrap honeypot-958-wrap" data-cf7apps-honeypot="honeypot-958" style="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;"><input type="hidden" name="honeypot-958-random-hash" value="20260912"><input type="hidden" name="honeypot-958-time-token" value="MTc4OTE5NTQwMQ==.7a54e268a46829b7ab22e264a79db1ae53651e618f523a1503610ca11172e3d9"><label
for="wpcf7-6aa4f48988b57-field"
class="hp-message"
>Please leave this field empty.</label><input
id="wpcf7-6aa4f48988b57-field"
class="wpcf7-form-control wpcf7-text"
type="text"
name="a38idwadz0wr"
value=""
autocomplete="new-password"
tabindex="1000"
data-cf7apps-tabindex="1000"
/></span>
<input class="wpcf7-form-control wpcf7-submit has-spinner button" type="submit" value="Sign me up" />
</div><div class="wpcf7-response-output" aria-hidden="true"></div>
</form>
</div>
</div>
</div>
</section>
<div class="content__share">
<h4>Share:</h4>
<div class="scriptlesssocialsharing"><div class="scriptlesssocialsharing__buttons"><a class="button linkedin" target="_blank" href="https://www.linkedin.com/feed/?shareActive=true&#038;text=Understanding%20and%20optimizing%20resource%20consumption%20in%20Prometheus%20https%3A%2F%2Fpalark.com%2Fblog%2Fprometheus-resource-consumption-optimization%2F%20%23NewPost" title="LinkedIn" rel="noopener noreferrer nofollow" style="min-width:24px;min-height:24px"><svg class="scriptlesssocialsharing__icon linkedin" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#fff" d="M6.227 12.61h4.19v13.48h-4.19zm2.095-6.7a2.43 2.43 0 0 1 0 4.86c-1.344 0-2.428-1.09-2.428-2.43s1.084-2.43 2.428-2.43m4.72 6.7h4.02v1.84h.058c.56-1.058 1.927-2.176 3.965-2.176 4.238 0 5.02 2.792 5.02 6.42v7.395h-4.183v-6.56c0-1.564-.03-3.574-2.178-3.574-2.18 0-2.514 1.7-2.514 3.46v6.668h-4.187z"></path></svg><span class="screen-reader-text">Share on LinkedIn</span></a><a class="button bluesky" target="_blank" href="https://bsky.app/intent/compose?text=Understanding%20and%20optimizing%20resource%20consumption%20in%20Prometheus%3A%20https%3A%2F%2Fpalark.com%2Fblog%2Fprometheus-resource-consumption-optimization%2F" title="Bluesky" rel="noopener noreferrer nofollow" style="min-width:24px;min-height:24px"><svg class="scriptlesssocialsharing__icon bluesky" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#fff" d="M16 14.903c-.996-1.928-3.709-5.521-6.231-7.293C7.353 5.912 6.43 6.206 5.827 6.478 5.127 6.793 5 7.861 5 8.49s.346 5.155.572 5.91c.747 2.496 3.404 3.34 5.851 3.07q.188-.029.38-.052a8 8 0 0 1-.38.051c-3.586.529-6.771 1.83-2.594 6.457 4.595 4.735 6.297-1.015 7.171-3.93.874 2.915 1.88 8.458 7.089 3.93 3.911-3.93 1.074-5.928-2.512-6.457a8 8 0 0 1-.38-.051q.192.024.38.051c2.447.271 5.104-.573 5.85-3.069.227-.755.573-5.281.573-5.91s-.127-1.697-.827-2.012c-.604-.271-1.526-.566-3.942 1.132-2.522 1.772-5.235 5.365-6.231 7.293"></path></svg><span class="screen-reader-text">Share on Bluesky</span></a><a class="button mastodon" target="_blank" href="https://share.joinmastodon.org/#text=Understanding%20and%20optimizing%20resource%20consumption%20in%20Prometheus%20https%3A%2F%2Fpalark.com%2Fblog%2Fprometheus-resource-consumption-optimization%2F" title="Mastodon" rel="noopener noreferrer nofollow" style="min-width:24px;min-height:24px"><svg class="scriptlesssocialsharing__icon mastodon" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#fff" d="M26.5 12.187c0-4.887-3.198-6.319-3.198-6.319-1.575-.782-4.39-1.097-7.302-1.116-2.864 0-5.65.334-7.264 1.069-.029 0-3.236 1.431-3.236 6.366v3.819c.115 4.772.878 9.478 5.288 10.652 1.69.46 3.443.653 5.193.573a10.4 10.4 0 0 0 3.99-.907l-.086-1.861a12.8 12.8 0 0 1-3.885.515c-2.024-.067-4.171-.22-4.496-2.71a5 5 0 0 1-.048-.698c1.485.332 2.996.533 4.515.602a25.6 25.6 0 0 0 4.468-.267c2.863-.335 5.278-2.072 5.584-3.656a37.5 37.5 0 0 0 .477-6.062m-3.77 6.29h-2.35v-5.726c0-1.213-.506-1.824-1.527-1.824s-1.69.726-1.69 2.167v3.14h-2.329v-3.197c0-1.441-.563-2.167-1.69-2.167-1.125 0-1.526.611-1.526 1.823v5.728h-2.3v-5.9a4.28 4.28 0 0 1 .954-2.863 3.24 3.24 0 0 1 2.51-1.07 3.03 3.03 0 0 1 2.711 1.375l.582.955.583-.955a3.03 3.03 0 0 1 2.71-1.374 3.24 3.24 0 0 1 2.51 1.069c.656.807.995 1.825.955 2.864l-.105 5.956Z"></path></svg><span class="screen-reader-text">Share on Mastodon</span></a><a class="button facebook" target="_blank" href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fpalark.com%2Fblog%2Fprometheus-resource-consumption-optimization%2F" title="Facebook" rel="noopener noreferrer nofollow" style="min-width:24px;min-height:24px"><svg class="scriptlesssocialsharing__icon facebook" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#fff" d="M28 16c0-6.627-5.373-12-12-12S4 9.373 4 16c0 5.628 3.875 10.35 9.101 11.647v-7.98h-2.474V16H13.1v-1.58c0-4.085 1.849-5.978 5.859-5.978.76 0 2.072.15 2.608.298v3.325c-.283-.03-.775-.045-1.386-.045-1.967 0-2.728.745-2.728 2.683V16h3.92l-.673 3.667h-3.247v8.245C23.395 27.195 28 22.135 28 16"></path></svg><span class="screen-reader-text">Share on Facebook</span></a><a class="button reddit" target="_blank" href="https://www.reddit.com/submit?url=https%3A%2F%2Fpalark.com%2Fblog%2Fprometheus-resource-consumption-optimization%2F" title="Reddit" rel="noopener noreferrer nofollow" style="min-width:24px;min-height:24px"><svg class="scriptlesssocialsharing__icon reddit" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#fff" d="M28.543 15.774a2.953 2.953 0 0 0-2.951-2.949 2.88 2.88 0 0 0-1.9.713 14.1 14.1 0 0 0-6.85-2.044l1.38-4.349 3.768.884a2.452 2.452 0 1 0 .24-1.176l-4.274-1a.6.6 0 0 0-.709.4l-1.659 5.224a14.3 14.3 0 0 0-7.316 2.029 2.9 2.9 0 0 0-1.872-.681 2.942 2.942 0 0 0-1.618 5.4 5 5 0 0 0-.062.765c0 4.158 5.037 7.541 11.229 7.541s11.22-3.383 11.22-7.541a5 5 0 0 0-.053-.706 2.96 2.96 0 0 0 1.427-2.51m-18.008 1.88a1.753 1.753 0 0 1 1.73-1.74 1.73 1.73 0 0 1 1.709 1.74 1.71 1.71 0 0 1-1.709 1.711 1.733 1.733 0 0 1-1.73-1.711m9.565 4.968a5.57 5.57 0 0 1-4.081 1.272h-.032a5.58 5.58 0 0 1-4.087-1.272.6.6 0 0 1 .844-.854 4.5 4.5 0 0 0 3.238.927h.032a4.5 4.5 0 0 0 3.237-.927.6.6 0 1 1 .844.854zm-.331-3.256a1.726 1.726 0 1 1 1.709-1.712 1.717 1.717 0 0 1-1.712 1.712z"></path></svg><span class="screen-reader-text">Share on Reddit</span></a><a class="button twitter" target="_blank" href="https://twitter.com/intent/tweet?text=Understanding%20and%20optimizing%20resource%20consumption%20in%20Prometheus&#038;url=https%3A%2F%2Fpalark.com%2Fblog%2Fprometheus-resource-consumption-optimization%2F" title="X (Twitter)" rel="noopener noreferrer nofollow" style="min-width:24px;min-height:24px"><svg class="scriptlesssocialsharing__icon twitter" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#fff" d="M28 8.557a10 10 0 0 1-2.828.775 4.93 4.93 0 0 0 2.166-2.725 9.7 9.7 0 0 1-3.13 1.194 4.92 4.92 0 0 0-3.593-1.55 4.924 4.924 0 0 0-4.794 6.049c-4.09-.21-7.72-2.17-10.15-5.15a4.94 4.94 0 0 0-.665 2.477c0 1.71.87 3.214 2.19 4.1a5 5 0 0 1-2.23-.616v.06c0 2.39 1.7 4.38 3.952 4.83-.414.115-.85.174-1.297.174q-.476-.001-.928-.086a4.935 4.935 0 0 0 4.6 3.42 9.9 9.9 0 0 1-6.114 2.107q-.597 0-1.175-.068a13.95 13.95 0 0 0 7.55 2.213c9.056 0 14.01-7.507 14.01-14.013q0-.32-.015-.637c.96-.695 1.795-1.56 2.455-2.55z"></path></svg><span class="screen-reader-text">Share on X (Twitter)</span></a><a class="button telegram" target="_blank" href="https://telegram.me/share/url?url=https%3A%2F%2Fpalark.com%2Fblog%2Fprometheus-resource-consumption-optimization%2F&#038;text=Understanding%20and%20optimizing%20resource%20consumption%20in%20Prometheus" title="Telegram" rel="noopener noreferrer nofollow" style="min-width:24px;min-height:24px"><svg class="scriptlesssocialsharing__icon telegram" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#fff" d="M25.515 6.896 6.027 14.41c-1.33.534-1.322 1.276-.243 1.606l5 1.56 1.72 5.66c.226.625.115.873.77.873.506 0 .73-.235 1.012-.51l2.43-2.363 5.056 3.734c.93.514 1.602.25 1.834-.863l3.32-15.638c.338-1.363-.52-1.98-1.41-1.577z"></path></svg><span class="screen-reader-text">Share on Telegram</span></a></div></div> </div>
<div class="content__comments">
<div id="comments">
<h2 class="comments-title">Comments <span></span></h2>
<div id="respond" class="comment-respond">
<h3 id="reply-title" class="comment-reply-title"> <small><a rel="nofollow" id="cancel-comment-reply-link" href="/blog/prometheus-resource-consumption-optimization/#respond" style="display:none;">Cancel reply</a></small></h3><form action="https://palark.com/wp-comments-post.php" method="post" id="commentform" class="comment-form"> <!-- OneAll.com / Social Login for WordPress / v5.10.0 -->
<div class="oneall_social_login">
<div class="oneall_social_login_label" style="margin-bottom: 3px;"><label>Connect with:</label></div>
<div class="oneall_social_login_providers" id="oneall_social_login_providers_3437791"></div>
<script data-cfasync="false" type="text/javascript">
var _oneall = _oneall || [];
_oneall.push(['social_login', 'set_providers', ['facebook','github','google','linkedin']]);
_oneall.push(['social_login', 'set_callback_uri', (window.location.href + ((window.location.href.split('?')[1] ? '&amp;': '?') + "oa_social_login_source=comments"))]);
_oneall.push(['social_login', 'set_custom_css_uri', 'https://secure.oneallcdn.com/css/api/socialize/themes/wordpress/modern.css']);
_oneall.push(['social_login', 'do_render_ui', 'oneall_social_login_providers_3437791']);
</script>
</div><p class="comment-notes"><span id="email-notes">Your email address will not be published.</span> <span class="required-field-message">Required fields are marked <span class="required">*</span></span></p><input id="author" name="author" type="text" placeholder="Name*" autocomplete="off" required/>
<input id="email" name="email" type="text" placeholder="Email*" autocomplete="off" required/>
<textarea autocomplete="new-password" id="gc932f35b5" name="gc932f35b5" rows="3" placeholder="Add a comment*" required></textarea><textarea id="comment" aria-label="hp-comment" aria-hidden="true" name="comment" autocomplete="new-password" style="padding:0 !important;clip:rect(1px, 1px, 1px, 1px) !important;position:absolute !important;white-space:nowrap !important;height:1px !important;width:1px !important;overflow:hidden !important;" tabindex="-1"></textarea><script data-noptimize>document.getElementById("comment").setAttribute( "id", "ad4d7262e032df21e5c16372717b4fdf" );document.getElementById("gc932f35b5").setAttribute( "id", "comment" );</script><p class="form-submit"><input name="submit" type="submit" id="submit" class="submit button" value="Post Comment" /> <input type='hidden' name='comment_post_ID' value='2665' id='comment_post_ID' />
<input type='hidden' name='comment_parent' id='comment_parent' value='0' />
</p></form> </div><!-- #respond -->
</div>
</div>
</div>
</div>
</div>
</div>
<section>
<div class="container">
<h2 class="upper"><span>Related</span> articles</h2>
<div class="content-grid content-grid--lined">
<article class="content mini">
<div class="content__info">
<div class="content__line">
<div class="content__date">26 October 2023</div>
</div>
<h3 class="content__title">
<a href="https://palark.com/blog/prometheus-centralized-storage-mimir/">Prometheus and centralized storage: When you need it, how it works, and what Mimir is</a>
</h3>
<ul class="content__tags">
<li>
<a href="https://palark.com/blog/tag/observability/"
class="content__tags-item content__tags-item--main">
observability </a>
</li>
<li>
<a href="https://palark.com/blog/tag/storage/"
class="content__tags-item">
storage </a>
</li>
<li>
<a href="https://palark.com/blog/tag/prometheus/"
class="content__tags-item">
Prometheus </a>
</li>
</ul>
</div>
</article><article class="content mini">
<div class="content__info">
<div class="content__line">
<div class="content__date">19 September 2019</div>
</div>
<h3 class="content__title">
<a href="https://palark.com/blog/ping-monitoring-between-kubernetes-nodes/">Ping monitoring between Kubernetes nodes</a>
</h3>
<ul class="content__tags">
<li>
<a href="https://palark.com/blog/tag/kubernetes/"
class="content__tags-item content__tags-item--main">
Kubernetes </a>
</li>
<li>
<a href="https://palark.com/blog/tag/observability/"
class="content__tags-item">
observability </a>
</li>
<li>
<a href="https://palark.com/blog/tag/networking/"
class="content__tags-item">
networking </a>
</li>
</ul>
</div>
</article><article class="content mini">
<div class="content__info">
<div class="content__line">
<div class="content__date">22 November 2022</div>
</div>
<h3 class="content__title">
<a href="https://palark.com/blog/vector-to-export-pgsql-logs-into-prometheus/">Exporting PostgreSQL logs into Prometheus metrics using Vector</a>
</h3>
<ul class="content__tags">
<li>
<a href="https://palark.com/blog/tag/postgresql/"
class="content__tags-item content__tags-item--main">
PostgreSQL </a>
</li>
<li>
<a href="https://palark.com/blog/tag/observability/"
class="content__tags-item">
observability </a>
</li>
<li>
<a href="https://palark.com/blog/tag/logging/"
class="content__tags-item">
logging </a>
</li>
</ul>
</div>
</article> </div>
</div>
</section>
</main>
<footer class="footer">
<div class="content">
<div class="footer__content">
<div class="footer__logo">
<?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 18" fill="none"><path fill="#231F20" d="M87.77 3.18h-2.98v13.53h2.98V3.18ZM100 3.18h-3.68l-6.85 6.76 6.85 6.77H100l-6.85-6.77L100 3.18ZM31.33 12.68 23.4.5l-7.9 12.18h3.54l4.36-7.03 4.37 7.03h3.55ZM62.25 12.68 54.33.5l-7.9 12.18h3.54l4.36-7.03 4.36 7.03h3.56ZM80.14 16.71l-3.76-4.36a4.76 4.76 0 0 0-1.75-9.17h-9.22v13.53h2.98V5.91h6.25a2.01 2.01 0 1 1 0 4.03H71.2l-1.46 2.74h3.5l3.48 4.03h3.44ZM9.23 3.18H0v13.53h2.99V5.91h6.25a2.01 2.01 0 1 1 0 4.03H5.78l-1.46 2.74h4.92a4.75 4.75 0 0 0 0-9.5h-.01ZM37.78 13.98V3.18H34.8v13.53h8.8l1.76-2.73h-7.58Z"></path></svg> </div>
<div class="footer__info">
<p>Germany,
<br>Baden-Württemberg, Ulm</p>
<ul id="footer-nav-col-1" class="nav"><li id="menu-item-144" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-privacy-policy menu-item-144"><a href="/privacy-policy/">Privacy policy</a></li>
<li id="menu-item-135" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-135"><a href="/impressum/">Imprint</a></li>
</ul><ul id="footer-nav-col-2" class="nav"><li id="menu-item-14" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-14"><a href="tel:+4973114613240">+49 731 1461 3240</a></li>
<li id="menu-item-15" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-15"><a href="mailto:info@palark.com">info@palark.com</a></li>
</ul> </div>
<div class="footer__certificates">
<div class="footer__certificates-grid">
<img height="54" width="145" src="/wp-content/themes/palark/assets/images/certs/gdpr.svg"
loading="lazy" alt="gdpr">
<img height="55" width="209" src="/wp-content/themes/palark/assets/images/certs/cncf.svg"
loading="lazy" alt="cncf" style="max-width: 190px">
<a href="/news/palark-best-devops-company-goodfirms-2025/" title="Palark is the Best Company to Work With">
<img height="144" width="288" src="/wp-content/themes/palark/assets/images/certs/good-firms.svg"
loading="lazy" alt="good-firms" style="max-height: 54px">
</a>
<div class="clutch-local-widget">
<div class="content">
<a class="logotype"
href="https://clutch.co/profile/palark?utm_source=widget&utm_medium=1&utm_campaign=widget&utm_content=logo&utm_term=palark.com"
target="_blank"
rel="nofollow"
data-ga-action="logo_click">
</a>
<div class="mini_widget_text">
<div class="mini_widget_stars">
<span class="rating">4.9</span>
<div class="reviews-totals-stars">
<a href="https://clutch.co/profile/palark?utm_source=widget&utm_medium=1&utm_campaign=widget&utm_content=stars&utm_term=palark.com#reviews"
rel="nofollow"
target="_blank">
<div class="fivestar-static-item">
<div class="form-item form-type-item">
<div class="fivestar-widget-static fivestar-widget-static-vote clearfix">
<div class="fivestar">
<div class="star star-1 star-odd">
<span class="on" style="--width: 100%; width: var(--width);"></span>
</div>
<div class="star star-2 star-even">
<span class="on" style="--width: 100%; width: var(--width);"></span>
</div>
<div class="star star-3 star-odd">
<span class="on" style="--width: 100%; width: var(--width);"></span>
</div>
<div class="star star-4 star-even">
<span class="on" style="--width: 100%; width: var(--width);"></span>
</div>
<div class="star star-5 star-odd">
<span class="on" style="--width: 90%; width: var(--width);"></span>
</div>
</div>
</div>
</div>
</div>
</a>
</div>
<span class="reviews-count">
<a href="https://clutch.co/profile/palark?utm_source=widget&utm_medium=1&utm_campaign=widget&utm_content=num_reviews&utm_term=palark.com#reviews"
target="_blank"
rel="nofollow">
15 reviews
</a>
</span>
</div>
</div>
</div>
</div>
<a href="/news/palark-iso-27001-certified/" title="Palark is ISO 27001 certified">
<img height="158" width="333" src="/wp-content/themes/palark/assets/images/certs/iso.png"
loading="lazy" alt="iso">
</a>
<a href="/news/palark-kubernetes-certified-service-provider/">
<img height="104" width="110" src="/wp-content/themes/palark/assets/images/certs/k8s.svg"
loading="lazy" alt="k8s" title="Kubernetes Certified Service Provider (KCSP)" style="grid-column: 2">
</a>
<img height="147" width="169" src="/wp-content/themes/palark/assets/images/certs/lf.png"
loading="lazy" alt="linux-foundation">
</div>
</div>
</div>
<div class="footer__bottom">
<div class="footer__back-up" onclick="window.scrollTo(0,0)">Back up</div>
<div class="footer__copyright">© 2022–2026 Palark
GmbH. All rights reserved. </div>
<div class="social-links">
<a href="https://www.linkedin.com/company/palark/" target="_blank">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30" fill="none">
<path fill="currentColor" fill-rule="evenodd"
d="M1.35 0C.6044 0 0 .6044 0 1.35v27.3C0 29.3956.6044 30 1.35 30h27.3c.7456 0 1.35-.6044 1.35-1.35V1.35C30 .6044 29.3956 0 28.65 0H1.35Zm5.3167 9.2832c1.428 0 2.5857-1.1577 2.5857-2.5857 0-1.428-1.1577-2.5857-2.5857-2.5857-1.428 0-2.5856 1.1577-2.5856 2.5857 0 1.428 1.1576 2.5857 2.5856 2.5857Zm-2.2121 1.9946h4.4548v14.2368H4.4546V11.2778Zm11.6976 14.2357-4.4701-.0006V11.2761H15.95v1.9472c.5713-.8049 1.8351-2.3515 4.4389-2.3515 1.1886 0 3.1027.3427 4.1433 1.8692.9126 1.3386.9969 3.1308.9969 4.2835v8.489h-4.4237v-7.7881c0-2.8162-1.7912-3.0686-2.7725-2.9128-.475.0754-.9855.2232-1.4019.6698-.4439.4762-.7788 1.3084-.7788 2.243v7.7881Z"
clip-rule="evenodd"></path>
</svg>
</a>
<a href="https://bsky.app/profile/palark.com" target="_blank">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 57" fill="none">
<path d="M13.873 3.805C21.21 9.332 29.103 20.537 32 26.55v15.882c0-.338-.13.044-.41.867-1.512 4.456-7.418 21.847-20.923 7.944-7.111-7.32-3.819-14.64 9.125-16.85-7.405 1.264-15.73-.825-18.014-9.015C1.12 23.022 0 8.51 0 6.55 0-3.268 8.579-.182 13.873 3.805ZM50.127 3.805C42.79 9.332 34.897 20.537 32 26.55v15.882c0-.338.13.044.41.867 1.512 4.456 7.418 21.847 20.923 7.944 7.111-7.32 3.819-14.64-9.125-16.85 7.405 1.264 15.73-.825 18.014-9.015C62.88 23.022 64 8.51 64 6.55c0-9.818-8.578-6.732-13.873-2.745Z"
fill="currentColor"></path>
</svg>
</a>
<a href="https://www.facebook.com/palarkcom/" target="_blank">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30" fill="none">
<path fill="currentColor"
d="M30 15a15 15 0 1 0-17.34 14.82V19.34H8.85V15h3.8v-3.3c0-3.76 2.25-5.84 5.67-5.84 1.64 0 3.36.3 3.36.3v3.68h-1.9c-1.86 0-2.44 1.16-2.44 2.35V15h4.16l-.66 4.34h-3.5v10.48A15 15 0 0 0 30 15Z"></path>
</svg>
</a>
<a href="https://www.youtube.com/@palark" target="_blank">
<svg xmlns="http://www.w3.org/2000/svg" width="31" height="20" viewBox="0 0 31 20" fill="none">
<path d="M24.9903 0.204701C20.5505 -0.0682335 10.6618 -0.0682335 6.23314 0.204701C1.43453 0.497852 0.862737 3.116 0.829102 10C0.862737 16.8739 1.42332 19.492 6.23314 19.7953C10.673 20.0682 20.5505 20.0682 24.9903 19.7953C29.7889 19.5021 30.3607 16.884 30.3943 10C30.3607 3.12611 29.8001 0.497852 24.9903 0.204701ZM11.9175 14.4377V5.55219L21.7725 9.98989L11.9175 14.4377Z"
fill="currentColor"></path>
</svg>
</a>
<a href="https://github.com/palark" target="_blank">
<svg xmlns="http://www.w3.org/2000/svg" width="21" height="20" viewBox="0 0 21 20" fill="none">
<path d="M10.3945 0C4.89453 0 0.394531 4.6123 0.394531 10.2495C0.394531 14.7764 3.22786 18.62 7.22786 19.9866C7.72786 20.072 7.89453 19.7304 7.89453 19.4741V17.5951C5.14453 18.193 4.5612 16.3993 4.5612 16.3993C4.14453 15.2035 3.47786 14.8618 3.47786 14.8618C2.5612 14.264 3.5612 14.264 3.5612 14.264C4.5612 14.3494 5.0612 15.2889 5.0612 15.2889C5.97786 16.8263 7.39453 16.3993 7.97786 16.143C8.0612 15.4597 8.3112 15.0327 8.64453 14.7764C6.3112 14.5202 3.97786 13.6661 3.97786 9.73707C3.97786 8.6267 4.39453 7.68716 4.97786 7.00386C4.97786 6.74762 4.5612 5.63725 5.14453 4.27065C5.14453 4.27065 5.97786 4.01441 7.89453 5.2956C8.72786 5.03936 9.5612 4.95395 10.3945 4.95395C11.2279 4.95395 12.0612 5.03936 12.8945 5.2956C14.8112 4.01441 15.6445 4.27065 15.6445 4.27065C16.2279 5.72267 15.8112 6.74762 15.7279 7.00386C16.3945 7.68716 16.7279 8.6267 16.7279 9.73707C16.7279 13.6661 14.3945 14.5202 12.1445 14.7764C12.4779 15.1181 12.8112 15.716 12.8112 16.6555V19.4741C12.8112 19.7304 12.9779 20.072 13.4779 19.9866C17.5612 18.62 20.3945 14.7764 20.3945 10.2495C20.3945 4.6123 15.8945 0 10.3945 0Z"
fill="currentColor"></path>
</svg>
</a>
</div> </div>
</div>
</footer>
<script type="speculationrules">
{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/palark/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
</script>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="0" height="0" style="position:absolute">
<symbol id="envelope" viewBox="0 0 512 512">
<path d="M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z"></path>
</symbol>
<symbol id="envelope-square" viewBox="0 0 448 512">
<path d="M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM178.117 262.104C87.429 196.287 88.353 196.121 64 177.167V152c0-13.255 10.745-24 24-24h272c13.255 0 24 10.745 24 24v25.167c-24.371 18.969-23.434 19.124-114.117 84.938-10.5 7.655-31.392 26.12-45.883 25.894-14.503.218-35.367-18.227-45.883-25.895zM384 217.775V360c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V217.775c13.958 10.794 33.329 25.236 95.303 70.214 14.162 10.341 37.975 32.145 64.694 32.01 26.887.134 51.037-22.041 64.72-32.025 61.958-44.965 81.325-59.406 95.283-70.199z"></path>
</symbol>
<symbol id="facebook" viewBox="0 0 512 512">
<path d="M504 256C504 119 393 8 256 8S8 119 8 256c0 123.78 90.69 226.38 209.25 245V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.28c-30.8 0-40.41 19.12-40.41 38.73V256h68.78l-11 71.69h-57.78V501C413.31 482.38 504 379.78 504 256z"></path>
</symbol>
<symbol id="facebook-f" viewBox="0 0 320 512">
<path d="M279.14 288l14.22-92.66h-88.91v-60.13c0-25.35 12.42-50.06 52.24-50.06h40.42V6.26S260.43 0 225.36 0c-73.22 0-121.08 44.38-121.08 124.72v70.62H22.89V288h81.39v224h100.17V288z"></path>
</symbol>
<symbol id="facebook-square" viewBox="0 0 448 512">
<path d="M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h137.25V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.27c-30.81 0-40.42 19.12-40.42 38.73V256h68.78l-11 71.69h-57.78V480H400a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48z"></path>
</symbol>
<symbol id="get-pocket" viewBox="0 0 448 512">
<path d="M407.6 64h-367C18.5 64 0 82.5 0 104.6v135.2C0 364.5 99.7 464 224.2 464c124 0 223.8-99.5 223.8-224.2V104.6c0-22.4-17.7-40.6-40.4-40.6zm-162 268.5c-12.4 11.8-31.4 11.1-42.4 0C89.5 223.6 88.3 227.4 88.3 209.3c0-16.9 13.8-30.7 30.7-30.7 17 0 16.1 3.8 105.2 89.3 90.6-86.9 88.6-89.3 105.5-89.3 16.9 0 30.7 13.8 30.7 30.7 0 17.8-2.9 15.7-114.8 123.2z"></path>
</symbol>
<symbol id="hatena" viewBox="0 0 853 711">
<path d="M344.709 564.734c-18.912 11.616-51.503 17.322-97.231 17.322h-67.65V426.887H250.4c46.963 0 79.422 5.907 96.687 17.707 17.547 11.806 26.179 32.653 26.179 62.578 0 26.781-9.46 46.015-28.557 57.562zM179.828 157.453h41.569c48.041 0 80.316 5.425 96.972 16.216 16.437 10.856 24.815 29.578 24.815 56.262 0 25.669-8.918 43.753-26.562 54.356-17.866 10.407-50.453 15.675-98.147 15.675h-38.647V157.453zm334.328 222.981c-28.306-31.634-67.65-49.409-118.14-53.25 44.906-12.243 77.521-30.143 98.15-54.068 20.531-23.607 30.715-55.654 30.715-95.985 0-31.925-6.978-60.172-20.5-84.569-13.862-24.246-33.794-43.665-59.972-58.193-22.912-12.6-50.134-21.485-81.868-26.725C330.65 2.566 274.831 0 194.741 0H0v710.225h200.644c80.597 0 138.731-2.822 174.272-8.222 35.506-5.581 65.303-14.975 89.421-27.853 29.829-15.744 52.579-38.144 68.479-66.925 15.993-28.875 23.925-62.169 23.925-100.247 0-52.669-14.188-95-42.585-126.544zM762.328 530.303c-49.709 0-89.978 40.241-89.978 89.947s40.269 89.975 89.978 89.975c49.644 0 89.947-40.269 89.947-89.975 0-49.706-40.303-89.947-89.947-89.947zM684.187 0h156.25v473.484h-156.25z"></path>
</symbol>
<symbol id="linkedin" viewBox="0 0 448 512">
<path d="M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"></path>
</symbol>
<symbol id="linkedin-in" viewBox="0 0 448 512">
<path d="M100.28 448H7.4V148.9h92.88zM53.79 108.1C24.09 108.1 0 83.5 0 53.8a53.79 53.79 0 0 1 107.58 0c0 29.7-24.1 54.3-53.79 54.3zM447.9 448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29 0-55.69 37.7-55.69 76.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5 42.69-48.3 87.88-48.3 94 0 111.28 61.9 111.28 142.3V448z"></path>
</symbol>
<symbol id="pinterest" viewBox="0 0 496 512">
<path d="M496 256c0 137-111 248-248 248-25.6 0-50.2-3.9-73.4-11.1 10.1-16.5 25.2-43.5 30.8-65 3-11.6 15.4-59 15.4-59 8.1 15.4 31.7 28.5 56.8 28.5 74.8 0 128.7-68.8 128.7-154.3 0-81.9-66.9-143.2-152.9-143.2-107 0-163.9 71.8-163.9 150.1 0 36.4 19.4 81.7 50.3 96.1 4.7 2.2 7.2 1.2 8.3-3.3.8-3.4 5-20.3 6.9-28.1.6-2.5.3-4.7-1.7-7.1-10.1-12.5-18.3-35.3-18.3-56.6 0-54.7 41.4-107.6 112-107.6 60.9 0 103.6 41.5 103.6 100.9 0 67.1-33.9 113.6-78 113.6-24.3 0-42.6-20.1-36.7-44.8 7-29.5 20.5-61.3 20.5-82.6 0-19-10.2-34.9-31.4-34.9-24.9 0-44.9 25.7-44.9 60.2 0 22 7.4 36.8 7.4 36.8s-24.5 103.8-29 123.2c-5 21.4-3 51.6-.9 71.2C65.4 450.9 0 361.1 0 256 0 119 111 8 248 8s248 111 248 248z"></path>
</symbol>
<symbol id="pinterest-p" viewBox="0 0 384 512">
<path d="M204 6.5C101.4 6.5 0 74.9 0 185.6 0 256 39.6 296 63.6 296c9.9 0 15.6-27.6 15.6-35.4 0-9.3-23.7-29.1-23.7-67.8 0-80.4 61.2-137.4 140.4-137.4 68.1 0 118.5 38.7 118.5 109.8 0 53.1-21.3 152.7-90.3 152.7-24.9 0-46.2-18-46.2-43.8 0-37.8 26.4-74.4 26.4-113.4 0-66.2-93.9-54.2-93.9 25.8 0 16.8 2.1 35.4 9.6 50.7-13.8 59.4-42 147.9-42 209.1 0 18.9 2.7 37.5 4.5 56.4 3.4 3.8 1.7 3.4 6.9 1.5 50.4-69 48.6-82.5 71.4-172.8 12.3 23.4 44.1 36 69.3 36 106.2 0 153.9-103.5 153.9-196.8C384 71.3 298.2 6.5 204 6.5z"></path>
</symbol>
<symbol id="pinterest-square" viewBox="0 0 448 512">
<path d="M448 80v352c0 26.5-21.5 48-48 48H154.4c9.8-16.4 22.4-40 27.4-59.3 3-11.5 15.3-58.4 15.3-58.4 8 15.3 31.4 28.2 56.3 28.2 74.1 0 127.4-68.1 127.4-152.7 0-81.1-66.2-141.8-151.4-141.8-106 0-162.2 71.1-162.2 148.6 0 36 19.2 80.8 49.8 95.1 4.7 2.2 7.1 1.2 8.2-3.3.8-3.4 5-20.1 6.8-27.8.6-2.5.3-4.6-1.7-7-10.1-12.3-18.3-34.9-18.3-56 0-54.2 41-106.6 110.9-106.6 60.3 0 102.6 41.1 102.6 99.9 0 66.4-33.5 112.4-77.2 112.4-24.1 0-42.1-19.9-36.4-44.4 6.9-29.2 20.3-60.7 20.3-81.8 0-53-75.5-45.7-75.5 25 0 21.7 7.3 36.5 7.3 36.5-31.4 132.8-36.1 134.5-29.6 192.6l2.2.8H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48z"></path>
</symbol>
<symbol id="reddit" viewBox="0 0 512 512">
<path d="M201.5 305.5c-13.8 0-24.9-11.1-24.9-24.6 0-13.8 11.1-24.9 24.9-24.9 13.6 0 24.6 11.1 24.6 24.9 0 13.6-11.1 24.6-24.6 24.6zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-132.3-41.2c-9.4 0-17.7 3.9-23.8 10-22.4-15.5-52.6-25.5-86.1-26.6l17.4-78.3 55.4 12.5c0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.3 24.9-24.9s-11.1-24.9-24.9-24.9c-9.7 0-18 5.8-22.1 13.8l-61.2-13.6c-3-.8-6.1 1.4-6.9 4.4l-19.1 86.4c-33.2 1.4-63.1 11.3-85.5 26.8-6.1-6.4-14.7-10.2-24.1-10.2-34.9 0-46.3 46.9-14.4 62.8-1.1 5-1.7 10.2-1.7 15.5 0 52.6 59.2 95.2 132 95.2 73.1 0 132.3-42.6 132.3-95.2 0-5.3-.6-10.8-1.9-15.8 31.3-16 19.8-62.5-14.9-62.5zM302.8 331c-18.2 18.2-76.1 17.9-93.6 0-2.2-2.2-6.1-2.2-8.3 0-2.5 2.5-2.5 6.4 0 8.6 22.8 22.8 87.3 22.8 110.2 0 2.5-2.2 2.5-6.1 0-8.6-2.2-2.2-6.1-2.2-8.3 0zm7.7-75c-13.6 0-24.6 11.1-24.6 24.9 0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.1 24.9-24.6 0-13.8-11-24.9-24.9-24.9z"></path>
</symbol>
<symbol id="reddit-alien" viewBox="0 0 512 512">
<path d="M440.3 203.5c-15 0-28.2 6.2-37.9 15.9-35.7-24.7-83.8-40.6-137.1-42.3L293 52.3l88.2 19.8c0 21.6 17.6 39.2 39.2 39.2 22 0 39.7-18.1 39.7-39.7s-17.6-39.7-39.7-39.7c-15.4 0-28.7 9.3-35.3 22l-97.4-21.6c-4.9-1.3-9.7 2.2-11 7.1L246.3 177c-52.9 2.2-100.5 18.1-136.3 42.8-9.7-10.1-23.4-16.3-38.4-16.3-55.6 0-73.8 74.6-22.9 100.1-1.8 7.9-2.6 16.3-2.6 24.7 0 83.8 94.4 151.7 210.3 151.7 116.4 0 210.8-67.9 210.8-151.7 0-8.4-.9-17.2-3.1-25.1 49.9-25.6 31.5-99.7-23.8-99.7zM129.4 308.9c0-22 17.6-39.7 39.7-39.7 21.6 0 39.2 17.6 39.2 39.7 0 21.6-17.6 39.2-39.2 39.2-22 .1-39.7-17.6-39.7-39.2zm214.3 93.5c-36.4 36.4-139.1 36.4-175.5 0-4-3.5-4-9.7 0-13.7 3.5-3.5 9.7-3.5 13.2 0 27.8 28.5 120 29 149 0 3.5-3.5 9.7-3.5 13.2 0 4.1 4 4.1 10.2.1 13.7zm-.8-54.2c-21.6 0-39.2-17.6-39.2-39.2 0-22 17.6-39.7 39.2-39.7 22 0 39.7 17.6 39.7 39.7-.1 21.5-17.7 39.2-39.7 39.2z"></path>
</symbol>
<symbol id="reddit-square" viewBox="0 0 448 512">
<path d="M283.2 345.5c2.7 2.7 2.7 6.8 0 9.2-24.5 24.5-93.8 24.6-118.4 0-2.7-2.4-2.7-6.5 0-9.2 2.4-2.4 6.5-2.4 8.9 0 18.7 19.2 81 19.6 100.5 0 2.4-2.3 6.6-2.3 9 0zm-91.3-53.8c0-14.9-11.9-26.8-26.5-26.8-14.9 0-26.8 11.9-26.8 26.8 0 14.6 11.9 26.5 26.8 26.5 14.6 0 26.5-11.9 26.5-26.5zm90.7-26.8c-14.6 0-26.5 11.9-26.5 26.8 0 14.6 11.9 26.5 26.5 26.5 14.9 0 26.8-11.9 26.8-26.5 0-14.9-11.9-26.8-26.8-26.8zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-99.7 140.6c-10.1 0-19 4.2-25.6 10.7-24.1-16.7-56.5-27.4-92.5-28.6l18.7-84.2 59.5 13.4c0 14.6 11.9 26.5 26.5 26.5 14.9 0 26.8-12.2 26.8-26.8 0-14.6-11.9-26.8-26.8-26.8-10.4 0-19.3 6.2-23.8 14.9l-65.7-14.6c-3.3-.9-6.5 1.5-7.4 4.8l-20.5 92.8c-35.7 1.5-67.8 12.2-91.9 28.9-6.5-6.8-15.8-11-25.9-11-37.5 0-49.8 50.4-15.5 67.5-1.2 5.4-1.8 11-1.8 16.7 0 56.5 63.7 102.3 141.9 102.3 78.5 0 142.2-45.8 142.2-102.3 0-5.7-.6-11.6-2.1-17 33.6-17.2 21.2-67.2-16.1-67.2z"></path>
</symbol>
<symbol id="sms" viewBox="0 0 512 512">
<path d="M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7 1.3 3 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128.2 304H116c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h12.3c6 0 10.4-3.5 10.4-6.6 0-1.3-.8-2.7-2.1-3.8l-21.9-18.8c-8.5-7.2-13.3-17.5-13.3-28.1 0-21.3 19-38.6 42.4-38.6H156c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6 0 1.3.8 2.7 2.1 3.8l21.9 18.8c8.5 7.2 13.3 17.5 13.3 28.1.1 21.3-19 38.6-42.4 38.6zm191.8-8c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-68.2l-24.8 55.8c-2.9 5.9-11.4 5.9-14.3 0L224 227.8V296c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V192c0-8.8 7.2-16 16-16h16c6.1 0 11.6 3.4 14.3 8.8l17.7 35.4 17.7-35.4c2.7-5.4 8.3-8.8 14.3-8.8h16c8.8 0 16 7.2 16 16v104zm48.3 8H356c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h12.3c6 0 10.4-3.5 10.4-6.6 0-1.3-.8-2.7-2.1-3.8l-21.9-18.8c-8.5-7.2-13.3-17.5-13.3-28.1 0-21.3 19-38.6 42.4-38.6H396c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6 0 1.3.8 2.7 2.1 3.8l21.9 18.8c8.5 7.2 13.3 17.5 13.3 28.1.1 21.3-18.9 38.6-42.3 38.6z"></path>
</symbol>
<symbol id="square-x-twitter" viewBox="0 0 448 512">
<path d="M64 32C28.7 32 0 60.7 0 96v320c0 35.3 28.7 64 64 64h320c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm297.1 84L257.3 234.6 379.4 396h-95.6L209 298.1 123.3 396H75.8l111-126.9L69.7 116h98l67.7 89.5 78.2-89.5h47.5zm-37.8 251.6L153.4 142.9h-28.3l171.8 224.7h26.3z"></path>
</symbol>
<symbol id="telegram" viewBox="0 0 496 512">
<path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm121.8 169.9l-40.7 191.8c-3 13.6-11.1 16.9-22.4 10.5l-62-45.7-29.9 28.8c-3.3 3.3-6.1 6.1-12.5 6.1l4.4-63.1 114.9-103.8c5-4.4-1.1-6.9-7.7-2.5l-142 89.4-61.2-19.1c-13.3-4.2-13.6-13.3 2.8-19.7l239.1-92.2c11.1-4 20.8 2.7 17.2 19.5z"></path>
</symbol>
<symbol id="telegram-plane" viewBox="0 0 448 512">
<path d="M446.7 98.6l-67.6 318.8c-5.1 22.5-18.4 28.1-37.3 17.5l-103-75.9-49.7 47.8c-5.5 5.5-10.1 10.1-20.7 10.1l7.4-104.9 190.9-172.5c8.3-7.4-1.8-11.5-12.9-4.1L117.8 284 16.2 252.2c-22.1-6.9-22.5-22.1 4.6-32.7L418.2 66.4c18.4-6.9 34.5 4.1 28.5 32.2z"></path>
</symbol>
<symbol id="twitter" viewBox="0 0 512 512">
<path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"></path>
</symbol>
<symbol id="twitter-square" viewBox="0 0 448 512">
<path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-48.9 158.8c.2 2.8.2 5.7.2 8.5 0 86.7-66 186.6-186.6 186.6-37.2 0-71.7-10.8-100.7-29.4 5.3.6 10.4.8 15.8.8 30.7 0 58.9-10.4 81.4-28-28.8-.6-53-19.5-61.3-45.5 10.1 1.5 19.2 1.5 29.6-1.2-30-6.1-52.5-32.5-52.5-64.4v-.8c8.7 4.9 18.9 7.9 29.6 8.3a65.447 65.447 0 0 1-29.2-54.6c0-12.2 3.2-23.4 8.9-33.1 32.3 39.8 80.8 65.8 135.2 68.6-9.3-44.5 24-80.6 64-80.6 18.9 0 35.9 7.9 47.9 20.7 14.8-2.8 29-8.3 41.6-15.8-4.9 15.2-15.2 28-28.8 36.1 13.2-1.4 26-5.1 37.8-10.2-8.9 13.1-20.1 24.7-32.9 34z"></path>
</symbol>
<symbol id="whatsapp" viewBox="0 0 448 512">
<path d="M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z"></path>
</symbol>
<symbol id="whatsapp-square" viewBox="0 0 448 512">
<path d="M224 122.8c-72.7 0-131.8 59.1-131.9 131.8 0 24.9 7 49.2 20.2 70.1l3.1 5-13.3 48.6 49.9-13.1 4.8 2.9c20.2 12 43.4 18.4 67.1 18.4h.1c72.6 0 133.3-59.1 133.3-131.8 0-35.2-15.2-68.3-40.1-93.2-25-25-58-38.7-93.2-38.7zm77.5 188.4c-3.3 9.3-19.1 17.7-26.7 18.8-12.6 1.9-22.4.9-47.5-9.9-39.7-17.2-65.7-57.2-67.7-59.8-2-2.6-16.2-21.5-16.2-41s10.2-29.1 13.9-33.1c3.6-4 7.9-5 10.6-5 2.6 0 5.3 0 7.6.1 2.4.1 5.7-.9 8.9 6.8 3.3 7.9 11.2 27.4 12.2 29.4s1.7 4.3.3 6.9c-7.6 15.2-15.7 14.6-11.6 21.6 15.3 26.3 30.6 35.4 53.9 47.1 4 2 6.3 1.7 8.6-1 2.3-2.6 9.9-11.6 12.5-15.5 2.6-4 5.3-3.3 8.9-2 3.6 1.3 23.1 10.9 27.1 12.9s6.6 3 7.6 4.6c.9 1.9.9 9.9-2.4 19.1zM400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM223.9 413.2c-26.6 0-52.7-6.7-75.8-19.3L64 416l22.5-82.2c-13.9-24-21.2-51.3-21.2-79.3C65.4 167.1 136.5 96 223.9 96c42.4 0 82.2 16.5 112.2 46.5 29.9 30 47.9 69.8 47.9 112.2 0 87.4-72.7 158.5-160.1 158.5z"></path>
</symbol>
<symbol id="x-twitter" viewBox="0 0 512 512">
<path d="M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8l164.9-188.5L26.8 48h145.6l100.5 132.9L389.2 48zm-24.8 373.8h39.1L151.1 88h-42l255.3 333.8z"></path>
</symbol>
</svg>
<script id="wp-hooks-js" src="/wp-includes/js/dist/hooks.min.js?ver=f0f188028580e8dc1255"></script>
<script id="wp-i18n-js" src="/wp-includes/js/dist/i18n.min.js?ver=1dfe7db3940c23ea9216"></script>
<script id="wp-i18n-js-after">
wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } );
//# sourceURL=wp-i18n-js-after
</script>
<script id="swv-js" defer src="/wp-content/plugins/contact-form-7/includes/swv/js/index.js?ver=6.1.7"></script>
<script id="contact-form-7-js-translations">
( function( domain, translations ) {
var localeData = translations.locale_data[ domain ] || translations.locale_data.messages;
localeData[""].domain = domain;
wp.i18n.setLocaleData( localeData, domain );
} )( "contact-form-7", {"translation-revision-date":"2026-05-05 18:32:38+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n != 1;","lang":"en_GB"},"This contact form is placed in the wrong place.":["This contact form is placed in the wrong place."],"Error:":["Error:"]}},"comment":{"reference":"includes\/js\/index.js"}} );
//# sourceURL=contact-form-7-js-translations
</script>
<script id="contact-form-7-js-before">
var wpcf7 = {
"api": {
"root": "https:\/\/palark.com\/wp-json\/",
"namespace": "contact-form-7\/v1"
}
};
//# sourceURL=contact-form-7-js-before
</script>
<script id="contact-form-7-js" defer src="/wp-content/plugins/contact-form-7/includes/js/index.js?ver=6.1.7"></script>
<script id="cf7apps-honeypot-refill-js-extra">
var cf7appsHoneypotRefill = {"forceRefillOnInit":""};
//# sourceURL=cf7apps-honeypot-refill-js-extra
</script>
<script id="cf7apps-honeypot-refill-js" defer src="/wp-content/plugins/contact-form-7-honeypot/legacy-honeypot/includes/js/honeypot-refill.js?ver=3.7.1"></script>
<script async data-wp-strategy="async" fetchpriority="low" id="comment-reply-js" src="/wp-includes/js/comment-reply.min.js?ver=7.1"></script>
<script id="lazyload-video-js-js" defer src="/wp-content/plugins/lazy-load-for-videos/public/js/lazyload-shared.js?ver=2.18.11"></script>
<script id="lazyload-youtube-js-js-before">
window.llvConfig=window.llvConfig||{};window.llvConfig.youtube={"colour":"red","buttonstyle":"none","controls":true,"loadpolicy":true,"thumbnailquality":"0","preroll":"","postroll":"","overlaytext":"<strong>Please accept YouTube cookies to play this video.<\/strong> By accepting you will be accessing content from YouTube, a service provided by an external third party.<br><br><a href=\"https:\/\/policies.google.com\/privacy\" target=\"_blank\" rel=\"noopener noreferrer\">YouTube privacy policy<\/a><br><br>If you accept this notice, your choice will be saved and the page will refresh.<br><br><span class=\"youtube-consent-button\">Accept YouTube Content <span aria-hidden=\"true\">&#10004;<\/span><\/span>","loadthumbnail":false,"cookies":false,"callback":"<!--YOUTUBE_CALLBACK-->"};
//# sourceURL=lazyload-youtube-js-js-before
</script>
<script id="lazyload-youtube-js-js" defer src="/wp-content/plugins/lazy-load-for-videos/public/js/lazyload-youtube.js?ver=2.18.11"></script>
<script id="lazyload-vimeo-js-js-before">
window.llvConfig=window.llvConfig||{};window.llvConfig.vimeo={"buttonstyle":"","playercolour":"","preroll":"","postroll":"","show_title":false,"overlaytext":"","loadthumbnail":true,"thumbnailquality":false,"cookies":false,"callback":"<!--VIMEO_CALLBACK-->"};
//# sourceURL=lazyload-vimeo-js-js-before
</script>
<script id="lazyload-vimeo-js-js" defer src="/wp-content/plugins/lazy-load-for-videos/public/js/lazyload-vimeo.js?ver=2.18.11"></script>
<script id="googlesitekit-events-provider-contact-form-7-js" defer src="/wp-content/plugins/google-site-kit/dist/assets/js/googlesitekit-events-provider-contact-form-7-0310812e6aa65ef3c958.js"></script>
<script id="googlesitekit-events-provider-content-events-js-before">
window._googlesitekit = window._googlesitekit || {};
window._googlesitekit.contentEvents = {"postID":2665,"isSinglePost":true};
//# sourceURL=googlesitekit-events-provider-content-events-js-before
</script>
<script id="googlesitekit-events-provider-content-events-js" defer src="/wp-content/plugins/google-site-kit/dist/assets/js/googlesitekit-events-provider-content-events-33078016c5e1e9f07c35.js"></script>
<!-- Start cookieyes banner --> <script defer id="cookieyes" type="text/javascript" src="https://cdn-cookieyes.com/client_data/2e50d88887eb6e7903fcace8/script.js"></script> <!-- End cookieyes banner -->
<!-- Matomo Tag Manager -->
<script>
var _mtm = window._mtm = window._mtm || [];
_mtm.push({'mtm.startTime': (new Date().getTime()), 'event': 'mtm.Start'});
(function() {
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src='https://cdn.matomo.cloud/palark.matomo.cloud/container_vEVxopwf.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<!-- End Matomo Tag Manager --></body>
</html>