<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Soheil Daliri</title>
    <description>The latest articles on DEV Community by Soheil Daliri (@techie-guy92).</description>
    <link>https://dev.to/techie-guy92</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4024793%2F304f112c-d018-4d7c-a15a-9263192ca10c.jpg</url>
      <title>DEV Community: Soheil Daliri</title>
      <link>https://dev.to/techie-guy92</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/techie-guy92"/>
    <language>en</language>
    <item>
      <title>7 Ways to Deploy kube-prometheus-stack in Kubernetes</title>
      <dc:creator>Soheil Daliri</dc:creator>
      <pubDate>Sat, 11 Jul 2026 07:02:09 +0000</pubDate>
      <link>https://dev.to/techie-guy92/7-ways-to-deploy-kube-prometheus-stack-in-kubernetes-2dhn</link>
      <guid>https://dev.to/techie-guy92/7-ways-to-deploy-kube-prometheus-stack-in-kubernetes-2dhn</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzrj03j2zrgj4vhbrp111.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzrj03j2zrgj4vhbrp111.png" alt=" " width="747" height="410"&gt;&lt;/a&gt;# Seven Common kube-prometheus-stack Deployment Architectures for Kubernetes&lt;/p&gt;

&lt;p&gt;Choosing a monitoring architecture is not just a Kubernetes decision—it's a business decision. Every deployment model trades off operational simplicity, cost, scalability, isolation, and observability.&lt;/p&gt;

&lt;p&gt;This guide explores seven common deployment architectures used in production, explains how each works, highlights the hidden trade-offs, and identifies the organizations that benefit most from each approach.&lt;/p&gt;




&lt;h2&gt;
  
  
  Scenario 1 — Centralized Monitoring (Shared Cluster Monitoring)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The Blueprint
&lt;/h3&gt;

&lt;p&gt;A single &lt;strong&gt;kube-prometheus-stack&lt;/strong&gt; is deployed in a dedicated &lt;code&gt;monitoring&lt;/code&gt; namespace.&lt;/p&gt;

&lt;p&gt;The stack consists of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prometheus&lt;/li&gt;
&lt;li&gt;Alertmanager&lt;/li&gt;
&lt;li&gt;Grafana&lt;/li&gt;
&lt;li&gt;kube-state-metrics&lt;/li&gt;
&lt;li&gt;node-exporter&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Prometheus is granted a &lt;strong&gt;ClusterRole&lt;/strong&gt; that allows it to discover monitoring targets throughout the entire Kubernetes cluster.&lt;/p&gt;

&lt;p&gt;Application namespaces only deploy exporters and monitoring resources such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ServiceMonitor&lt;/li&gt;
&lt;li&gt;PodMonitor&lt;/li&gt;
&lt;li&gt;PrometheusRule&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Prometheus automatically discovers and scrapes these resources across namespaces.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Hidden Catch
&lt;/h3&gt;

&lt;p&gt;Centralization simplifies operations, but every application contributes to the same Prometheus instance.&lt;/p&gt;

&lt;p&gt;A slow or misbehaving exporter does &lt;strong&gt;not&lt;/strong&gt; stop Prometheus from scraping the rest of the cluster. However, many slow exporters increase scrape duration, CPU usage, memory consumption, and overall scheduling pressure.&lt;/p&gt;

&lt;p&gt;Another concern is scale. As the number of monitored services and active time series grows, a single Prometheus eventually becomes the bottleneck.&lt;/p&gt;

&lt;h3&gt;
  
  
  Best Fit For
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Small to medium Kubernetes clusters&lt;/li&gt;
&lt;li&gt;SaaS companies&lt;/li&gt;
&lt;li&gt;E-commerce platforms&lt;/li&gt;
&lt;li&gt;Organizations with a centralized Platform or SRE team&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Not Ideal For
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Multi-tenant environments requiring strict data isolation&lt;/li&gt;
&lt;li&gt;Very large clusters producing tens of millions of active series&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Scenario 2 — Namespace-Scoped Monitoring
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The Blueprint
&lt;/h3&gt;

&lt;p&gt;Each namespace deploys its own independent kube-prometheus-stack.&lt;/p&gt;

&lt;p&gt;Every namespace owns its own:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prometheus&lt;/li&gt;
&lt;li&gt;Alertmanager&lt;/li&gt;
&lt;li&gt;Grafana&lt;/li&gt;
&lt;li&gt;Persistent Volume&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;RBAC is limited to namespace scope using Roles instead of ClusterRoles.&lt;/p&gt;

&lt;p&gt;Teams operate independently from one another.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Hidden Catch
&lt;/h3&gt;

&lt;p&gt;Isolation comes at a significant operational cost.&lt;/p&gt;

&lt;p&gt;For example, 30 namespaces may require:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;30 Prometheus instances&lt;/li&gt;
&lt;li&gt;30 Grafanas&lt;/li&gt;
&lt;li&gt;30 Alertmanagers&lt;/li&gt;
&lt;li&gt;30 Persistent Volumes&lt;/li&gt;
&lt;li&gt;30 Helm releases&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Upgrading or backing up the monitoring platform becomes increasingly complex.&lt;/p&gt;

&lt;h3&gt;
  
  
  Best Fit For
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Managed Kubernetes platforms&lt;/li&gt;
&lt;li&gt;Air-gapped customer environments&lt;/li&gt;
&lt;li&gt;Highly regulated industries&lt;/li&gt;
&lt;li&gt;Organizations requiring complete tenant isolation&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Not Ideal For
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Cost-sensitive environments&lt;/li&gt;
&lt;li&gt;Small engineering teams&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Scenario 3 — Prometheus Agent with Central Storage (Hybrid)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The Blueprint
&lt;/h3&gt;

&lt;p&gt;Instead of running a full Prometheus server everywhere, each cluster or namespace runs &lt;strong&gt;Prometheus Agent&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Agent mode is enabled via &lt;code&gt;--enable-feature=agent&lt;/code&gt; on classic Prometheus, or by setting the dedicated agent mode field when running the Prometheus Operator's &lt;code&gt;Prometheus&lt;/code&gt; CRD, depending on your Prometheus version.&lt;/p&gt;

&lt;p&gt;Agent mode:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scrapes metrics&lt;/li&gt;
&lt;li&gt;Performs service discovery&lt;/li&gt;
&lt;li&gt;Maintains a lightweight WAL for reliability&lt;/li&gt;
&lt;li&gt;Streams metrics through &lt;code&gt;remote_write&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It does &lt;strong&gt;not&lt;/strong&gt; expose:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Query API&lt;/li&gt;
&lt;li&gt;Local dashboard&lt;/li&gt;
&lt;li&gt;Local long-term TSDB&lt;/li&gt;
&lt;li&gt;Local alert evaluation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A centralized backend such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Thanos Receive&lt;/li&gt;
&lt;li&gt;VictoriaMetrics Cluster&lt;/li&gt;
&lt;li&gt;Grafana Mimir&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;stores all metrics, executes recording rules, and serves Grafana dashboards.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Hidden Catch
&lt;/h3&gt;

&lt;p&gt;Although Agent mode reduces resource usage dramatically, it depends heavily on the availability of the remote storage.&lt;/p&gt;

&lt;p&gt;Temporary network interruptions are handled through the local WAL, but prolonged outages eventually exhaust the local buffer and lead to dropped samples.&lt;/p&gt;

&lt;p&gt;Since rules execute centrally, local clusters cannot evaluate alerts independently.&lt;/p&gt;

&lt;h3&gt;
  
  
  Best Fit For
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Large enterprises&lt;/li&gt;
&lt;li&gt;Multi-region Kubernetes deployments&lt;/li&gt;
&lt;li&gt;Organizations operating thousands of services&lt;/li&gt;
&lt;li&gt;Central Platform Engineering teams&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Not Ideal For
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Home labs&lt;/li&gt;
&lt;li&gt;Small clusters&lt;/li&gt;
&lt;li&gt;Teams without experience operating distributed observability platforms&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Scenario 4 — Multi-Cluster Monitoring
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The Blueprint
&lt;/h3&gt;

&lt;p&gt;Each Kubernetes cluster deploys its own kube-prometheus-stack.&lt;/p&gt;

&lt;p&gt;A global observability platform such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Thanos&lt;/li&gt;
&lt;li&gt;Grafana Mimir&lt;/li&gt;
&lt;li&gt;VictoriaMetrics&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;aggregates metrics from every cluster into a single global view:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cluster A → feeds into the global query layer&lt;/li&gt;
&lt;li&gt;Cluster B → feeds into the global query layer&lt;/li&gt;
&lt;li&gt;Cluster C → feeds into the global query layer&lt;/li&gt;
&lt;li&gt;The global query layer sits on top and gives operators a unified, cluster-wide view&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Developers continue using local Prometheus, while operations teams gain cluster-wide dashboards.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Hidden Catch
&lt;/h3&gt;

&lt;p&gt;Operating multiple Prometheus servers introduces additional complexity:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Object storage&lt;/li&gt;
&lt;li&gt;Global deduplication&lt;/li&gt;
&lt;li&gt;Cross-cluster authentication&lt;/li&gt;
&lt;li&gt;Long-term retention&lt;/li&gt;
&lt;li&gt;Disaster recovery&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These systems require dedicated operational expertise.&lt;/p&gt;

&lt;h3&gt;
  
  
  Best Fit For
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Enterprises operating multiple Kubernetes clusters&lt;/li&gt;
&lt;li&gt;Multi-region deployments&lt;/li&gt;
&lt;li&gt;Hybrid cloud environments&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Not Ideal For
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Single-cluster deployments&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Scenario 5 — Batch Jobs and Push-Based Metrics
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The Blueprint
&lt;/h3&gt;

&lt;p&gt;Most applications should expose metrics for Prometheus to scrape.&lt;/p&gt;

&lt;p&gt;However, short-lived batch jobs disappear before Prometheus has a chance to collect their metrics.&lt;/p&gt;

&lt;p&gt;For these workloads, Pushgateway provides a temporary metrics endpoint.&lt;/p&gt;

&lt;p&gt;Typical examples include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CronJobs&lt;/li&gt;
&lt;li&gt;Data export jobs&lt;/li&gt;
&lt;li&gt;Machine learning training&lt;/li&gt;
&lt;li&gt;Database migrations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Prometheus scrapes Pushgateway instead of the completed job.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Hidden Catch
&lt;/h3&gt;

&lt;p&gt;Pushgateway is &lt;strong&gt;not&lt;/strong&gt; a replacement for service discovery.&lt;/p&gt;

&lt;p&gt;Metrics remain stored after a job finishes unless explicitly deleted.&lt;/p&gt;

&lt;p&gt;Without cleanup, stale metrics can generate misleading dashboards and false alerts.&lt;/p&gt;

&lt;p&gt;Pushgateway should never be used for long-running applications such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Django&lt;/li&gt;
&lt;li&gt;Redis&lt;/li&gt;
&lt;li&gt;PostgreSQL&lt;/li&gt;
&lt;li&gt;RabbitMQ&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These services should always expose pull-based metrics.&lt;/p&gt;

&lt;h3&gt;
  
  
  Best Fit For
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Batch workloads&lt;/li&gt;
&lt;li&gt;Scheduled jobs&lt;/li&gt;
&lt;li&gt;CI/CD pipelines&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Not Ideal For
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Long-running services that can be scraped directly&lt;/li&gt;
&lt;li&gt;Environments without a process to clean up stale pushed metrics&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Scenario 6 — Service Mesh Monitoring
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The Blueprint
&lt;/h3&gt;

&lt;p&gt;When using a service mesh such as Istio, every pod contains an Envoy sidecar.&lt;/p&gt;

&lt;p&gt;Envoy automatically exposes networking metrics including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Request rate&lt;/li&gt;
&lt;li&gt;Error rate&lt;/li&gt;
&lt;li&gt;Latency&lt;/li&gt;
&lt;li&gt;Traffic volume&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A Prometheus server scrapes both:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Envoy metrics&lt;/li&gt;
&lt;li&gt;Application metrics&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;using separate scrape configurations.&lt;/p&gt;

&lt;p&gt;Application-specific metrics such as database connection pools or cache statistics continue to come from the application itself.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Hidden Catch
&lt;/h3&gt;

&lt;p&gt;Service mesh telemetry provides excellent network visibility but does not replace application instrumentation.&lt;/p&gt;

&lt;p&gt;Running a service mesh also introduces additional CPU, memory, and operational complexity.&lt;/p&gt;

&lt;h3&gt;
  
  
  Best Fit For
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Large microservice platforms&lt;/li&gt;
&lt;li&gt;Platform engineering organizations&lt;/li&gt;
&lt;li&gt;Teams managing complex service-to-service communication&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Not Ideal For
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Small Kubernetes clusters&lt;/li&gt;
&lt;li&gt;Early-stage startups&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Scenario 7 — Managed Observability Platforms
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The Blueprint
&lt;/h3&gt;

&lt;p&gt;Instead of managing Prometheus yourself, you deploy a lightweight vendor agent.&lt;/p&gt;

&lt;p&gt;Examples include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Datadog&lt;/li&gt;
&lt;li&gt;New Relic&lt;/li&gt;
&lt;li&gt;Grafana Cloud&lt;/li&gt;
&lt;li&gt;Google Cloud Managed Service for Prometheus&lt;/li&gt;
&lt;li&gt;Azure Monitor&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Depending on the vendor, metrics may be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;scraped directly by the agent,&lt;/li&gt;
&lt;li&gt;forwarded using remote_write,&lt;/li&gt;
&lt;li&gt;or collected from an existing Prometheus deployment.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Dashboards, alerting, storage, and retention are managed by the provider.&lt;/p&gt;

&lt;p&gt;Worth noting: some of these platforms (Grafana Cloud, Google Cloud Managed Service for Prometheus) are PromQL-compatible, so your existing dashboards, alert rules, and queries mostly carry over. Others (Datadog, New Relic) use their own proprietary query languages, which means migrating in or out later is a heavier lift. That compatibility question is often the real deciding factor for teams evaluating vendors, more so than sticker price.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Hidden Catch
&lt;/h3&gt;

&lt;p&gt;Managed platforms dramatically reduce operational effort but introduce new concerns:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ingestion costs&lt;/li&gt;
&lt;li&gt;Vendor lock-in&lt;/li&gt;
&lt;li&gt;Internet dependency&lt;/li&gt;
&lt;li&gt;Data sovereignty&lt;/li&gt;
&lt;li&gt;Compliance restrictions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;High-cardinality metrics can become extremely expensive.&lt;/p&gt;

&lt;h3&gt;
  
  
  Best Fit For
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Startups&lt;/li&gt;
&lt;li&gt;Small DevOps teams&lt;/li&gt;
&lt;li&gt;Organizations without dedicated observability engineers&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Not Ideal For
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Highly regulated industries&lt;/li&gt;
&lt;li&gt;Organizations prohibited from sending telemetry outside their infrastructure&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Universal Challenge — Metric Cardinality
&lt;/h2&gt;

&lt;p&gt;Every architecture shares one common challenge: &lt;strong&gt;metric cardinality&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A metric becomes a unique time series for every distinct label combination.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight prometheus"&gt;&lt;code&gt;&lt;span class="n"&gt;http_requests_total&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="err"&gt;
&lt;/span&gt;    &lt;span class="na"&gt;endpoint&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"/login"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="err"&gt;
&lt;/span&gt;    &lt;span class="na"&gt;status&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"200"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="err"&gt;
&lt;/span&gt;    &lt;span class="na"&gt;namespace&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"prod"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="err"&gt;
&lt;/span&gt;    &lt;span class="na"&gt;pod&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"api-17"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="err"&gt;
&lt;/span&gt;    &lt;span class="na"&gt;customer_id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"12345"&lt;/span&gt;&lt;span class="err"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If &lt;code&gt;customer_id&lt;/code&gt; has 10,000 possible values, Prometheus creates 10,000 different time series for that single metric.&lt;/p&gt;

&lt;p&gt;High-cardinality labels dramatically increase:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Memory usage&lt;/li&gt;
&lt;li&gt;CPU utilization&lt;/li&gt;
&lt;li&gt;Disk storage&lt;/li&gt;
&lt;li&gt;Query latency&lt;/li&gt;
&lt;li&gt;SaaS ingestion costs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Common high-cardinality labels include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;customer_id&lt;/li&gt;
&lt;li&gt;session_id&lt;/li&gt;
&lt;li&gt;uuid&lt;/li&gt;
&lt;li&gt;request_id&lt;/li&gt;
&lt;li&gt;trace_id&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Whenever possible, remove these labels before ingestion using &lt;code&gt;metric_relabel_configs&lt;/code&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Choosing the Right Architecture
&lt;/h2&gt;

&lt;p&gt;Ask yourself the following questions.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. How many Kubernetes clusters do you operate?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;One cluster → Scenario 1&lt;/li&gt;
&lt;li&gt;Multiple clusters → Scenario 4&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. How large is your environment?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Small to medium → Scenario 1&lt;/li&gt;
&lt;li&gt;Large enterprise → Scenario 3&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Do you require strict tenant isolation?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;No → Scenario 1&lt;/li&gt;
&lt;li&gt;Yes → Scenario 2&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. Are you monitoring short-lived batch jobs?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Yes → Add Scenario 5&lt;/li&gt;
&lt;li&gt;No → Use pull-based monitoring&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  5. Are you running a service mesh?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Yes → Add Scenario 6&lt;/li&gt;
&lt;li&gt;No → Standard Prometheus scraping is sufficient&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  6. Do you want to operate Prometheus yourself?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Yes → Scenarios 1–6&lt;/li&gt;
&lt;li&gt;No → Scenario 7&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Final Recommendation
&lt;/h2&gt;

&lt;p&gt;For a home lab or a small production cluster, begin with &lt;strong&gt;Scenario 1&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Deploy a single kube-prometheus-stack in a dedicated &lt;code&gt;monitoring&lt;/code&gt; namespace, retain approximately 15 days of metrics, and learn Prometheus, Alertmanager, Grafana, and ServiceMonitors thoroughly.&lt;/p&gt;

&lt;p&gt;Only introduce architectures such as Prometheus Agent, Thanos, or multi-cluster observability when operational requirements justify the added complexity.&lt;/p&gt;

&lt;p&gt;Like Kubernetes itself, observability should evolve with your platform. Start simple, master the fundamentals, and scale only when your business truly needs it.&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>prometheus</category>
      <category>observability</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
