# Common Queries




# Common Queries

These queries are used in various dashboards and may be a good
starting point for a dashboard developer or for someone looking
into particulars of a dashboard.

> [!TIP]
> The underlined values in each query are placeholders, and they are editable.
> Click one, type your environment's value, and every other occurrence of that placeholder on the page follows — so copying a query gives you something you can paste straight into Prometheus.
> Press Enter to commit an edit or Escape to discard it.
>
> You can also set placeholders up front by naming them in this page's URL:
>
>     ?mzSqlPrefix=v2_mz_&mzNamespaceList=materialize-prod
>
> The two directions are the same mechanism: editing in place rewrites the URL to match, so once the page reads the way you want, the address bar holds a link you can bookmark or share.
> Only placeholders you have changed appear there, and a customized value is underlined with a solid rather than a dashed line.
> Reload without the query string to get the defaults back.



## infra-alloy

<p>Is telemetry collection healthy, and if not, which stage of it broke.</p>
<p>Alloy runs in two roles in this stack. The <strong>agent</strong> is a DaemonSet with one
pod per node. It reads container log files and the node journal, and pushes
both to the gateway. The <strong>gateway</strong> is a Deployment. It receives the agents'
logs, collects Kubernetes events, scrapes every metrics target in the
cluster, and delivers all of it to the stores the dashboards read.</p>
<p>Every signal in this file travels through the gateway before it can be read.
The gateway scrapes Alloy&rsquo;s own metrics, and Alloy&rsquo;s own logs reach Loki
through the gateway. An empty panel here can therefore mean the gateway is
down rather than that nothing happened. When every panel is empty at once,
the first check is whether any gateway pod is running.</p>
<h2 id="scoping">Scoping<a class="anchor" href="#scoping">#</a></h2>
<p>Three variables, written literally on the same precedent as <code>infra-loki.yaml</code>.</p>
<ul>
<li><strong><code>$alloyNamespace</code></strong> selects where the collectors run.</li>
<li><strong><code>$alloyRole</code></strong> selects <code>alloy-agent</code>, <code>alloy-gateway</code>, or both, matched
against <code>app</code>. Metrics and logs both take <code>app</code> from the pod&rsquo;s
<code>app.kubernetes.io/name</code> label, so one picker serves both engines. Its
&ldquo;All&rdquo; value is the literal pair rather than <code>.+</code>, which makes it the anchor
that keeps every selector to this chart&rsquo;s collectors. <code>thanos-ruler</code>
publishes the same <code>prometheus_remote_storage_*</code> family, and an unanchored
selector would add its remote-write queue to the gateway&rsquo;s.</li>
<li><strong><code>$alloyPod</code></strong> selects one collector, most often the agent on one node.</li>
</ul>
<p>kube-state-metrics and cAdvisor series carry no <code>app</code> label. Those queries
scope with <code>and on (namespace, pod) up{…}</code> against the collectors&rsquo; own scrape
targets instead, which applies all three pickers without assuming anything
about pod names.</p>
<p>Queries over <code>up</code> and <code>scrape_*</code> for the <em>targets</em> the gateway scrapes carry
no Alloy scope. Those series describe the target, not the collector, and
nothing on them records which gateway replica produced them. The same holds
for the remote-write senders&rsquo; own queues, which are found by their <code>url</code>.</p>
<p>Kubernetes events carry the involved object&rsquo;s <code>name</code> rather than an <code>app</code>
label. The event queries match <code>name</code> against the role pattern, as
<code>${alloyRole:regex}</code> since it is embedded in a longer pattern, and against the
pod picker. They also match the pre-install validation Jobs, whose names
follow the release rather than the role, as <code>.+-validate-(agent|gateway)</code>.</p>
<h2 id="zero-only-when-something-was-collected">Zero only when something was collected<a class="anchor" href="#zero-only-when-something-was-collected">#</a></h2>
<p>Several counts here take the form <code>sum(A) or 0 * sum(B)</code>, where <code>B</code> is the
population <code>A</code> is drawn from. Alloy creates an unhealthy-component series only
once a component is unhealthy, so <code>sum(A)</code> alone is empty on a healthy
install. The <code>or</code> arm turns that into a zero, and only when <code>B</code> exists. A
panel reading zero has heard from the collectors; a panel reading nothing
has not.</p>
<h2 id="deliberate-drops">Deliberate drops<a class="anchor" href="#deliberate-drops">#</a></h2>
<p><code>loki_process_dropped_lines_total</code> counts two different things under one
name. The debug tap in both pipelines forks a copy of the stream, keeps about
1% of it, and drops the rest with reasons <code>sampleDebug</code>, <code>skip self</code> and
<code>skip loki</code>. The gateway also drops Alloy&rsquo;s own <code>loki.echo</code> output with reason
<code>alloy loki.echo</code>, which stops the tap re-collecting itself. None of those
lines were bound for a store. Every other reason is a guard on the main path,
and a line dropped there is lost. <code>infra.alloy.log_pipeline.guard_drops</code>
excludes the four deliberate reasons by name, so a reason added to a pipeline
later shows up as a loss until it is classified here.</p>

<h4 id="infra.alloy.health.agents_missing">infra.alloy.health.agents_missing
  <a class="anchor" href="#infra.alloy.health.agents_missing">#</a>
</h4>
Nodes the agent DaemonSet is scheduled onto whose agent is not reporting.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.health.agents_missing-tabs" id="infra.alloy.health.agents_missing-tab-0" checked>
  <label for="infra.alloy.health.agents_missing-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">clamp_min</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    kube_daemonset_status_desired_number_scheduled{
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      daemonset<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">alloy-agent</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">-</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>      up{
</span></span><span style="display:flex;"><span>        app<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">alloy-agent</span>&#34;,
</span></span><span style="display:flex;"><span>        namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;
</span></span><span style="display:flex;"><span>      }
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">or</span> <span style="color:#66d9ef">vector</span><span style="color:#f92672">(</span><span style="color:#ae81ff">0</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#ae81ff">0</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.health.unhealthy_components">infra.alloy.health.unhealthy_components
  <a class="anchor" href="#infra.alloy.health.unhealthy_components">#</a>
</h4>
Pipeline components that Alloy reports as anything other than healthy,
across the selected collectors.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.health.unhealthy_components-tabs" id="infra.alloy.health.unhealthy_components-tab-0" checked>
  <label for="infra.alloy.health.unhealthy_components-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  alloy_component_controller_running_components{
</span></span><span style="display:flex;"><span>    app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>    pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;,
</span></span><span style="display:flex;"><span>    health_type<span style="color:#f92672">!=</span>&#34;<span style="color:#e6db74">healthy</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">or</span>
</span></span><span style="display:flex;"><span><span style="color:#ae81ff">0</span> <span style="color:#f92672">*</span> <span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  alloy_component_controller_running_components{
</span></span><span style="display:flex;"><span>    app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>    pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.health.config_failed">infra.alloy.health.config_failed
  <a class="anchor" href="#infra.alloy.health.config_failed">#</a>
</h4>
Collectors whose most recent attempt to load their configuration failed.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.health.config_failed-tabs" id="infra.alloy.health.config_failed-tab-0" checked>
  <label for="infra.alloy.health.config_failed-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">count</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  alloy_config_last_load_successful{
</span></span><span style="display:flex;"><span>    app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>    pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>  } <span style="color:#f92672">==</span> <span style="color:#ae81ff">0</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">or</span>
</span></span><span style="display:flex;"><span><span style="color:#ae81ff">0</span> <span style="color:#f92672">*</span> <span style="color:#66d9ef">count</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  alloy_config_last_load_successful{
</span></span><span style="display:flex;"><span>    app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>    pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.health.log_lines_lost">infra.alloy.health.log_lines_lost
  <a class="anchor" href="#infra.alloy.health.log_lines_lost">#</a>
</h4>
Log lines per second the collectors gave up delivering, across every
hop and every reason.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.health.log_lines_lost-tabs" id="infra.alloy.health.log_lines_lost-tab-0" checked>
  <label for="infra.alloy.health.log_lines_lost-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    loki_write_dropped_entries_total{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.health.samples_lost">infra.alloy.health.samples_lost
  <a class="anchor" href="#infra.alloy.health.samples_lost">#</a>
</h4>
Metric samples per second the gateway failed to deliver and will not
retry, across every metrics destination.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.health.samples_lost-tabs" id="infra.alloy.health.samples_lost-tab-0" checked>
  <label for="infra.alloy.health.samples_lost-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>      <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>        prometheus_remote_storage_samples_failed_total{
</span></span><span style="display:flex;"><span>          app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>          namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>          pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>        }
</span></span><span style="display:flex;"><span>        <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">or</span> <span style="color:#66d9ef">vector</span><span style="color:#f92672">(</span><span style="color:#ae81ff">0</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">+</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>      <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>        otelcol_exporter_send_failed_metric_points_total{
</span></span><span style="display:flex;"><span>          app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>          namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>          pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>        }
</span></span><span style="display:flex;"><span>        <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">or</span> <span style="color:#66d9ef">vector</span><span style="color:#f92672">(</span><span style="color:#ae81ff">0</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">and</span> <span style="color:#66d9ef">on</span> <span style="color:#f92672">()</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>      prometheus_remote_storage_samples_total{
</span></span><span style="display:flex;"><span>        app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>        namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>        pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>      }
</span></span><span style="display:flex;"><span>      <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">or</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>      otelcol_exporter_sent_metric_points_total{
</span></span><span style="display:flex;"><span>        app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>        namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>        pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>      }
</span></span><span style="display:flex;"><span>      <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.health.pushes_refused">infra.alloy.health.pushes_refused
  <a class="anchor" href="#infra.alloy.health.pushes_refused">#</a>
</h4>
Push requests per second the gateway answered with an error, across its
log-push and remote-write listeners.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.health.pushes_refused-tabs" id="infra.alloy.health.pushes_refused-tab-0" checked>
  <label for="infra.alloy.health.pushes_refused-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>      <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>        loki_source_api_request_duration_seconds_count{
</span></span><span style="display:flex;"><span>          app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>          namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>          pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;,
</span></span><span style="display:flex;"><span>          route<span style="color:#f92672">!=</span>&#34;<span style="color:#e6db74">other</span>&#34;,
</span></span><span style="display:flex;"><span>          status_code<span style="color:#f92672">!~</span>&#34;<span style="color:#e6db74">2..</span>&#34;
</span></span><span style="display:flex;"><span>        }
</span></span><span style="display:flex;"><span>        <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">or</span> <span style="color:#66d9ef">vector</span><span style="color:#f92672">(</span><span style="color:#ae81ff">0</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">+</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>      <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>        prometheus_receive_http_request_duration_seconds_count{
</span></span><span style="display:flex;"><span>          app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>          namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>          pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;,
</span></span><span style="display:flex;"><span>          route<span style="color:#f92672">!=</span>&#34;<span style="color:#e6db74">other</span>&#34;,
</span></span><span style="display:flex;"><span>          status_code<span style="color:#f92672">!~</span>&#34;<span style="color:#e6db74">2..</span>&#34;
</span></span><span style="display:flex;"><span>        }
</span></span><span style="display:flex;"><span>        <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">or</span> <span style="color:#66d9ef">vector</span><span style="color:#f92672">(</span><span style="color:#ae81ff">0</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">and</span> <span style="color:#66d9ef">on</span> <span style="color:#f92672">()</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>      loki_source_api_request_duration_seconds_count{
</span></span><span style="display:flex;"><span>        app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>        namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>        pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>      }
</span></span><span style="display:flex;"><span>      <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">or</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>      prometheus_receive_http_request_duration_seconds_count{
</span></span><span style="display:flex;"><span>        app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>        namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>        pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>      }
</span></span><span style="display:flex;"><span>      <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.health.up">infra.alloy.health.up
  <a class="anchor" href="#infra.alloy.health.up">#</a>
</h4>
Whether the gateway can scrape each collector&rsquo;s own metrics endpoint.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.health.up-tabs" id="infra.alloy.health.up-tab-0" checked>
  <label for="infra.alloy.health.up-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>app, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  up{
</span></span><span style="display:flex;"><span>    app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>    pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.health.restarts">infra.alloy.health.restarts
  <a class="anchor" href="#infra.alloy.health.restarts">#</a>
</h4>
Container restarts per collector over the selected time range.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.health.restarts-tabs" id="infra.alloy.health.restarts-tab-0" checked>
  <label for="infra.alloy.health.restarts-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">increase</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    kube_pod_container_status_restarts_total{
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      container<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">alloy</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='range' title='range'>[1h]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">&gt;</span> <span style="color:#ae81ff">0</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">and</span> <span style="color:#66d9ef">on</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">max_over_time</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  up{
</span></span><span style="display:flex;"><span>    app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>    pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span>  <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='range' title='range'>[1h]</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.health.versions">infra.alloy.health.versions
  <a class="anchor" href="#infra.alloy.health.versions">#</a>
</h4>
The Alloy version each role is running, and how many collectors run it.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.health.versions-tabs" id="infra.alloy.health.versions-tab-0" checked>
  <label for="infra.alloy.health.versions-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">count</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>app, version<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  alloy_build_info{
</span></span><span style="display:flex;"><span>    app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>    pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.health.lines_delivered">infra.alloy.health.lines_delivered
  <a class="anchor" href="#infra.alloy.health.lines_delivered">#</a>
</h4>
Log lines per second each collector delivered, split by where it sent
them.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.health.lines_delivered-tabs" id="infra.alloy.health.lines_delivered-tab-0" checked>
  <label for="infra.alloy.health.lines_delivered-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>app, host<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    loki_write_sent_entries_total{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.health.samples_delivered">infra.alloy.health.samples_delivered
  <a class="anchor" href="#infra.alloy.health.samples_delivered">#</a>
</h4>
Metric samples per second the gateway delivered, split by destination.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.health.samples_delivered-tabs" id="infra.alloy.health.samples_delivered-tab-0" checked>
  <label for="infra.alloy.health.samples_delivered-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>component_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    prometheus_remote_storage_samples_total{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>component_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    otelcol_exporter_sent_metric_points_total{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.log_pipeline.read">infra.alloy.log_pipeline.read
  <a class="anchor" href="#infra.alloy.log_pipeline.read">#</a>
</h4>
Log lines per second the agents are reading, from container log files
and the node journal together.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.log_pipeline.read-tabs" id="infra.alloy.log_pipeline.read-tab-0" checked>
  <label for="infra.alloy.log_pipeline.read-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    loki_source_file_read_lines_total{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">+</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>      loki_source_journal_target_lines_total{
</span></span><span style="display:flex;"><span>        app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>        namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>        pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>      }
</span></span><span style="display:flex;"><span>      <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">or</span> <span style="color:#66d9ef">vector</span><span style="color:#f92672">(</span><span style="color:#ae81ff">0</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.log_pipeline.stored">infra.alloy.log_pipeline.stored
  <a class="anchor" href="#infra.alloy.log_pipeline.stored">#</a>
</h4>
Log lines per second the gateway delivered to its log destinations.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.log_pipeline.stored-tabs" id="infra.alloy.log_pipeline.stored-tab-0" checked>
  <label for="infra.alloy.log_pipeline.stored-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    loki_write_sent_entries_total{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">alloy-gateway</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.log_pipeline.propagation">infra.alloy.log_pipeline.propagation
  <a class="anchor" href="#infra.alloy.log_pipeline.propagation">#</a>
</h4>
How long a log line took from being written to being accepted by the
next hop, at the 99th percentile, per collector role.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.log_pipeline.propagation-tabs" id="infra.alloy.log_pipeline.propagation-tab-0" checked>
  <label for="infra.alloy.log_pipeline.propagation-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#ae81ff">0.99</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le, app<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>      loki_write_entry_propagation_latency_seconds_bucket{
</span></span><span style="display:flex;"><span>        app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>        namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>        pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>      }
</span></span><span style="display:flex;"><span>      <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.log_pipeline.files">infra.alloy.log_pipeline.files
  <a class="anchor" href="#infra.alloy.log_pipeline.files">#</a>
</h4>
Container log files each agent currently has open.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.log_pipeline.files-tabs" id="infra.alloy.log_pipeline.files-tab-0" checked>
  <label for="infra.alloy.log_pipeline.files-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  loki_source_file_files_active_total{
</span></span><span style="display:flex;"><span>    app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>    pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.log_pipeline.file_lines">infra.alloy.log_pipeline.file_lines
  <a class="anchor" href="#infra.alloy.log_pipeline.file_lines">#</a>
</h4>
Container log lines per second each agent is reading.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.log_pipeline.file_lines-tabs" id="infra.alloy.log_pipeline.file_lines-tab-0" checked>
  <label for="infra.alloy.log_pipeline.file_lines-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    loki_source_file_read_lines_total{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.log_pipeline.journal_lines">infra.alloy.log_pipeline.journal_lines
  <a class="anchor" href="#infra.alloy.log_pipeline.journal_lines">#</a>
</h4>
Node journal lines per second each agent is reading.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.log_pipeline.journal_lines-tabs" id="infra.alloy.log_pipeline.journal_lines-tab-0" checked>
  <label for="infra.alloy.log_pipeline.journal_lines-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    loki_source_journal_target_lines_total{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.log_pipeline.requests">infra.alloy.log_pipeline.requests
  <a class="anchor" href="#infra.alloy.log_pipeline.requests">#</a>
</h4>
Log delivery requests per second, split by destination and the status
code the destination returned.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.log_pipeline.requests-tabs" id="infra.alloy.log_pipeline.requests-tab-0" checked>
  <label for="infra.alloy.log_pipeline.requests-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>host, status_code<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    loki_write_request_duration_seconds_count{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.log_pipeline.retries">infra.alloy.log_pipeline.retries
  <a class="anchor" href="#infra.alloy.log_pipeline.retries">#</a>
</h4>
Log delivery batches per second a collector had to retry, per
destination.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.log_pipeline.retries-tabs" id="infra.alloy.log_pipeline.retries-tab-0" checked>
  <label for="infra.alloy.log_pipeline.retries-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>app, host<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    loki_write_batch_retries_total{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.log_pipeline.dropped">infra.alloy.log_pipeline.dropped
  <a class="anchor" href="#infra.alloy.log_pipeline.dropped">#</a>
</h4>
Log lines per second a collector gave up delivering, split by collector
role and reason.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.log_pipeline.dropped-tabs" id="infra.alloy.log_pipeline.dropped-tab-0" checked>
  <label for="infra.alloy.log_pipeline.dropped-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>app, reason<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    loki_write_dropped_entries_total{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">&gt;</span> <span style="color:#ae81ff">0</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">or</span> <span style="color:#66d9ef">on</span> <span style="color:#f92672">(</span>app<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#ae81ff">0</span> <span style="color:#f92672">*</span> <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>app<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    loki_write_sent_entries_total{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.log_pipeline.request_latency">infra.alloy.log_pipeline.request_latency
  <a class="anchor" href="#infra.alloy.log_pipeline.request_latency">#</a>
</h4>
How long log delivery requests take to be acknowledged, at the 99th
percentile, per destination.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.log_pipeline.request_latency-tabs" id="infra.alloy.log_pipeline.request_latency-tab-0" checked>
  <label for="infra.alloy.log_pipeline.request_latency-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#ae81ff">0.99</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le, host<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>      loki_write_request_duration_seconds_bucket{
</span></span><span style="display:flex;"><span>        app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>        namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>        pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>      }
</span></span><span style="display:flex;"><span>      <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.log_pipeline.guard_drops">infra.alloy.log_pipeline.guard_drops
  <a class="anchor" href="#infra.alloy.log_pipeline.guard_drops">#</a>
</h4>
Log lines per second a pipeline guard discarded before delivery, split
by reason.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.log_pipeline.guard_drops-tabs" id="infra.alloy.log_pipeline.guard_drops-tab-0" checked>
  <label for="infra.alloy.log_pipeline.guard_drops-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>app, reason<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    loki_process_dropped_lines_total{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;,
</span></span><span style="display:flex;"><span>      reason<span style="color:#f92672">!~</span>&#34;<span style="color:#e6db74">sampleDebug|skip self|skip loki|alloy loki.echo</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">&gt;</span> <span style="color:#ae81ff">0</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">or</span> <span style="color:#66d9ef">on</span> <span style="color:#f92672">(</span>app<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#ae81ff">0</span> <span style="color:#f92672">*</span> <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>app<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    loki_process_dropped_lines_total{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.log_pipeline.truncated">infra.alloy.log_pipeline.truncated
  <a class="anchor" href="#infra.alloy.log_pipeline.truncated">#</a>
</h4>
Container log lines per second the agents truncated while reassembling
lines the container runtime had split.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.log_pipeline.truncated-tabs" id="infra.alloy.log_pipeline.truncated-tab-0" checked>
  <label for="infra.alloy.log_pipeline.truncated-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    loki_process_cri_lines_truncated_total{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.metric_pipeline.targets">infra.alloy.metric_pipeline.targets
  <a class="anchor" href="#infra.alloy.metric_pipeline.targets">#</a>
</h4>
Metrics targets the gateways are scraping, summed across replicas.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.metric_pipeline.targets-tabs" id="infra.alloy.metric_pipeline.targets-tab-0" checked>
  <label for="infra.alloy.metric_pipeline.targets-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  prometheus_target_scrape_pool_targets{
</span></span><span style="display:flex;"><span>    app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>    pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.metric_pipeline.targets_down">infra.alloy.metric_pipeline.targets_down
  <a class="anchor" href="#infra.alloy.metric_pipeline.targets_down">#</a>
</h4>
Metrics targets whose most recent scrape failed.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.metric_pipeline.targets_down-tabs" id="infra.alloy.metric_pipeline.targets_down-tab-0" checked>
  <label for="infra.alloy.metric_pipeline.targets_down-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">count</span><span style="color:#f92672">(</span>up <span style="color:#f92672">==</span> <span style="color:#ae81ff">0</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">or</span>
</span></span><span style="display:flex;"><span><span style="color:#ae81ff">0</span> <span style="color:#f92672">*</span> <span style="color:#66d9ef">count</span><span style="color:#f92672">(</span>up<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.metric_pipeline.samples_sent">infra.alloy.metric_pipeline.samples_sent
  <a class="anchor" href="#infra.alloy.metric_pipeline.samples_sent">#</a>
</h4>
Samples per second the gateway wrote to its remote-write destinations.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.metric_pipeline.samples_sent-tabs" id="infra.alloy.metric_pipeline.samples_sent-tab-0" checked>
  <label for="infra.alloy.metric_pipeline.samples_sent-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    prometheus_remote_storage_samples_total{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.metric_pipeline.send_delay">infra.alloy.metric_pipeline.send_delay
  <a class="anchor" href="#infra.alloy.metric_pipeline.send_delay">#</a>
</h4>
How far behind collection each remote-write queue is sending, in
seconds.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.metric_pipeline.send_delay-tabs" id="infra.alloy.metric_pipeline.send_delay-tab-0" checked>
  <label for="infra.alloy.metric_pipeline.send_delay-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">clamp_min</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>pod, component_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    prometheus_remote_storage_highest_timestamp_in_seconds{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">-</span> <span style="color:#66d9ef">ignoring</span> <span style="color:#f92672">(</span>url, remote_name<span style="color:#f92672">)</span> <span style="color:#66d9ef">group_right</span> <span style="color:#f92672">(</span>pod<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>    prometheus_remote_storage_queue_highest_sent_timestamp_seconds{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#ae81ff">0</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">&lt;</span> <span style="color:#ae81ff">31536000</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.metric_pipeline.send_delay.worst">infra.alloy.metric_pipeline.send_delay.worst
  <a class="anchor" href="#infra.alloy.metric_pipeline.send_delay.worst">#</a>
</h4>
The furthest behind any remote-write queue is sending, in seconds.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.metric_pipeline.send_delay.worst-tabs" id="infra.alloy.metric_pipeline.send_delay.worst-tab-0" checked>
  <label for="infra.alloy.metric_pipeline.send_delay.worst-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">clamp_min</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    prometheus_remote_storage_highest_timestamp_in_seconds{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">-</span> <span style="color:#66d9ef">ignoring</span> <span style="color:#f92672">(</span>url, remote_name<span style="color:#f92672">)</span> <span style="color:#66d9ef">group_right</span> <span style="color:#f92672">(</span>pod<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>    prometheus_remote_storage_queue_highest_sent_timestamp_seconds{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    <span style="color:#ae81ff">0</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span> <span style="color:#f92672">&lt;</span> <span style="color:#ae81ff">31536000</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.metric_pipeline.down_targets">infra.alloy.metric_pipeline.down_targets
  <a class="anchor" href="#infra.alloy.metric_pipeline.down_targets">#</a>
</h4>
Every metrics target whose most recent scrape failed.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.metric_pipeline.down_targets-tabs" id="infra.alloy.metric_pipeline.down_targets-tab-0" checked>
  <label for="infra.alloy.metric_pipeline.down_targets-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>job, namespace, pod, instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  up <span style="color:#f92672">==</span> <span style="color:#ae81ff">0</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.metric_pipeline.targets_by_monitor">infra.alloy.metric_pipeline.targets_by_monitor
  <a class="anchor" href="#infra.alloy.metric_pipeline.targets_by_monitor">#</a>
</h4>
Targets each ServiceMonitor, PodMonitor or scrape job currently
matches, summed across gateway replicas.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.metric_pipeline.targets_by_monitor-tabs" id="infra.alloy.metric_pipeline.targets_by_monitor-tab-0" checked>
  <label for="infra.alloy.metric_pipeline.targets_by_monitor-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>scrape_job<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  prometheus_target_scrape_pool_targets{
</span></span><span style="display:flex;"><span>    app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>    pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.metric_pipeline.rejected_scrapes">infra.alloy.metric_pipeline.rejected_scrapes
  <a class="anchor" href="#infra.alloy.metric_pipeline.rejected_scrapes">#</a>
</h4>
Whole scrapes per second the gateway discarded for breaking a
configured limit.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.metric_pipeline.rejected_scrapes-tabs" id="infra.alloy.metric_pipeline.rejected_scrapes-tab-0" checked>
  <label for="infra.alloy.metric_pipeline.rejected_scrapes-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    prometheus_target_scrapes_exceeded_sample_limit_total{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    prometheus_target_scrapes_exceeded_body_size_limit_total{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    prometheus_target_scrape_pool_exceeded_target_limit_total{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    prometheus_target_scrape_pool_exceeded_label_limits_total{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.metric_pipeline.rejected_samples">infra.alloy.metric_pipeline.rejected_samples
  <a class="anchor" href="#infra.alloy.metric_pipeline.rejected_samples">#</a>
</h4>
Individual samples per second the gateway discarded from otherwise
successful scrapes.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.metric_pipeline.rejected_samples-tabs" id="infra.alloy.metric_pipeline.rejected_samples-tab-0" checked>
  <label for="infra.alloy.metric_pipeline.rejected_samples-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    prometheus_target_scrapes_sample_out_of_order_total{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    prometheus_target_scrapes_sample_duplicate_timestamp_total{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    prometheus_target_scrapes_sample_out_of_bounds_total{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.metric_pipeline.slowest_scrapes">infra.alloy.metric_pipeline.slowest_scrapes
  <a class="anchor" href="#infra.alloy.metric_pipeline.slowest_scrapes">#</a>
</h4>
The ten scrape jobs taking longest to scrape, by their slowest target.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.metric_pipeline.slowest_scrapes-tabs" id="infra.alloy.metric_pipeline.slowest_scrapes-tab-0" checked>
  <label for="infra.alloy.metric_pipeline.slowest_scrapes-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">topk</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#ae81ff">10</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>job<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    scrape_duration_seconds
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.metric_pipeline.largest_scrapes">infra.alloy.metric_pipeline.largest_scrapes
  <a class="anchor" href="#infra.alloy.metric_pipeline.largest_scrapes">#</a>
</h4>
The ten scrape jobs contributing the most samples per scrape, after
relabelling.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.metric_pipeline.largest_scrapes-tabs" id="infra.alloy.metric_pipeline.largest_scrapes-tab-0" checked>
  <label for="infra.alloy.metric_pipeline.largest_scrapes-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">topk</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#ae81ff">10</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>job<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    scrape_samples_post_metric_relabeling
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.metric_pipeline.samples_scraped">infra.alloy.metric_pipeline.samples_scraped
  <a class="anchor" href="#infra.alloy.metric_pipeline.samples_scraped">#</a>
</h4>
Samples per second the gateway scraped, split by the component that
scraped them.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.metric_pipeline.samples_scraped-tabs" id="infra.alloy.metric_pipeline.samples_scraped-tab-0" checked>
  <label for="infra.alloy.metric_pipeline.samples_scraped-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>component_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    prometheus_forwarded_samples_total{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;,
</span></span><span style="display:flex;"><span>      component_id<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">prometheus\\.(scrape|operator)\\..*</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.metric_pipeline.remote_write">infra.alloy.metric_pipeline.remote_write
  <a class="anchor" href="#infra.alloy.metric_pipeline.remote_write">#</a>
</h4>
Samples per second each remote-write destination took, rejected, and
had retried.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.metric_pipeline.remote_write-tabs" id="infra.alloy.metric_pipeline.remote_write-tab-0" checked>
  <label for="infra.alloy.metric_pipeline.remote_write-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>component_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    prometheus_remote_storage_samples_total{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>component_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    prometheus_remote_storage_samples_failed_total{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>component_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    prometheus_remote_storage_samples_retried_total{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.metric_pipeline.shards">infra.alloy.metric_pipeline.shards
  <a class="anchor" href="#infra.alloy.metric_pipeline.shards">#</a>
</h4>
Parallel senders each remote-write queue is running, against how many
it wants and how many it is allowed.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.metric_pipeline.shards-tabs" id="infra.alloy.metric_pipeline.shards-tab-0" checked>
  <label for="infra.alloy.metric_pipeline.shards-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>component_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  prometheus_remote_storage_shards{
</span></span><span style="display:flex;"><span>    app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>    pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>component_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  prometheus_remote_storage_shards_desired{
</span></span><span style="display:flex;"><span>    app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>    pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>component_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  prometheus_remote_storage_shards_max{
</span></span><span style="display:flex;"><span>    app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>    pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.metric_pipeline.send_latency">infra.alloy.metric_pipeline.send_latency
  <a class="anchor" href="#infra.alloy.metric_pipeline.send_latency">#</a>
</h4>
How long remote-write batches take to be acknowledged, at the 99th
percentile, per destination.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.metric_pipeline.send_latency-tabs" id="infra.alloy.metric_pipeline.send_latency-tab-0" checked>
  <label for="infra.alloy.metric_pipeline.send_latency-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#ae81ff">0.99</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le, component_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>      prometheus_remote_storage_sent_batch_duration_seconds_bucket{
</span></span><span style="display:flex;"><span>        app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>        namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>        pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>      }
</span></span><span style="display:flex;"><span>      <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.metric_pipeline.active_series">infra.alloy.metric_pipeline.active_series
  <a class="anchor" href="#infra.alloy.metric_pipeline.active_series">#</a>
</h4>
Series each gateway replica is holding in its write-ahead log.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.metric_pipeline.active_series-tabs" id="infra.alloy.metric_pipeline.active_series-tab-0" checked>
  <label for="infra.alloy.metric_pipeline.active_series-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  prometheus_remote_write_wal_storage_active_series{
</span></span><span style="display:flex;"><span>    app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>    pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.metric_pipeline.wal_size">infra.alloy.metric_pipeline.wal_size
  <a class="anchor" href="#infra.alloy.metric_pipeline.wal_size">#</a>
</h4>
Bytes each gateway replica&rsquo;s write-ahead log occupies on disk.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.metric_pipeline.wal_size-tabs" id="infra.alloy.metric_pipeline.wal_size-tab-0" checked>
  <label for="infra.alloy.metric_pipeline.wal_size-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  prometheus_tsdb_wal_storage_size_bytes{
</span></span><span style="display:flex;"><span>    app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>    pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.metric_pipeline.wal_errors">infra.alloy.metric_pipeline.wal_errors
  <a class="anchor" href="#infra.alloy.metric_pipeline.wal_errors">#</a>
</h4>
Write-ahead log failures per second: corruptions, failed writes, and
failed checkpoints or truncations.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.metric_pipeline.wal_errors-tabs" id="infra.alloy.metric_pipeline.wal_errors-tab-0" checked>
  <label for="infra.alloy.metric_pipeline.wal_errors-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    prometheus_remote_write_wal_corruptions_total{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    prometheus_tsdb_wal_writes_failed_total{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    prometheus_remote_write_wal_checkpoint_creations_failed_total{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    prometheus_tsdb_wal_truncations_failed_total{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.metric_pipeline.otel_sent">infra.alloy.metric_pipeline.otel_sent
  <a class="anchor" href="#infra.alloy.metric_pipeline.otel_sent">#</a>
</h4>
Metric points and log records per second each OpenTelemetry exporter
delivered.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.metric_pipeline.otel_sent-tabs" id="infra.alloy.metric_pipeline.otel_sent-tab-0" checked>
  <label for="infra.alloy.metric_pipeline.otel_sent-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>component_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    otelcol_exporter_sent_metric_points_total{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>component_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    otelcol_exporter_sent_log_records_total{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.metric_pipeline.otel_failed">infra.alloy.metric_pipeline.otel_failed
  <a class="anchor" href="#infra.alloy.metric_pipeline.otel_failed">#</a>
</h4>
Metric points and log records per second each OpenTelemetry exporter
failed to deliver.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.metric_pipeline.otel_failed-tabs" id="infra.alloy.metric_pipeline.otel_failed-tab-0" checked>
  <label for="infra.alloy.metric_pipeline.otel_failed-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>component_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    otelcol_exporter_send_failed_metric_points_total{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>component_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    otelcol_exporter_send_failed_log_records_total{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.metric_pipeline.otel_queue">infra.alloy.metric_pipeline.otel_queue
  <a class="anchor" href="#infra.alloy.metric_pipeline.otel_queue">#</a>
</h4>
How full each OpenTelemetry exporter&rsquo;s sending queue is, as a fraction
of its capacity.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.metric_pipeline.otel_queue-tabs" id="infra.alloy.metric_pipeline.otel_queue-tab-0" checked>
  <label for="infra.alloy.metric_pipeline.otel_queue-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>component_id, data_type<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  otelcol_exporter_queue_size{
</span></span><span style="display:flex;"><span>    app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>    pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">/</span> otelcol_exporter_queue_capacity{
</span></span><span style="display:flex;"><span>    app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>    pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.metric_pipeline.otel_filtered">infra.alloy.metric_pipeline.otel_filtered
  <a class="anchor" href="#infra.alloy.metric_pipeline.otel_filtered">#</a>
</h4>
Metric points per second each OpenTelemetry filter removed.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.metric_pipeline.otel_filtered-tabs" id="infra.alloy.metric_pipeline.otel_filtered-tab-0" checked>
  <label for="infra.alloy.metric_pipeline.otel_filtered-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>component_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    otelcol_processor_filter_datapoints_filtered_total{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.ingest.log_push.lines">infra.alloy.ingest.log_push.lines
  <a class="anchor" href="#infra.alloy.ingest.log_push.lines">#</a>
</h4>
Log lines per second the gateway accepted on its log-push listener.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.ingest.log_push.lines-tabs" id="infra.alloy.ingest.log_push.lines-tab-0" checked>
  <label for="infra.alloy.ingest.log_push.lines-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    loki_source_api_entries_written{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.ingest.log_push.requests">infra.alloy.ingest.log_push.requests
  <a class="anchor" href="#infra.alloy.ingest.log_push.requests">#</a>
</h4>
Log push requests per second the gateway received, split by the status
it returned.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.ingest.log_push.requests-tabs" id="infra.alloy.ingest.log_push.requests-tab-0" checked>
  <label for="infra.alloy.ingest.log_push.requests-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>route, status_code<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    loki_source_api_request_duration_seconds_count{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.ingest.log_push.latency">infra.alloy.ingest.log_push.latency
  <a class="anchor" href="#infra.alloy.ingest.log_push.latency">#</a>
</h4>
How long the gateway takes to accept a log push, at the 99th percentile.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.ingest.log_push.latency-tabs" id="infra.alloy.ingest.log_push.latency-tab-0" checked>
  <label for="infra.alloy.ingest.log_push.latency-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#ae81ff">0.99</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>      loki_source_api_request_duration_seconds_bucket{
</span></span><span style="display:flex;"><span>        app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>        namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>        pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>      }
</span></span><span style="display:flex;"><span>      <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.ingest.remote_write.received">infra.alloy.ingest.remote_write.received
  <a class="anchor" href="#infra.alloy.ingest.remote_write.received">#</a>
</h4>
Samples per second the gateway accepted over Prometheus remote write.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.ingest.remote_write.received-tabs" id="infra.alloy.ingest.remote_write.received-tab-0" checked>
  <label for="infra.alloy.ingest.remote_write.received-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    prometheus_forwarded_samples_total{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;,
</span></span><span style="display:flex;"><span>      component_id<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">prometheus\\.receive_http\\..*</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.ingest.remote_write.samples">infra.alloy.ingest.remote_write.samples
  <a class="anchor" href="#infra.alloy.ingest.remote_write.samples">#</a>
</h4>
Samples per second the gateway accepted over remote write, beside the
samples it dropped for carrying invalid labels.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.ingest.remote_write.samples-tabs" id="infra.alloy.ingest.remote_write.samples-tab-0" checked>
  <label for="infra.alloy.ingest.remote_write.samples-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    prometheus_forwarded_samples_total{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;,
</span></span><span style="display:flex;"><span>      component_id<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">prometheus\\.receive_http\\..*</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    prometheus_api_remote_write_invalid_labels_samples_total{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.ingest.remote_write.requests">infra.alloy.ingest.remote_write.requests
  <a class="anchor" href="#infra.alloy.ingest.remote_write.requests">#</a>
</h4>
Remote-write requests per second the gateway answered, split by status
code.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.ingest.remote_write.requests-tabs" id="infra.alloy.ingest.remote_write.requests-tab-0" checked>
  <label for="infra.alloy.ingest.remote_write.requests-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>route, status_code<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    prometheus_receive_http_request_duration_seconds_count{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.ingest.remote_write.latency">infra.alloy.ingest.remote_write.latency
  <a class="anchor" href="#infra.alloy.ingest.remote_write.latency">#</a>
</h4>
How long the gateway takes to answer a remote-write request, at the
99th percentile.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.ingest.remote_write.latency-tabs" id="infra.alloy.ingest.remote_write.latency-tab-0" checked>
  <label for="infra.alloy.ingest.remote_write.latency-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#ae81ff">0.99</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>      prometheus_receive_http_request_duration_seconds_bucket{
</span></span><span style="display:flex;"><span>        app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>        namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>        pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>      }
</span></span><span style="display:flex;"><span>      <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.ingest.remote_write.senders">infra.alloy.ingest.remote_write.senders
  <a class="anchor" href="#infra.alloy.ingest.remote_write.senders">#</a>
</h4>
What each remote-write sender pointed at the gateway reports about its
own queue: samples sent, failed, and retried.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.ingest.remote_write.senders-tabs" id="infra.alloy.ingest.remote_write.senders-tab-0" checked>
  <label for="infra.alloy.ingest.remote_write.senders-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>job<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    prometheus_remote_storage_samples_total{
</span></span><span style="display:flex;"><span>      url<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">.*alloy-gateway.*</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>job<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    prometheus_remote_storage_samples_failed_total{
</span></span><span style="display:flex;"><span>      url<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">.*alloy-gateway.*</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>job<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    prometheus_remote_storage_samples_retried_total{
</span></span><span style="display:flex;"><span>      url<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">.*alloy-gateway.*</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.ingest.otlp.metrics">infra.alloy.ingest.otlp.metrics
  <a class="anchor" href="#infra.alloy.ingest.otlp.metrics">#</a>
</h4>
Metric points per second the gateway accepted and refused over OTLP.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.ingest.otlp.metrics-tabs" id="infra.alloy.ingest.otlp.metrics-tab-0" checked>
  <label for="infra.alloy.ingest.otlp.metrics-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    otelcol_receiver_accepted_metric_points_total{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    otelcol_receiver_refused_metric_points_total{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.ingest.otlp.logs">infra.alloy.ingest.otlp.logs
  <a class="anchor" href="#infra.alloy.ingest.otlp.logs">#</a>
</h4>
Log records per second the gateway accepted and refused over OTLP.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.ingest.otlp.logs-tabs" id="infra.alloy.ingest.otlp.logs-tab-0" checked>
  <label for="infra.alloy.ingest.otlp.logs-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    otelcol_receiver_accepted_log_records_total{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    otelcol_receiver_refused_log_records_total{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.ingest.tls_rejections">infra.alloy.ingest.tls_rejections
  <a class="anchor" href="#infra.alloy.ingest.tls_rejections">#</a>
</h4>
TLS handshakes per minute that a collector&rsquo;s listener refused, usually
because the client presented a certificate the listener does not trust.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.ingest.tls_rejections-tabs" id="infra.alloy.ingest.tls_rejections-tab-0" checked>
  <label for="infra.alloy.ingest.tls_rejections-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.components.not_healthy">infra.alloy.components.not_healthy
  <a class="anchor" href="#infra.alloy.components.not_healthy">#</a>
</h4>
Components per collector in any state other than healthy.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.components.not_healthy-tabs" id="infra.alloy.components.not_healthy-tab-0" checked>
  <label for="infra.alloy.components.not_healthy-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>pod, health_type<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  alloy_component_controller_running_components{
</span></span><span style="display:flex;"><span>    app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>    pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;,
</span></span><span style="display:flex;"><span>    health_type<span style="color:#f92672">!=</span>&#34;<span style="color:#e6db74">healthy</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">or</span> <span style="color:#66d9ef">on</span> <span style="color:#f92672">(</span>pod<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#ae81ff">0</span> <span style="color:#f92672">*</span> <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  alloy_component_controller_running_components{
</span></span><span style="display:flex;"><span>    app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>    pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.components.running">infra.alloy.components.running
  <a class="anchor" href="#infra.alloy.components.running">#</a>
</h4>
Components each collector is running.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.components.running-tabs" id="infra.alloy.components.running-tab-0" checked>
  <label for="infra.alloy.components.running-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  alloy_component_controller_running_components{
</span></span><span style="display:flex;"><span>    app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>    pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.components.config_by_pod">infra.alloy.components.config_by_pod
  <a class="anchor" href="#infra.alloy.components.config_by_pod">#</a>
</h4>
The configuration each collector is running, by content hash, whether
its last load succeeded, and how long the collector has been up.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.components.config_by_pod-tabs" id="infra.alloy.components.config_by_pod-tab-0" checked>
  <label for="infra.alloy.components.config_by_pod-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>app, pod, sha256<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  alloy_config_hash{
</span></span><span style="display:flex;"><span>    app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>    pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">*</span> <span style="color:#66d9ef">on</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#66d9ef">group_left</span> <span style="color:#f92672">()</span>
</span></span><span style="display:flex;"><span>  alloy_config_last_load_successful{
</span></span><span style="display:flex;"><span>    app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>    pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>app, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">time</span><span style="color:#f92672">()</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">-</span> alloy_resources_process_start_time_seconds{
</span></span><span style="display:flex;"><span>    app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>    pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.components.distinct_configs">infra.alloy.components.distinct_configs
  <a class="anchor" href="#infra.alloy.components.distinct_configs">#</a>
</h4>
Distinct configurations running per role.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.components.distinct_configs-tabs" id="infra.alloy.components.distinct_configs-tab-0" checked>
  <label for="infra.alloy.components.distinct_configs-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">count</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>app<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">count</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>app, sha256<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    alloy_config_hash{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.components.evaluation_rate">infra.alloy.components.evaluation_rate
  <a class="anchor" href="#infra.alloy.components.evaluation_rate">#</a>
</h4>
Component evaluations per second per role.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.components.evaluation_rate-tabs" id="infra.alloy.components.evaluation_rate-tab-0" checked>
  <label for="infra.alloy.components.evaluation_rate-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>app<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    alloy_component_evaluation_seconds_count{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.components.evaluation_latency">infra.alloy.components.evaluation_latency
  <a class="anchor" href="#infra.alloy.components.evaluation_latency">#</a>
</h4>
How long a component evaluation takes, at the 99th percentile, per role.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.components.evaluation_latency-tabs" id="infra.alloy.components.evaluation_latency-tab-0" checked>
  <label for="infra.alloy.components.evaluation_latency-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#ae81ff">0.99</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le, app<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>      alloy_component_evaluation_seconds_bucket{
</span></span><span style="display:flex;"><span>        app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>        namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>        pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>      }
</span></span><span style="display:flex;"><span>      <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.components.slow">infra.alloy.components.slow
  <a class="anchor" href="#infra.alloy.components.slow">#</a>
</h4>
Time per second spent in component evaluations that Alloy classed as
slow, per component.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.components.slow-tabs" id="infra.alloy.components.slow-tab-0" checked>
  <label for="infra.alloy.components.slow-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>app, component_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    alloy_component_evaluation_slow_seconds{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">or</span> <span style="color:#66d9ef">on</span> <span style="color:#f92672">(</span>app<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#ae81ff">0</span> <span style="color:#f92672">*</span> <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>app<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    alloy_component_evaluation_seconds_count{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.components.queue">infra.alloy.components.queue
  <a class="anchor" href="#infra.alloy.components.queue">#</a>
</h4>
Component evaluations waiting to run, per collector.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.components.queue-tabs" id="infra.alloy.components.queue-tab-0" checked>
  <label for="infra.alloy.components.queue-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  alloy_component_evaluation_queue_size{
</span></span><span style="display:flex;"><span>    app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>    pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.cluster.peers">infra.alloy.cluster.peers
  <a class="anchor" href="#infra.alloy.cluster.peers">#</a>
</h4>
How many cluster members each gateway replica can see, beside how many
replicas are running.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.cluster.peers-tabs" id="infra.alloy.cluster.peers-tab-0" checked>
  <label for="infra.alloy.cluster.peers-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  cluster_node_peers{
</span></span><span style="display:flex;"><span>    app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>    pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">count</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  cluster_node_info{
</span></span><span style="display:flex;"><span>    app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>    pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.cluster.health_score">infra.alloy.cluster.health_score
  <a class="anchor" href="#infra.alloy.cluster.health_score">#</a>
</h4>
Each gateway replica&rsquo;s gossip health score, where zero is healthy.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.cluster.health_score-tabs" id="infra.alloy.cluster.health_score-tab-0" checked>
  <label for="infra.alloy.cluster.health_score-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  cluster_node_gossip_health_score{
</span></span><span style="display:flex;"><span>    app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>    pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.cluster.targets">infra.alloy.cluster.targets
  <a class="anchor" href="#infra.alloy.cluster.targets">#</a>
</h4>
Metrics targets each gateway replica is scraping.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.cluster.targets-tabs" id="infra.alloy.cluster.targets-tab-0" checked>
  <label for="infra.alloy.cluster.targets-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  prometheus_target_scrape_pool_targets{
</span></span><span style="display:flex;"><span>    app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>    pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.cluster.transport_failures">infra.alloy.cluster.transport_failures
  <a class="anchor" href="#infra.alloy.cluster.transport_failures">#</a>
</h4>
Gossip messages per second each gateway replica failed to send to its
peers.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.cluster.transport_failures-tabs" id="infra.alloy.cluster.transport_failures-tab-0" checked>
  <label for="infra.alloy.cluster.transport_failures-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    cluster_transport_tx_packets_failed_total{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">+</span> <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    cluster_transport_stream_tx_packets_failed_total{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.cluster.members">infra.alloy.cluster.members
  <a class="anchor" href="#infra.alloy.cluster.members">#</a>
</h4>
Each gateway replica&rsquo;s own cluster state, and whether it considers the
cluster ready for traffic.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.cluster.members-tabs" id="infra.alloy.cluster.members-tab-0" checked>
  <label for="infra.alloy.cluster.members-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">min</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>pod, state<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  cluster_ready_for_traffic{
</span></span><span style="display:flex;"><span>    app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>    pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">*</span> <span style="color:#66d9ef">on</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#66d9ef">group_left</span> <span style="color:#f92672">(</span>state<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  cluster_node_info{
</span></span><span style="display:flex;"><span>    app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>    pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.resources.cpu">infra.alloy.resources.cpu
  <a class="anchor" href="#infra.alloy.resources.cpu">#</a>
</h4>
CPU each collector is using, as a fraction of its CPU limit.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.resources.cpu-tabs" id="infra.alloy.resources.cpu-tab-0" checked>
  <label for="infra.alloy.resources.cpu-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    container_cpu_usage_seconds_total{
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      container<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">alloy</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">/</span> <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  kube_pod_container_resource_limits{
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>    container<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">alloy</span>&#34;,
</span></span><span style="display:flex;"><span>    resource<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">cpu</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">and</span> <span style="color:#66d9ef">on</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>up{
</span></span><span style="display:flex;"><span>  app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>  namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>  pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.resources.throttling">infra.alloy.resources.throttling
  <a class="anchor" href="#infra.alloy.resources.throttling">#</a>
</h4>
The fraction of scheduling periods in which each collector was held
back by its CPU limit.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.resources.throttling-tabs" id="infra.alloy.resources.throttling-tab-0" checked>
  <label for="infra.alloy.resources.throttling-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    container_cpu_cfs_throttled_periods_total{
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      container<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">alloy</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">/</span> <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    container_cpu_cfs_periods_total{
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      container<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">alloy</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">and</span> <span style="color:#66d9ef">on</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>up{
</span></span><span style="display:flex;"><span>  app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>  namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>  pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.resources.memory">infra.alloy.resources.memory
  <a class="anchor" href="#infra.alloy.resources.memory">#</a>
</h4>
Memory each collector is using, as a fraction of its memory limit.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.resources.memory-tabs" id="infra.alloy.resources.memory-tab-0" checked>
  <label for="infra.alloy.resources.memory-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  container_memory_working_set_bytes{
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>    container<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">alloy</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">/</span> <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  kube_pod_container_resource_limits{
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>    container<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">alloy</span>&#34;,
</span></span><span style="display:flex;"><span>    resource<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">memory</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">and</span> <span style="color:#66d9ef">on</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>up{
</span></span><span style="display:flex;"><span>  app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>  namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>  pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.resources.gomemlimit">infra.alloy.resources.gomemlimit
  <a class="anchor" href="#infra.alloy.resources.gomemlimit">#</a>
</h4>
Memory the Go runtime holds in each collector, as a fraction of the
soft limit <code>GOMEMLIMIT</code> sets for it.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.resources.gomemlimit-tabs" id="infra.alloy.resources.gomemlimit-tab-0" checked>
  <label for="infra.alloy.resources.gomemlimit-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    go_memstats_sys_bytes{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">-</span> go_memstats_heap_released_bytes{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">/</span> go_gc_gomemlimit_bytes{
</span></span><span style="display:flex;"><span>    app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>    pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.resources.memory_limiter">infra.alloy.resources.memory_limiter
  <a class="anchor" href="#infra.alloy.resources.memory_limiter">#</a>
</h4>
Metric points per second the gateway&rsquo;s memory limiter refused.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.resources.memory_limiter-tabs" id="infra.alloy.resources.memory_limiter-tab-0" checked>
  <label for="infra.alloy.resources.memory_limiter-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    otelcol_processor_memory_limiter_refused_metric_points_total{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">or</span>
</span></span><span style="display:flex;"><span><span style="color:#ae81ff">0</span> <span style="color:#f92672">*</span> <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    otelcol_processor_memory_limiter_accepted_metric_points_total{
</span></span><span style="display:flex;"><span>      app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.resources.goroutines">infra.alloy.resources.goroutines
  <a class="anchor" href="#infra.alloy.resources.goroutines">#</a>
</h4>
Concurrent goroutines in each collector.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.resources.goroutines-tabs" id="infra.alloy.resources.goroutines-tab-0" checked>
  <label for="infra.alloy.resources.goroutines-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  go_goroutines{
</span></span><span style="display:flex;"><span>    app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>    pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.resources.file_descriptors">infra.alloy.resources.file_descriptors
  <a class="anchor" href="#infra.alloy.resources.file_descriptors">#</a>
</h4>
Open file descriptors in each collector, as a fraction of its limit.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.resources.file_descriptors-tabs" id="infra.alloy.resources.file_descriptors-tab-0" checked>
  <label for="infra.alloy.resources.file_descriptors-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  process_open_fds{
</span></span><span style="display:flex;"><span>    app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>    pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">/</span> process_max_fds{
</span></span><span style="display:flex;"><span>    app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>    pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.resources.terminations">infra.alloy.resources.terminations
  <a class="anchor" href="#infra.alloy.resources.terminations">#</a>
</h4>
Why each collector&rsquo;s container last stopped, for those that have.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.resources.terminations-tabs" id="infra.alloy.resources.terminations-tab-0" checked>
  <label for="infra.alloy.resources.terminations-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod, reason<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  kube_pod_container_status_last_terminated_reason{
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>    container<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">alloy</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">==</span> <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">and</span> <span style="color:#66d9ef">on</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>up{
</span></span><span style="display:flex;"><span>  app<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyRole</span>&#34;,
</span></span><span style="display:flex;"><span>  namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>  pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$alloyPod</span>&#34;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.events.rate.by_reason">infra.alloy.events.rate.by_reason
  <a class="anchor" href="#infra.alloy.events.rate.by_reason">#</a>
</h4>
Kubernetes events about the collectors&rsquo; pods, DaemonSet, Deployment and
autoscaler, and about the configuration-validation Jobs that run before
each install and upgrade, per reason.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.events.rate.by_reason-tabs" id="infra.alloy.events.rate.by_reason-tab-0" checked>
  <label for="infra.alloy.events.rate.by_reason-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.events.rate.by_kind">infra.alloy.events.rate.by_kind
  <a class="anchor" href="#infra.alloy.events.rate.by_kind">#</a>
</h4>
Kubernetes events about the collectors, per kind of object they
concern.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.events.rate.by_kind-tabs" id="infra.alloy.events.rate.by_kind-tab-0" checked>
  <label for="infra.alloy.events.rate.by_kind-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.events.warnings">infra.alloy.events.warnings
  <a class="anchor" href="#infra.alloy.events.warnings">#</a>
</h4>
Kubernetes warning events about the collectors, newest first.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.events.warnings-tabs" id="infra.alloy.events.warnings-tab-0" checked>
  <label for="infra.alloy.events.warnings-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.events.stream">infra.alloy.events.stream
  <a class="anchor" href="#infra.alloy.events.stream">#</a>
</h4>
Every Kubernetes event about the collectors, newest first.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.events.stream-tabs" id="infra.alloy.events.stream-tab-0" checked>
  <label for="infra.alloy.events.stream-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.logs.stream">infra.alloy.logs.stream
  <a class="anchor" href="#infra.alloy.logs.stream">#</a>
</h4>
The collectors&rsquo; own log feed, newest first, for the selected roles and
levels.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.logs.stream-tabs" id="infra.alloy.logs.stream-tab-0" checked>
  <label for="infra.alloy.logs.stream-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.logs.warnings.stream">infra.alloy.logs.warnings.stream
  <a class="anchor" href="#infra.alloy.logs.warnings.stream">#</a>
</h4>
Warning-and-worse lines from the collectors, newest first.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.logs.warnings.stream-tabs" id="infra.alloy.logs.warnings.stream-tab-0" checked>
  <label for="infra.alloy.logs.warnings.stream-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.logs.rate.by_role">infra.alloy.logs.rate.by_role
  <a class="anchor" href="#infra.alloy.logs.rate.by_role">#</a>
</h4>
The collectors&rsquo; own log lines per second, split by role and level.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.logs.rate.by_role-tabs" id="infra.alloy.logs.rate.by_role-tab-0" checked>
  <label for="infra.alloy.logs.rate.by_role-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.logs.errors.by_component">infra.alloy.logs.errors.by_component
  <a class="anchor" href="#infra.alloy.logs.errors.by_component">#</a>
</h4>
Warning-and-worse lines per minute from the collectors, split by the
pipeline component that logged them.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.logs.errors.by_component-tabs" id="infra.alloy.logs.errors.by_component-tab-0" checked>
  <label for="infra.alloy.logs.errors.by_component-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="infra.alloy.logs.warnings.rate">infra.alloy.logs.warnings.rate
  <a class="anchor" href="#infra.alloy.logs.warnings.rate">#</a>
</h4>
Warning-and-worse lines per minute from the selected collectors.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.alloy.logs.warnings.rate-tabs" id="infra.alloy.logs.warnings.rate-tab-0" checked>
  <label for="infra.alloy.logs.warnings.rate-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>

## infra-autoscaling

<p>How the cluster&rsquo;s nodes follow its pods, whatever does the following.</p>
<p>Three things add nodes to a Materialize deployment, depending on the cloud:
Karpenter on EKS, and the managed cluster autoscaler on GKE and AKS. They
expose nothing in common, so everything here is read from what every
cluster has instead:</p>
<ul>
<li><strong>kube-state-metrics</strong> says how many pods are waiting for a node, how
many nodes there are, and how full each is to the scheduler.</li>
<li><strong>Kubernetes events</strong> say what each autoscaler decided: Karpenter&rsquo;s
<code>Nominated</code> and <code>Launched</code>, the cluster autoscaler&rsquo;s <code>TriggeredScaleUp</code>
and <code>NotTriggerScaleUp</code>, the scheduler&rsquo;s <code>FailedScheduling</code>, and the node
lifecycle&rsquo;s <code>RegisteredNode</code> and <code>DeletingNode</code>.</li>
<li><strong>The cloud provider pull</strong> says whether the cloud could supply the nodes
asked for: EC2 status checks and node-group sizes, Compute Engine quota,
and on AKS the managed autoscaler&rsquo;s own gauges. It is opt-in, and its rows
render only where a provider is pulled.</li>
</ul>
<p>Karpenter&rsquo;s own metrics, which say far more on EKS, are the Karpenter
dashboard&rsquo;s (<code>infra-karpenter.yaml</code>).</p>
<h2 id="node-pools">Node pools<a class="anchor" href="#node-pools">#</a></h2>
<p><code>%%{nodePools}</code> gives every node its pool, instance type and zone, from
<code>kube_node_labels</code>. The pool is whichever label the node&rsquo;s provisioner
sets: a Karpenter NodePool, an EKS managed node group, a GKE node pool or an
AKS agent pool. kube-state-metrics publishes those labels only because the
chart&rsquo;s <code>metricLabelsAllowlist</code> names them, and publishes no
<code>kube_node_labels</code> at all without it.</p>
<h2 id="deduplication">Deduplication<a class="anchor" href="#deduplication">#</a></h2>
<p>Every kube-state-metrics family here is read through <code>max by</code> its own
identity first, because each extra kube-state-metrics replica reports every
object again. The same shape <code>infra-nodes.yaml</code> uses.</p>
<h2 id="provider-lookback">Provider lookback<a class="anchor" href="#provider-lookback">#</a></h2>
<p>Provider samples arrive with the pull, every five minutes by default, so
they are read through <code>last_over_time(...[15m])</code> and never rated over
<code>$__rate_interval</code>; <code>infra-cloud.yaml</code> explains why.</p>

<h4 id="infra.autoscaling.pods.pending">infra.autoscaling.pods.pending
  <a class="anchor" href="#infra.autoscaling.pods.pending">#</a>
</h4>
Pods in the Pending phase right now, across the cluster.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.autoscaling.pods.pending-tabs" id="infra.autoscaling.pods.pending-tab-0" checked>
  <label for="infra.autoscaling.pods.pending-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_pod_status_phase{phase<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">Pending</span>&#34;}<span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.autoscaling.pods.unscheduled">infra.autoscaling.pods.unscheduled
  <a class="anchor" href="#infra.autoscaling.pods.unscheduled">#</a>
</h4>
Pods the scheduler has not placed on any node, because no node has
room for them or satisfies their constraints.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.autoscaling.pods.unscheduled-tabs" id="infra.autoscaling.pods.unscheduled-tab-0" checked>
  <label for="infra.autoscaling.pods.unscheduled-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_pod_status_scheduled{condition<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">false</span>&#34;}<span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.autoscaling.nodes.count">infra.autoscaling.nodes.count
  <a class="anchor" href="#infra.autoscaling.nodes.count">#</a>
</h4>
Nodes in the cluster.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.autoscaling.nodes.count-tabs" id="infra.autoscaling.nodes.count-tab-0" checked>
  <label for="infra.autoscaling.nodes.count-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">count</span><span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_node_info<span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.autoscaling.nodes.not_ready">infra.autoscaling.nodes.not_ready
  <a class="anchor" href="#infra.autoscaling.nodes.not_ready">#</a>
</h4>
Nodes whose kubelet is not reporting Ready.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.autoscaling.nodes.not_ready-tabs" id="infra.autoscaling.nodes.not_ready-tab-0" checked>
  <label for="infra.autoscaling.nodes.not_ready-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#ae81ff">1</span> <span style="color:#f92672">-</span> <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_node_status_condition{condition<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">Ready</span>&#34;, status<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">true</span>&#34;}<span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.autoscaling.nodes.added">infra.autoscaling.nodes.added
  <a class="anchor" href="#infra.autoscaling.nodes.added">#</a>
</h4>
Nodes in the cluster now that were not at the start of the selected
time range.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.autoscaling.nodes.added-tabs" id="infra.autoscaling.nodes.added-tab-0" checked>
  <label for="infra.autoscaling.nodes.added-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">count</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_node_info<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">unless</span> <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_node_info <span style="color:#66d9ef">offset</span> <span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">rangeWindow</span>}<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">or</span> <span style="color:#ae81ff">0</span> <span style="color:#f92672">*</span> <span style="color:#66d9ef">count</span><span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_node_info<span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.autoscaling.nodes.removed">infra.autoscaling.nodes.removed
  <a class="anchor" href="#infra.autoscaling.nodes.removed">#</a>
</h4>
Nodes that left the cluster in the selected time range.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.autoscaling.nodes.removed-tabs" id="infra.autoscaling.nodes.removed-tab-0" checked>
  <label for="infra.autoscaling.nodes.removed-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="infra.autoscaling.hpa.at_max">infra.autoscaling.hpa.at_max
  <a class="anchor" href="#infra.autoscaling.hpa.at_max">#</a>
</h4>
Workloads whose HorizontalPodAutoscaler is running as many replicas
as it is allowed to.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.autoscaling.hpa.at_max-tabs" id="infra.autoscaling.hpa.at_max-tab-0" checked>
  <label for="infra.autoscaling.hpa.at_max-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">count</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, horizontalpodautoscaler<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_horizontalpodautoscaler_status_current_replicas<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">&gt;=</span> <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, horizontalpodautoscaler<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_horizontalpodautoscaler_spec_max_replicas<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">or</span> <span style="color:#ae81ff">0</span> <span style="color:#f92672">*</span> <span style="color:#66d9ef">count</span><span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, horizontalpodautoscaler<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_horizontalpodautoscaler_spec_max_replicas<span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.autoscaling.pods.unscheduled_by_namespace">infra.autoscaling.pods.unscheduled_by_namespace
  <a class="anchor" href="#infra.autoscaling.pods.unscheduled_by_namespace">#</a>
</h4>
Pods waiting for a node, by namespace.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.autoscaling.pods.unscheduled_by_namespace-tabs" id="infra.autoscaling.pods.unscheduled_by_namespace-tab-0" checked>
  <label for="infra.autoscaling.pods.unscheduled_by_namespace-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_pod_status_scheduled{condition<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">false</span>&#34;}<span style="color:#f92672">))</span> <span style="color:#f92672">&gt;</span> <span style="color:#ae81ff">0</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.autoscaling.pods.pending_by_namespace">infra.autoscaling.pods.pending_by_namespace
  <a class="anchor" href="#infra.autoscaling.pods.pending_by_namespace">#</a>
</h4>
Pods in the Pending phase, by namespace.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.autoscaling.pods.pending_by_namespace-tabs" id="infra.autoscaling.pods.pending_by_namespace-tab-0" checked>
  <label for="infra.autoscaling.pods.pending_by_namespace-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_pod_status_phase{phase<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">Pending</span>&#34;}<span style="color:#f92672">))</span> <span style="color:#f92672">&gt;</span> <span style="color:#ae81ff">0</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.autoscaling.nodes.by_pool">infra.autoscaling.nodes.by_pool
  <a class="anchor" href="#infra.autoscaling.nodes.by_pool">#</a>
</h4>
Nodes in each node pool over time.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.autoscaling.nodes.by_pool-tabs" id="infra.autoscaling.nodes.by_pool-tab-0" checked>
  <label for="infra.autoscaling.nodes.by_pool-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">count</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>pool<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">nodePools</span>}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.autoscaling.nodes.by_instance_type">infra.autoscaling.nodes.by_instance_type
  <a class="anchor" href="#infra.autoscaling.nodes.by_instance_type">#</a>
</h4>
Nodes of each instance type over time.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.autoscaling.nodes.by_instance_type-tabs" id="infra.autoscaling.nodes.by_instance_type-tab-0" checked>
  <label for="infra.autoscaling.nodes.by_instance_type-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">count</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance_type<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">nodePools</span>}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.autoscaling.nodes.by_zone">infra.autoscaling.nodes.by_zone
  <a class="anchor" href="#infra.autoscaling.nodes.by_zone">#</a>
</h4>
Nodes in each availability zone over time.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.autoscaling.nodes.by_zone-tabs" id="infra.autoscaling.nodes.by_zone-tab-0" checked>
  <label for="infra.autoscaling.nodes.by_zone-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">count</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>zone<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">nodePools</span>}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.autoscaling.capacity.requested">infra.autoscaling.capacity.requested
  <a class="anchor" href="#infra.autoscaling.capacity.requested">#</a>
</h4>
How much of the cluster&rsquo;s allocatable CPU and memory is promised to
running pods through their requests.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.autoscaling.capacity.requested-tabs" id="infra.autoscaling.capacity.requested-tab-0" checked>
  <label for="infra.autoscaling.capacity.requested-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod, container, node<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_pod_container_resource_requests{resource<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">cpu</span>&#34;, node<span style="color:#f92672">!=</span>&#34;&#34;}<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">unless</span> <span style="color:#66d9ef">on</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_pod_status_phase{phase<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">Succeeded|Failed</span>&#34;}<span style="color:#f92672">)</span> <span style="color:#f92672">==</span> <span style="color:#ae81ff">1</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">/</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_node_status_allocatable{resource<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">cpu</span>&#34;}<span style="color:#f92672">))</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod, container, node<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_pod_container_resource_requests{resource<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">memory</span>&#34;, node<span style="color:#f92672">!=</span>&#34;&#34;}<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">unless</span> <span style="color:#66d9ef">on</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_pod_status_phase{phase<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">Succeeded|Failed</span>&#34;}<span style="color:#f92672">)</span> <span style="color:#f92672">==</span> <span style="color:#ae81ff">1</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">/</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_node_status_allocatable{resource<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">memory</span>&#34;}<span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.autoscaling.pools.cpu_requested">infra.autoscaling.pools.cpu_requested
  <a class="anchor" href="#infra.autoscaling.pools.cpu_requested">#</a>
</h4>
The share of each node pool&rsquo;s allocatable CPU promised to running pods.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.autoscaling.pools.cpu_requested-tabs" id="infra.autoscaling.pools.cpu_requested-tab-0" checked>
  <label for="infra.autoscaling.pools.cpu_requested-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>pool<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod, container, node<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_pod_container_resource_requests{resource<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">cpu</span>&#34;, node<span style="color:#f92672">!=</span>&#34;&#34;}<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">unless</span> <span style="color:#66d9ef">on</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_pod_status_phase{phase<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">Succeeded|Failed</span>&#34;}<span style="color:#f92672">)</span> <span style="color:#f92672">==</span> <span style="color:#ae81ff">1</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">*</span> <span style="color:#66d9ef">on</span> <span style="color:#f92672">(</span>node<span style="color:#f92672">)</span> <span style="color:#66d9ef">group_left</span> <span style="color:#f92672">(</span>pool<span style="color:#f92672">)</span> <span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">nodePools</span>}
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">/</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>pool<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_node_status_allocatable{resource<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">cpu</span>&#34;}<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">*</span> <span style="color:#66d9ef">on</span> <span style="color:#f92672">(</span>node<span style="color:#f92672">)</span> <span style="color:#66d9ef">group_left</span> <span style="color:#f92672">(</span>pool<span style="color:#f92672">)</span> <span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">nodePools</span>}
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.autoscaling.pools.memory_requested">infra.autoscaling.pools.memory_requested
  <a class="anchor" href="#infra.autoscaling.pools.memory_requested">#</a>
</h4>
The share of each node pool&rsquo;s allocatable memory promised to running
pods.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.autoscaling.pools.memory_requested-tabs" id="infra.autoscaling.pools.memory_requested-tab-0" checked>
  <label for="infra.autoscaling.pools.memory_requested-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>pool<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod, container, node<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_pod_container_resource_requests{resource<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">memory</span>&#34;, node<span style="color:#f92672">!=</span>&#34;&#34;}<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">unless</span> <span style="color:#66d9ef">on</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_pod_status_phase{phase<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">Succeeded|Failed</span>&#34;}<span style="color:#f92672">)</span> <span style="color:#f92672">==</span> <span style="color:#ae81ff">1</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">*</span> <span style="color:#66d9ef">on</span> <span style="color:#f92672">(</span>node<span style="color:#f92672">)</span> <span style="color:#66d9ef">group_left</span> <span style="color:#f92672">(</span>pool<span style="color:#f92672">)</span> <span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">nodePools</span>}
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">/</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>pool<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_node_status_allocatable{resource<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">memory</span>&#34;}<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">*</span> <span style="color:#66d9ef">on</span> <span style="color:#f92672">(</span>node<span style="color:#f92672">)</span> <span style="color:#66d9ef">group_left</span> <span style="color:#f92672">(</span>pool<span style="color:#f92672">)</span> <span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">nodePools</span>}
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.autoscaling.pools.not_ready">infra.autoscaling.pools.not_ready
  <a class="anchor" href="#infra.autoscaling.pools.not_ready">#</a>
</h4>
Nodes not reporting Ready, by node pool.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.autoscaling.pools.not_ready-tabs" id="infra.autoscaling.pools.not_ready-tab-0" checked>
  <label for="infra.autoscaling.pools.not_ready-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>pool<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">(</span><span style="color:#ae81ff">1</span> <span style="color:#f92672">-</span> <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_node_status_condition{condition<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">Ready</span>&#34;, status<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">true</span>&#34;}<span style="color:#f92672">))</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">*</span> <span style="color:#66d9ef">on</span> <span style="color:#f92672">(</span>node<span style="color:#f92672">)</span> <span style="color:#66d9ef">group_left</span> <span style="color:#f92672">(</span>pool<span style="color:#f92672">)</span> <span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">nodePools</span>}
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.autoscaling.pools.cordoned">infra.autoscaling.pools.cordoned
  <a class="anchor" href="#infra.autoscaling.pools.cordoned">#</a>
</h4>
Nodes marked unschedulable, by node pool.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.autoscaling.pools.cordoned-tabs" id="infra.autoscaling.pools.cordoned-tab-0" checked>
  <label for="infra.autoscaling.pools.cordoned-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>pool<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_node_spec_unschedulable<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">*</span> <span style="color:#66d9ef">on</span> <span style="color:#f92672">(</span>node<span style="color:#f92672">)</span> <span style="color:#66d9ef">group_left</span> <span style="color:#f92672">(</span>pool<span style="color:#f92672">)</span> <span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">nodePools</span>}
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.autoscaling.nodes.age">infra.autoscaling.nodes.age
  <a class="anchor" href="#infra.autoscaling.nodes.age">#</a>
</h4>
Every node with its pool, instance type, zone, and how long ago it
joined.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.autoscaling.nodes.age-tabs" id="infra.autoscaling.nodes.age-tab-0" checked>
  <label for="infra.autoscaling.nodes.age-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#f92672">(</span><span style="color:#66d9ef">time</span><span style="color:#f92672">()</span> <span style="color:#f92672">-</span> <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_node_created<span style="color:#f92672">))</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">*</span> <span style="color:#66d9ef">on</span> <span style="color:#f92672">(</span>node<span style="color:#f92672">)</span> <span style="color:#66d9ef">group_left</span> <span style="color:#f92672">(</span>pool, instance_type, zone<span style="color:#f92672">)</span> <span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">nodePools</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.autoscaling.pods.unscheduled_list">infra.autoscaling.pods.unscheduled_list
  <a class="anchor" href="#infra.autoscaling.pods.unscheduled_list">#</a>
</h4>
Each pod waiting for a node, and how long since it was created.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.autoscaling.pods.unscheduled_list-tabs" id="infra.autoscaling.pods.unscheduled_list-tab-0" checked>
  <label for="infra.autoscaling.pods.unscheduled_list-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#f92672">(</span><span style="color:#66d9ef">time</span><span style="color:#f92672">()</span> <span style="color:#f92672">-</span> <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_pod_created<span style="color:#f92672">))</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">and</span> <span style="color:#66d9ef">on</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_pod_status_scheduled{condition<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">false</span>&#34;}<span style="color:#f92672">)</span> <span style="color:#f92672">==</span> <span style="color:#ae81ff">1</span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.autoscaling.events.scheduling_failures">infra.autoscaling.events.scheduling_failures
  <a class="anchor" href="#infra.autoscaling.events.scheduling_failures">#</a>
</h4>
The scheduler&rsquo;s explanation for each pod it could not place, newest
first.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.autoscaling.events.scheduling_failures-tabs" id="infra.autoscaling.events.scheduling_failures-tab-0" checked>
  <label for="infra.autoscaling.events.scheduling_failures-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="infra.autoscaling.events.scale_up_decisions">infra.autoscaling.events.scale_up_decisions
  <a class="anchor" href="#infra.autoscaling.events.scale_up_decisions">#</a>
</h4>
What each autoscaler did about pods waiting for a node, newest first.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.autoscaling.events.scale_up_decisions-tabs" id="infra.autoscaling.events.scale_up_decisions-tab-0" checked>
  <label for="infra.autoscaling.events.scale_up_decisions-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="infra.autoscaling.events.scheduling_failures_rate">infra.autoscaling.events.scheduling_failures_rate
  <a class="anchor" href="#infra.autoscaling.events.scheduling_failures_rate">#</a>
</h4>
Scheduling failures per minute, by namespace.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.autoscaling.events.scheduling_failures_rate-tabs" id="infra.autoscaling.events.scheduling_failures_rate-tab-0" checked>
  <label for="infra.autoscaling.events.scheduling_failures_rate-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="infra.autoscaling.hpa.replicas">infra.autoscaling.hpa.replicas
  <a class="anchor" href="#infra.autoscaling.hpa.replicas">#</a>
</h4>
Every HorizontalPodAutoscaler with its current and desired replicas
and the bounds it scales between.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.autoscaling.hpa.replicas-tabs" id="infra.autoscaling.hpa.replicas-tab-0" checked>
  <label for="infra.autoscaling.hpa.replicas-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, horizontalpodautoscaler<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_horizontalpodautoscaler_status_current_replicas<span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, horizontalpodautoscaler<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_horizontalpodautoscaler_status_desired_replicas<span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, horizontalpodautoscaler<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_horizontalpodautoscaler_spec_min_replicas<span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, horizontalpodautoscaler<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_horizontalpodautoscaler_spec_max_replicas<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.autoscaling.hpa.share_of_max">infra.autoscaling.hpa.share_of_max
  <a class="anchor" href="#infra.autoscaling.hpa.share_of_max">#</a>
</h4>
Each HorizontalPodAutoscaler&rsquo;s replicas as a share of its maximum.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.autoscaling.hpa.share_of_max-tabs" id="infra.autoscaling.hpa.share_of_max-tab-0" checked>
  <label for="infra.autoscaling.hpa.share_of_max-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, horizontalpodautoscaler<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_horizontalpodautoscaler_status_current_replicas<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">/</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, horizontalpodautoscaler<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_horizontalpodautoscaler_spec_max_replicas<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.autoscaling.hpa.unable_to_scale">infra.autoscaling.hpa.unable_to_scale
  <a class="anchor" href="#infra.autoscaling.hpa.unable_to_scale">#</a>
</h4>
HorizontalPodAutoscalers that cannot act, by the condition that
stopped them.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.autoscaling.hpa.unable_to_scale-tabs" id="infra.autoscaling.hpa.unable_to_scale-tab-0" checked>
  <label for="infra.autoscaling.hpa.unable_to_scale-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>condition<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, horizontalpodautoscaler, condition<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    kube_horizontalpodautoscaler_status_condition{condition<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">AbleToScale|ScalingActive</span>&#34;, status<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">false</span>&#34;}
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.autoscaling.events.hpa_rate">infra.autoscaling.events.hpa_rate
  <a class="anchor" href="#infra.autoscaling.events.hpa_rate">#</a>
</h4>
HorizontalPodAutoscaler events per minute, by reason.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.autoscaling.events.hpa_rate-tabs" id="infra.autoscaling.events.hpa_rate-tab-0" checked>
  <label for="infra.autoscaling.events.hpa_rate-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="infra.autoscaling.events.hpa_stream">infra.autoscaling.events.hpa_stream
  <a class="anchor" href="#infra.autoscaling.events.hpa_stream">#</a>
</h4>
HorizontalPodAutoscaler events, newest first.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.autoscaling.events.hpa_stream-tabs" id="infra.autoscaling.events.hpa_stream-tab-0" checked>
  <label for="infra.autoscaling.events.hpa_stream-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="infra.autoscaling.cloud.ec2.status_checks">infra.autoscaling.cloud.ec2.status_checks
  <a class="anchor" href="#infra.autoscaling.cloud.ec2.status_checks">#</a>
</h4>
Cluster nodes failing an EC2 status check, by check.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.autoscaling.cloud.ec2.status_checks-tabs" id="infra.autoscaling.cloud.ec2.status_checks-tab-0" checked>
  <label for="infra.autoscaling.cloud.ec2.status_checks-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>last_over_time<span style="color:#f92672">(</span>aws_ec2_status_check_failed_system_maximum[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">))</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>last_over_time<span style="color:#f92672">(</span>aws_ec2_status_check_failed_instance_maximum[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">))</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>last_over_time<span style="color:#f92672">(</span>aws_ec2_status_check_failed_attached_ebs_maximum[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.autoscaling.cloud.ec2.node_groups">infra.autoscaling.cloud.ec2.node_groups
  <a class="anchor" href="#infra.autoscaling.cloud.ec2.node_groups">#</a>
</h4>
Each EKS managed node group&rsquo;s desired and in-service instances,
against its maximum.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.autoscaling.cloud.ec2.node_groups-tabs" id="infra.autoscaling.cloud.ec2.node_groups-tab-0" checked>
  <label for="infra.autoscaling.cloud.ec2.node_groups-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>tag_eks_nodegroup_name<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>last_over_time<span style="color:#f92672">(</span>aws_autoscaling_group_desired_capacity_average[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">))</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>tag_eks_nodegroup_name<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>last_over_time<span style="color:#f92672">(</span>aws_autoscaling_group_in_service_instances_average[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">))</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>tag_eks_nodegroup_name<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>last_over_time<span style="color:#f92672">(</span>aws_autoscaling_group_max_size_average[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.autoscaling.cloud.ec2.vcpus">infra.autoscaling.cloud.ec2.vcpus
  <a class="anchor" href="#infra.autoscaling.cloud.ec2.vcpus">#</a>
</h4>
On-Demand vCPUs running in the region, for the whole AWS account.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.autoscaling.cloud.ec2.vcpus-tabs" id="infra.autoscaling.cloud.ec2.vcpus-tab-0" checked>
  <label for="infra.autoscaling.cloud.ec2.vcpus-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#f92672">(</span>last_over_time<span style="color:#f92672">(</span>aws_usage_resource_count_maximum{dimension_Resource<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">vCPU</span>&#34;}[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.autoscaling.cloud.gce.cpu_quota">infra.autoscaling.cloud.gce.cpu_quota
  <a class="anchor" href="#infra.autoscaling.cloud.gce.cpu_quota">#</a>
</h4>
CPUs in use against the regional quota, for each machine family.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.autoscaling.cloud.gce.cpu_quota-tabs" id="infra.autoscaling.cloud.gce.cpu_quota-tab-0" checked>
  <label for="infra.autoscaling.cloud.gce.cpu_quota-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>vm_family, location<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>stackdriver_compute_googleapis_com_location_compute_googleapis_com_quota_cpus_per_vm_family_usage{limit_name<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">.*per-project-region</span>&#34;}[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">/</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>vm_family, location<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>stackdriver_compute_googleapis_com_location_compute_googleapis_com_quota_cpus_per_vm_family_limit{limit_name<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">.*per-project-region</span>&#34;}[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.autoscaling.cloud.gce.ssd_quota">infra.autoscaling.cloud.gce.ssd_quota
  <a class="anchor" href="#infra.autoscaling.cloud.gce.ssd_quota">#</a>
</h4>
Local SSD in use against the regional quota, for each machine family.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.autoscaling.cloud.gce.ssd_quota-tabs" id="infra.autoscaling.cloud.gce.ssd_quota-tab-0" checked>
  <label for="infra.autoscaling.cloud.gce.ssd_quota-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>vm_family, location<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>stackdriver_compute_googleapis_com_location_compute_googleapis_com_quota_local_ssd_total_storage_per_vm_family_usage{limit_name<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">.*per-project-region</span>&#34;}[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">/</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>vm_family, location<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>stackdriver_compute_googleapis_com_location_compute_googleapis_com_quota_local_ssd_total_storage_per_vm_family_limit{limit_name<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">.*per-project-region</span>&#34;}[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.autoscaling.cloud.gce.refusals">infra.autoscaling.cloud.gce.refusals
  <a class="anchor" href="#infra.autoscaling.cloud.gce.refusals">#</a>
</h4>
Requests Compute Engine refused for CPU or local SSD quota, per hour.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.autoscaling.cloud.gce.refusals-tabs" id="infra.autoscaling.cloud.gce.refusals-tab-0" checked>
  <label for="infra.autoscaling.cloud.gce.refusals-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>vm_family, location<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">increase</span><span style="color:#f92672">(</span>{__name__<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">stackdriver_compute_googleapis_com_location_compute_googleapis_com_quota_cpus_per_vm_family_exceeded(_total)?</span>&#34;}[<span style="color:#e6db74">1h</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>vm_family, location<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">increase</span><span style="color:#f92672">(</span>{__name__<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">stackdriver_compute_googleapis_com_location_compute_googleapis_com_quota_local_ssd_total_storage_per_vm_family_exceeded(_total)?</span>&#34;}[<span style="color:#e6db74">1h</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.autoscaling.cloud.aks.unschedulable">infra.autoscaling.cloud.aks.unschedulable
  <a class="anchor" href="#infra.autoscaling.cloud.aks.unschedulable">#</a>
</h4>
Pods AKS&rsquo;s cluster autoscaler cannot place on any existing node, the
worst of each five minutes.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.autoscaling.cloud.aks.unschedulable-tabs" id="infra.autoscaling.cloud.aks.unschedulable-tab-0" checked>
  <label for="infra.autoscaling.cloud.aks.unschedulable-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>resourceName<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>azure_microsoft_containerservice_managedclusters_cluster_autoscaler_unschedulable_pods_count_maximum_count[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.autoscaling.cloud.aks.state">infra.autoscaling.cloud.aks.state
  <a class="anchor" href="#infra.autoscaling.cloud.aks.state">#</a>
</h4>
Whether AKS&rsquo;s cluster autoscaler considers the cluster safe to scale,
whether scale-down is paused, and nodes it would remove.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.autoscaling.cloud.aks.state-tabs" id="infra.autoscaling.cloud.aks.state-tab-0" checked>
  <label for="infra.autoscaling.cloud.aks.state-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">min</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>resourceName<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>azure_microsoft_containerservice_managedclusters_cluster_autoscaler_cluster_safe_to_autoscale_minimum_count[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>resourceName<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>azure_microsoft_containerservice_managedclusters_cluster_autoscaler_scale_down_in_cooldown_maximum_count[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>resourceName<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>azure_microsoft_containerservice_managedclusters_cluster_autoscaler_unneeded_nodes_count_maximum_count[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.autoscaling.cloud.aks.vms_down">infra.autoscaling.cloud.aks.vms_down
  <a class="anchor" href="#infra.autoscaling.cloud.aks.vms_down">#</a>
</h4>
Node VMs Azure reports as unavailable, by scale set, at any point in
each five minutes.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.autoscaling.cloud.aks.vms_down-tabs" id="infra.autoscaling.cloud.aks.vms_down-tab-0" checked>
  <label for="infra.autoscaling.cloud.aks.vms_down-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>resourceName<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#ae81ff">1</span> <span style="color:#f92672">-</span> <span style="color:#66d9ef">min</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>resourceName, dimensionVmname<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    last_over_time<span style="color:#f92672">(</span>azure_microsoft_compute_virtualmachinescalesets_vmavailabilitymetric_minimum_count[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.autoscaling.events.rate_by_reason">infra.autoscaling.events.rate_by_reason
  <a class="anchor" href="#infra.autoscaling.events.rate_by_reason">#</a>
</h4>
Node and autoscaler events per minute, by reason.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.autoscaling.events.rate_by_reason-tabs" id="infra.autoscaling.events.rate_by_reason-tab-0" checked>
  <label for="infra.autoscaling.events.rate_by_reason-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="infra.autoscaling.events.warnings">infra.autoscaling.events.warnings
  <a class="anchor" href="#infra.autoscaling.events.warnings">#</a>
</h4>
Warning events from the autoscalers and the node lifecycle.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.autoscaling.events.warnings-tabs" id="infra.autoscaling.events.warnings-tab-0" checked>
  <label for="infra.autoscaling.events.warnings-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="infra.autoscaling.events.stream">infra.autoscaling.events.stream
  <a class="anchor" href="#infra.autoscaling.events.stream">#</a>
</h4>
Every node and autoscaler event, newest first.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.autoscaling.events.stream-tabs" id="infra.autoscaling.events.stream-tab-0" checked>
  <label for="infra.autoscaling.events.stream-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>

## infra-cloud

<p>What the cloud provider publishes about the managed services a Materialize
deployment depends on: the metadata database and the object storage buckets.</p>
<p>These are the families the gateway pulls from CloudWatch, Cloud Monitoring and
Azure Monitor when <code>pipeline.metrics.provider.*</code> is enabled — see
<code>packages/alloy-pipelines/gateway-provider.yaml</code>, whose metric sets are the
ones named here. Each family belongs to exactly one provider, so every query
below that covers all three is a list of one expression per provider, and on
any given install two of them return nothing. That is deliberate: it is
cheaper and more honest than a normalization layer, and it keeps each
provider&rsquo;s own units and resource names visible.</p>
<p>The client&rsquo;s view of the same dependencies — what Materialize experienced —
is <code>materialize-consensus.yaml</code> and <code>materialize-persist.yaml</code>. The external
dependency design doc records why the two are separate dashboards.</p>
<h2 id="units">Units<a class="anchor" href="#units">#</a></h2>
<p>Each provider speaks its own: CloudWatch and Azure Monitor publish percent
as 0–100, Cloud Monitoring publishes the same quantities as 0–1 (its unit
label reads <code>10^2.%</code>). Everything here is converted to 0–1 so a panel can
pin its axis. Transaction-ID consumption is converted to a fraction of the
2^31 wraparound limit, which is what Cloud SQL&rsquo;s own ratio is measured
against.</p>
<h2 id="lag-and-the-lookback-window">Lag and the lookback window<a class="anchor" href="#lag-and-the-lookback-window">#</a></h2>
<p>Provider samples are sparse and old. The pull runs every five minutes by
default; CloudWatch and Azure Monitor samples are stamped at the pull,
Cloud SQL&rsquo;s arrive about three minutes old and GCS&rsquo;s over ten. A default
five-minute lookback would therefore draw gaps, so every expression reads
its series through <code>last_over_time</code>: 15 minutes for the scrape-stamped
providers and Cloud SQL, 30 for GCS. The cost is that a panel goes on
showing a stopped pull&rsquo;s last value for that long. <code>rate()</code> is never used
on a provider counter for the same reason: <code>$__rate_interval</code> is sized
from the datasource&rsquo;s scrape interval, which is far shorter than a pull.</p>
<h2 id="resource-labels">Resource labels<a class="anchor" href="#resource-labels">#</a></h2>
<table>
	<thead>
			<tr>
					<th>Provider</th>
					<th>Database</th>
					<th>Bucket</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>CloudWatch</td>
					<td><code>dimension_DBInstanceIdentifier</code></td>
					<td><code>dimension_BucketName</code></td>
			</tr>
			<tr>
					<td>Cloud Monitoring</td>
					<td><code>database_id</code> (<code>project:instance</code>)</td>
					<td><code>bucket_name</code></td>
			</tr>
			<tr>
					<td>Azure Monitor</td>
					<td><code>resourceName</code></td>
					<td><code>resourceName</code> (the storage account)</td>
			</tr>
	</tbody>
</table>
<p>Azure metric names are the exporter&rsquo;s <code>azure_{type}_{metric}_{aggregation}_{unit}</code>,
lowercased, where the type is the metric namespace when one is set — hence
<code>…_storageaccounts_blobservices_…</code> for the blob families.</p>

<h4 id="infra.cloud.db.cpu">infra.cloud.db.cpu
  <a class="anchor" href="#infra.cloud.db.cpu">#</a>
</h4>
CPU utilization of each metadata database instance, as its cloud
provider measures it.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.cloud.db.cpu-tabs" id="infra.cloud.db.cpu-tab-0" checked>
  <label for="infra.cloud.db.cpu-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>dimension_DBInstanceIdentifier<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>aws_rds_cpuutilization_average[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">/</span> <span style="color:#ae81ff">100</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>database_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>stackdriver_cloudsql_database_cloudsql_googleapis_com_database_cpu_utilization[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>resourceName<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>azure_microsoft_dbforpostgresql_flexibleservers_cpu_percent_average_percent[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">/</span> <span style="color:#ae81ff">100</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.cloud.db.connections">infra.cloud.db.connections
  <a class="anchor" href="#infra.cloud.db.connections">#</a>
</h4>
Connections open on each metadata database instance, beside the number
Materialize holds.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.cloud.db.connections-tabs" id="infra.cloud.db.connections-tab-0" checked>
  <label for="infra.cloud.db.connections-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>dimension_DBInstanceIdentifier<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>aws_rds_database_connections_maximum[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>database_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>stackdriver_cloudsql_database_cloudsql_googleapis_com_database_postgresql_num_backends[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>resourceName<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>azure_microsoft_dbforpostgresql_flexibleservers_active_connections_maximum_count[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>mz_persist_postgres_connpool_size<span style="color:#f92672">)</span> <span style="color:#f92672">+</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>mz_ts_oracle_postgres_connpool_size<span style="color:#f92672">)</span> <span style="color:#f92672">or</span> <span style="color:#66d9ef">vector</span><span style="color:#f92672">(</span><span style="color:#ae81ff">0</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.cloud.db.transaction_ids">infra.cloud.db.transaction_ids
  <a class="anchor" href="#infra.cloud.db.transaction_ids">#</a>
</h4>
How much of PostgreSQL&rsquo;s transaction-ID space each instance has used,
as a fraction of the point at which it stops accepting writes.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.cloud.db.transaction_ids-tabs" id="infra.cloud.db.transaction_ids-tab-0" checked>
  <label for="infra.cloud.db.transaction_ids-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>dimension_DBInstanceIdentifier<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>aws_rds_maximum_used_transaction_ids_maximum[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">/</span> <span style="color:#ae81ff">2147483648</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>database_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>stackdriver_cloudsql_database_cloudsql_googleapis_com_database_postgresql_transaction_id_utilization[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>resourceName<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>azure_microsoft_dbforpostgresql_flexibleservers_maximum_used_transactionids_maximum_count[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">/</span> <span style="color:#ae81ff">2147483648</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.cloud.rds.free_storage">infra.cloud.rds.free_storage
  <a class="anchor" href="#infra.cloud.rds.free_storage">#</a>
</h4>
Free storage on each RDS instance.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.cloud.rds.free_storage-tabs" id="infra.cloud.rds.free_storage-tab-0" checked>
  <label for="infra.cloud.rds.free_storage-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">min</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>dimension_DBInstanceIdentifier<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>aws_rds_free_storage_space_minimum[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.cloud.rds.freeable_memory">infra.cloud.rds.freeable_memory
  <a class="anchor" href="#infra.cloud.rds.freeable_memory">#</a>
</h4>
Memory on each RDS instance not in use by PostgreSQL or its cache.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.cloud.rds.freeable_memory-tabs" id="infra.cloud.rds.freeable_memory-tab-0" checked>
  <label for="infra.cloud.rds.freeable_memory-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">min</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>dimension_DBInstanceIdentifier<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>aws_rds_freeable_memory_minimum[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.cloud.rds.cpu_credits">infra.cloud.rds.cpu_credits
  <a class="anchor" href="#infra.cloud.rds.cpu_credits">#</a>
</h4>
CPU credits left on burstable (<code>db.t*</code>) instances.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.cloud.rds.cpu_credits-tabs" id="infra.cloud.rds.cpu_credits-tab-0" checked>
  <label for="infra.cloud.rds.cpu_credits-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">min</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>dimension_DBInstanceIdentifier<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>aws_rds_cpucredit_balance_minimum[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.cloud.rds.io_latency">infra.cloud.rds.io_latency
  <a class="anchor" href="#infra.cloud.rds.io_latency">#</a>
</h4>
Average time each RDS instance&rsquo;s disk takes to complete a read and a
write.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.cloud.rds.io_latency-tabs" id="infra.cloud.rds.io_latency-tab-0" checked>
  <label for="infra.cloud.rds.io_latency-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>dimension_DBInstanceIdentifier<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>aws_rds_read_latency_average[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>dimension_DBInstanceIdentifier<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>aws_rds_write_latency_average[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.cloud.rds.queue_depth">infra.cloud.rds.queue_depth
  <a class="anchor" href="#infra.cloud.rds.queue_depth">#</a>
</h4>
Disk requests waiting on each RDS instance&rsquo;s volume.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.cloud.rds.queue_depth-tabs" id="infra.cloud.rds.queue_depth-tab-0" checked>
  <label for="infra.cloud.rds.queue_depth-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>dimension_DBInstanceIdentifier<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>aws_rds_disk_queue_depth_average[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.cloud.rds.io_balances">infra.cloud.rds.io_balances
  <a class="anchor" href="#infra.cloud.rds.io_balances">#</a>
</h4>
The burst credit balances that let each RDS volume exceed its baseline
performance.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.cloud.rds.io_balances-tabs" id="infra.cloud.rds.io_balances-tab-0" checked>
  <label for="infra.cloud.rds.io_balances-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">min</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>dimension_DBInstanceIdentifier<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>aws_rds_burst_balance_minimum[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">/</span> <span style="color:#ae81ff">100</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">min</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>dimension_DBInstanceIdentifier<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>aws_rds_ebsiobalance_percent_minimum[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">/</span> <span style="color:#ae81ff">100</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">min</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>dimension_DBInstanceIdentifier<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>aws_rds_ebsbyte_balance_percent_minimum[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">/</span> <span style="color:#ae81ff">100</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.cloud.cloudsql.disk">infra.cloud.cloudsql.disk
  <a class="anchor" href="#infra.cloud.cloudsql.disk">#</a>
</h4>
Fraction of each Cloud SQL instance&rsquo;s disk in use.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.cloud.cloudsql.disk-tabs" id="infra.cloud.cloudsql.disk-tab-0" checked>
  <label for="infra.cloud.cloudsql.disk-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>database_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>stackdriver_cloudsql_database_cloudsql_googleapis_com_database_disk_utilization[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.cloud.cloudsql.memory">infra.cloud.cloudsql.memory
  <a class="anchor" href="#infra.cloud.cloudsql.memory">#</a>
</h4>
Fraction of each Cloud SQL instance&rsquo;s memory in use.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.cloud.cloudsql.memory-tabs" id="infra.cloud.cloudsql.memory-tab-0" checked>
  <label for="infra.cloud.cloudsql.memory-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>database_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>stackdriver_cloudsql_database_cloudsql_googleapis_com_database_memory_utilization[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.cloud.cloudsql.up">infra.cloud.cloudsql.up
  <a class="anchor" href="#infra.cloud.cloudsql.up">#</a>
</h4>
Whether Cloud SQL considers each instance to be serving.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.cloud.cloudsql.up-tabs" id="infra.cloud.cloudsql.up-tab-0" checked>
  <label for="infra.cloud.cloudsql.up-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">min</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>database_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>stackdriver_cloudsql_database_cloudsql_googleapis_com_database_up[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.cloud.cloudsql.backends_by_database">infra.cloud.cloudsql.backends_by_database
  <a class="anchor" href="#infra.cloud.cloudsql.backends_by_database">#</a>
</h4>
Connections on each Cloud SQL instance, by the database they are
connected to.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.cloud.cloudsql.backends_by_database-tabs" id="infra.cloud.cloudsql.backends_by_database-tab-0" checked>
  <label for="infra.cloud.cloudsql.backends_by_database-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>database_id, database<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>stackdriver_cloudsql_database_cloudsql_googleapis_com_database_postgresql_num_backends[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.cloud.cloudsql.backends_by_state">infra.cloud.cloudsql.backends_by_state
  <a class="anchor" href="#infra.cloud.cloudsql.backends_by_state">#</a>
</h4>
Connections on each Cloud SQL instance, by what they are doing.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.cloud.cloudsql.backends_by_state-tabs" id="infra.cloud.cloudsql.backends_by_state-tab-0" checked>
  <label for="infra.cloud.cloudsql.backends_by_state-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>database_id, state<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>stackdriver_cloudsql_database_cloudsql_googleapis_com_database_postgresql_num_backends_by_state[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.cloud.flexible.storage">infra.cloud.flexible.storage
  <a class="anchor" href="#infra.cloud.flexible.storage">#</a>
</h4>
Fraction of each Flexible Server&rsquo;s storage in use.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.cloud.flexible.storage-tabs" id="infra.cloud.flexible.storage-tab-0" checked>
  <label for="infra.cloud.flexible.storage-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>resourceName<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>azure_microsoft_dbforpostgresql_flexibleservers_storage_percent_maximum_percent[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">/</span> <span style="color:#ae81ff">100</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.cloud.flexible.memory">infra.cloud.flexible.memory
  <a class="anchor" href="#infra.cloud.flexible.memory">#</a>
</h4>
Fraction of each Flexible Server&rsquo;s memory in use.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.cloud.flexible.memory-tabs" id="infra.cloud.flexible.memory-tab-0" checked>
  <label for="infra.cloud.flexible.memory-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>resourceName<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>azure_microsoft_dbforpostgresql_flexibleservers_memory_percent_maximum_percent[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">/</span> <span style="color:#ae81ff">100</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.cloud.flexible.cpu_credits">infra.cloud.flexible.cpu_credits
  <a class="anchor" href="#infra.cloud.flexible.cpu_credits">#</a>
</h4>
CPU credits left on Burstable-tier Flexible Servers.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.cloud.flexible.cpu_credits-tabs" id="infra.cloud.flexible.cpu_credits-tab-0" checked>
  <label for="infra.cloud.flexible.cpu_credits-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">min</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>resourceName<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>azure_microsoft_dbforpostgresql_flexibleservers_cpu_credits_remaining_minimum_count[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.cloud.flexible.alive">infra.cloud.flexible.alive
  <a class="anchor" href="#infra.cloud.flexible.alive">#</a>
</h4>
Whether Azure could reach each Flexible Server.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.cloud.flexible.alive-tabs" id="infra.cloud.flexible.alive-tab-0" checked>
  <label for="infra.cloud.flexible.alive-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">min</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>resourceName<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>azure_microsoft_dbforpostgresql_flexibleservers_is_db_alive_minimum_count[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.cloud.flexible.io_consumed">infra.cloud.flexible.io_consumed
  <a class="anchor" href="#infra.cloud.flexible.io_consumed">#</a>
</h4>
How much of each Flexible Server&rsquo;s provisioned disk IOPS and
throughput is in use.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.cloud.flexible.io_consumed-tabs" id="infra.cloud.flexible.io_consumed-tab-0" checked>
  <label for="infra.cloud.flexible.io_consumed-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>resourceName<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>azure_microsoft_dbforpostgresql_flexibleservers_disk_iops_consumed_percentage_maximum_percent[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">/</span> <span style="color:#ae81ff">100</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>resourceName<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>azure_microsoft_dbforpostgresql_flexibleservers_disk_bandwidth_consumed_percentage_maximum_percent[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">/</span> <span style="color:#ae81ff">100</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.cloud.flexible.queue_depth">infra.cloud.flexible.queue_depth
  <a class="anchor" href="#infra.cloud.flexible.queue_depth">#</a>
</h4>
Disk requests waiting on each Flexible Server.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.cloud.flexible.queue_depth-tabs" id="infra.cloud.flexible.queue_depth-tab-0" checked>
  <label for="infra.cloud.flexible.queue_depth-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>resourceName<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>azure_microsoft_dbforpostgresql_flexibleservers_disk_queue_depth_average_count[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.cloud.flexible.connections_failed">infra.cloud.flexible.connections_failed
  <a class="anchor" href="#infra.cloud.flexible.connections_failed">#</a>
</h4>
Connections each Flexible Server refused, per pull interval.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.cloud.flexible.connections_failed-tabs" id="infra.cloud.flexible.connections_failed-tab-0" checked>
  <label for="infra.cloud.flexible.connections_failed-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>resourceName<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>azure_microsoft_dbforpostgresql_flexibleservers_connections_failed_total_count[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.cloud.bucket.bytes">infra.cloud.bucket.bytes
  <a class="anchor" href="#infra.cloud.bucket.bytes">#</a>
</h4>
Bytes stored in each bucket, as the provider bills them, beside the
data Materialize accounts for.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.cloud.bucket.bytes-tabs" id="infra.cloud.bucket.bytes-tab-0" checked>
  <label for="infra.cloud.bucket.bytes-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>dimension_BucketName<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>aws_s3_bucket_size_bytes_average[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>bucket_name<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>stackdriver_gcs_bucket_storage_googleapis_com_storage_v_2_total_bytes[<span style="color:#e6db74">30m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>resourceName<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>azure_microsoft_storage_storageaccounts_blobservices_blobcapacity_average_bytes[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>shard<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>mz_persist_shard_usage_current_state_batches_bytes<span style="color:#f92672">))</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">+</span> <span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>shard<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>mz_persist_shard_usage_current_state_rollups_bytes<span style="color:#f92672">))</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">+</span> <span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>shard<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>mz_persist_shard_usage_referenced_not_current_state_bytes<span style="color:#f92672">))</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">+</span> <span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>shard<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>mz_persist_shard_usage_not_leaked_not_referenced_bytes<span style="color:#f92672">))</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">+</span> <span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>shard<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>mz_persist_shard_usage_leaked_bytes<span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.cloud.bucket.objects">infra.cloud.bucket.objects
  <a class="anchor" href="#infra.cloud.bucket.objects">#</a>
</h4>
Objects stored in each bucket.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.cloud.bucket.objects-tabs" id="infra.cloud.bucket.objects-tab-0" checked>
  <label for="infra.cloud.bucket.objects-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>dimension_BucketName<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>aws_s3_number_of_objects_average[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>bucket_name<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>stackdriver_gcs_bucket_storage_googleapis_com_storage_v_2_total_count[<span style="color:#e6db74">30m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>resourceName<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>azure_microsoft_storage_storageaccounts_blobservices_blobcount_average_count[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.cloud.gcs.bytes_by_type">infra.cloud.gcs.bytes_by_type
  <a class="anchor" href="#infra.cloud.gcs.bytes_by_type">#</a>
</h4>
Bytes in each GCS bucket, split into live objects, noncurrent versions
and soft-deleted objects.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.cloud.gcs.bytes_by_type-tabs" id="infra.cloud.gcs.bytes_by_type-tab-0" checked>
  <label for="infra.cloud.gcs.bytes_by_type-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>bucket_name, type<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>stackdriver_gcs_bucket_storage_googleapis_com_storage_v_2_total_bytes[<span style="color:#e6db74">30m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.cloud.gcs.objects_by_type">infra.cloud.gcs.objects_by_type
  <a class="anchor" href="#infra.cloud.gcs.objects_by_type">#</a>
</h4>
Objects in each GCS bucket, split into live, noncurrent and
soft-deleted.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.cloud.gcs.objects_by_type-tabs" id="infra.cloud.gcs.objects_by_type-tab-0" checked>
  <label for="infra.cloud.gcs.objects_by_type-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>bucket_name, type<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>stackdriver_gcs_bucket_storage_googleapis_com_storage_v_2_total_count[<span style="color:#e6db74">30m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.cloud.blob.availability">infra.cloud.blob.availability
  <a class="anchor" href="#infra.cloud.blob.availability">#</a>
</h4>
Fraction of requests to each storage account&rsquo;s blob service that Azure
counted as successful.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.cloud.blob.availability-tabs" id="infra.cloud.blob.availability-tab-0" checked>
  <label for="infra.cloud.blob.availability-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">min</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>resourceName<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>azure_microsoft_storage_storageaccounts_blobservices_availability_average_percent[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">/</span> <span style="color:#ae81ff">100</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.cloud.blob.latency">infra.cloud.blob.latency
  <a class="anchor" href="#infra.cloud.blob.latency">#</a>
</h4>
Average time Azure took to serve each storage account&rsquo;s successful
blob requests, measured at the service and end to end.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.cloud.blob.latency-tabs" id="infra.cloud.blob.latency-tab-0" checked>
  <label for="infra.cloud.blob.latency-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>resourceName<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>azure_microsoft_storage_storageaccounts_blobservices_successserverlatency_average_milliseconds[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">/</span> <span style="color:#ae81ff">1000</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>resourceName<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>azure_microsoft_storage_storageaccounts_blobservices_successe2elatency_average_milliseconds[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">/</span> <span style="color:#ae81ff">1000</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.cloud.collection.pulls">infra.cloud.collection.pulls
  <a class="anchor" href="#infra.cloud.collection.pulls">#</a>
</h4>
Every provider pull the gateway is running, and whether its last
scrape answered.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.cloud.collection.pulls-tabs" id="infra.cloud.collection.pulls-tab-0" checked>
  <label for="infra.cloud.collection.pulls-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>job, instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>up{job<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">integrations/(cloudwatch|gcp|azure)</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.cloud.collection.resources">infra.cloud.collection.resources
  <a class="anchor" href="#infra.cloud.collection.resources">#</a>
</h4>
How many of each kind of resource returned data in the last pull.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.cloud.collection.resources-tabs" id="infra.cloud.collection.resources-tab-0" checked>
  <label for="infra.cloud.collection.resources-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">count</span><span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>dimension_DBInstanceIdentifier<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>last_over_time<span style="color:#f92672">(</span>aws_rds_cpuutilization_average[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)))</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">count</span><span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>dimension_BucketName<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>last_over_time<span style="color:#f92672">(</span>aws_s3_bucket_size_bytes_average[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)))</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">count</span><span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>database_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>last_over_time<span style="color:#f92672">(</span>stackdriver_cloudsql_database_cloudsql_googleapis_com_database_cpu_utilization[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)))</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">count</span><span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>bucket_name<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>last_over_time<span style="color:#f92672">(</span>stackdriver_gcs_bucket_storage_googleapis_com_storage_v_2_total_bytes[<span style="color:#e6db74">30m</span>]<span style="color:#f92672">)))</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">count</span><span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>resourceName<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>last_over_time<span style="color:#f92672">(</span>azure_microsoft_dbforpostgresql_flexibleservers_cpu_percent_average_percent[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)))</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">count</span><span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>resourceName<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>last_over_time<span style="color:#f92672">(</span>azure_microsoft_storage_storageaccounts_blobservices_blobcapacity_average_bytes[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.cloud.collection.gcp_errors">infra.cloud.collection.gcp_errors
  <a class="anchor" href="#infra.cloud.collection.gcp_errors">#</a>
</h4>
Whether the last Cloud Monitoring pull for each service failed.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.cloud.collection.gcp_errors-tabs" id="infra.cloud.collection.gcp_errors-tab-0" checked>
  <label for="infra.cloud.collection.gcp_errors-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  last_over_time<span style="color:#f92672">(</span>stackdriver_monitoring_last_scrape_error[<span style="color:#e6db74">15m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.cloud.collection.gcp_calls">infra.cloud.collection.gcp_calls
  <a class="anchor" href="#infra.cloud.collection.gcp_calls">#</a>
</h4>
Cloud Monitoring API calls per minute, by pull — the calls that are
billed.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.cloud.collection.gcp_calls-tabs" id="infra.cloud.collection.gcp_calls-tab-0" checked>
  <label for="infra.cloud.collection.gcp_calls-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>stackdriver_monitoring_api_calls_total[<span style="color:#e6db74">30m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">*</span> <span style="color:#ae81ff">60</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.cloud.collection.azure_failures">infra.cloud.collection.azure_failures
  <a class="anchor" href="#infra.cloud.collection.azure_failures">#</a>
</h4>
Azure Monitor API calls that failed, per minute, by HTTP status.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.cloud.collection.azure_failures-tabs" id="infra.cloud.collection.azure_failures-tab-0" checked>
  <label for="infra.cloud.collection.azure_failures-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>statusCode<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>azurerm_api_request_count{statusCode<span style="color:#f92672">!~</span>&#34;<span style="color:#e6db74">2..</span>&#34;}[<span style="color:#e6db74">30m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">*</span> <span style="color:#ae81ff">60</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.cloud.collection.azure_calls">infra.cloud.collection.azure_calls
  <a class="anchor" href="#infra.cloud.collection.azure_calls">#</a>
</h4>
Azure API calls per minute, by what they were for — the calls that
count against the subscription&rsquo;s API limits.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.cloud.collection.azure_calls-tabs" id="infra.cloud.collection.azure_calls-tab-0" checked>
  <label for="infra.cloud.collection.azure_calls-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">label_replace</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">label_replace</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>resourceProvider, method<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>      <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>azurerm_api_request_count[<span style="color:#e6db74">30m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">)</span> <span style="color:#f92672">*</span> <span style="color:#ae81ff">60</span>,
</span></span><span style="display:flex;"><span>    &#34;<span style="color:#e6db74">resourceProvider</span>&#34;, &#34;<span style="color:#e6db74">resource graph</span>&#34;, &#34;<span style="color:#e6db74">method</span>&#34;, &#34;<span style="color:#e6db74">post</span>&#34;
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>,
</span></span><span style="display:flex;"><span>  &#34;<span style="color:#e6db74">resourceProvider</span>&#34;, &#34;<span style="color:#e6db74">other</span>&#34;, &#34;<span style="color:#e6db74">resourceProvider</span>&#34;, &#34;&#34;
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>

## infra-karpenter

<p>Karpenter&rsquo;s own account of provisioning and disruption, from the metrics its
controller publishes and the events it records.</p>
<p>Karpenter adds nodes on EKS in the self-managed Terraform: it watches for
pods the scheduler cannot place, launches an EC2 instance that fits them,
and later removes or replaces nodes that are empty, underused, drifted from
their NodePool&rsquo;s spec, or being interrupted by AWS. Everything it does to a
node goes through a NodeClaim, one per instance.</p>
<p>The controller runs two replicas and only the leader does any work, so most
families here come from one pod. Counters restart on a leader change; every
query reads them through <code>rate</code> or <code>increase</code>, which tolerates that.</p>
<h2 id="scrape">Scrape<a class="anchor" href="#scrape">#</a></h2>
<p>The chart&rsquo;s ServiceMonitor is enabled by the Terraform&rsquo;s <code>karpenter</code> module.
It drops the offering price estimates and per-instance-type CPU and memory,
which describe every instance type in the region rather than the cluster,
and keeps offering availability only for the node pools&rsquo; instance types.
Karpenter&rsquo;s generic families (<code>controller_runtime_*</code>, <code>workqueue_*</code>,
<code>client_go_*</code>, <code>aws_sdk_go_*</code>) carry no <code>karpenter_</code> prefix, so they are
scoped by <code>app=&quot;karpenter&quot;</code>, which the gateway sets from the pod&rsquo;s name label.</p>
<h2 id="names-ending-in-_count">Names ending in <code>_count</code><a class="anchor" href="#names-ending-in-_count">#</a></h2>
<p><code>karpenter_scheduler_unschedulable_pods_count</code> and the
<code>operator_*_status_condition_count</code> families are gauges, not the counts of a
histogram.</p>
<h2 id="rare-events">Rare events<a class="anchor" href="#rare-events">#</a></h2>
<p>NodeClaims are created and removed a few times a day, so their duration
histograms are read over an hour rather than <code>$__rate_interval</code>, which would
leave the panel mostly empty.</p>

<h4 id="infra.karpenter.health.nodepools_not_ready">infra.karpenter.health.nodepools_not_ready
  <a class="anchor" href="#infra.karpenter.health.nodepools_not_ready">#</a>
</h4>
NodePools that are not Ready.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.karpenter.health.nodepools_not_ready-tabs" id="infra.karpenter.health.nodepools_not_ready-tab-0" checked>
  <label for="infra.karpenter.health.nodepools_not_ready-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">count</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>name<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>operator_nodepool_status_condition_count{type<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">Ready</span>&#34;, status<span style="color:#f92672">!=</span>&#34;<span style="color:#e6db74">True</span>&#34;}<span style="color:#f92672">)</span> <span style="color:#f92672">==</span> <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">or</span> <span style="color:#ae81ff">0</span> <span style="color:#f92672">*</span> <span style="color:#66d9ef">count</span><span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>name<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>operator_nodepool_status_condition_count{type<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">Ready</span>&#34;}<span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.karpenter.health.nodes">infra.karpenter.health.nodes
  <a class="anchor" href="#infra.karpenter.health.nodes">#</a>
</h4>
Nodes Karpenter manages, in the selected NodePools.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.karpenter.health.nodes-tabs" id="infra.karpenter.health.nodes-tab-0" checked>
  <label for="infra.karpenter.health.nodes-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">count</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node_name<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>karpenter_nodes_allocatable{resource_type<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">cpu</span>&#34;, nodepool<span style="color:#f92672">!=</span>&#34;&#34;, nodepool<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$karpenterNodePool</span>&#34;}<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.karpenter.health.pods_unplaceable">infra.karpenter.health.pods_unplaceable
  <a class="anchor" href="#infra.karpenter.health.pods_unplaceable">#</a>
</h4>
Pods Karpenter could not find or create a node for in its last
scheduling pass.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.karpenter.health.pods_unplaceable-tabs" id="infra.karpenter.health.pods_unplaceable-tab-0" checked>
  <label for="infra.karpenter.health.pods_unplaceable-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#f92672">(</span>karpenter_scheduler_unschedulable_pods_count{controller<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">provisioner</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.karpenter.health.launch_errors">infra.karpenter.health.launch_errors
  <a class="anchor" href="#infra.karpenter.health.launch_errors">#</a>
</h4>
Instance launches EC2 refused in the selected time range.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.karpenter.health.launch_errors-tabs" id="infra.karpenter.health.launch_errors-tab-0" checked>
  <label for="infra.karpenter.health.launch_errors-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">increase</span><span style="color:#f92672">(</span>karpenter_cloudprovider_errors_total{method<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">Create</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='range' title='range'>[1h]</span><span style="color:#f92672">))</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">or</span> <span style="color:#ae81ff">0</span> <span style="color:#f92672">*</span> <span style="color:#66d9ef">max</span><span style="color:#f92672">(</span>karpenter_build_info<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.karpenter.health.disrupted">infra.karpenter.health.disrupted
  <a class="anchor" href="#infra.karpenter.health.disrupted">#</a>
</h4>
NodeClaims Karpenter removed or replaced in the selected time range, in
the selected NodePools.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.karpenter.health.disrupted-tabs" id="infra.karpenter.health.disrupted-tab-0" checked>
  <label for="infra.karpenter.health.disrupted-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">increase</span><span style="color:#f92672">(</span>karpenter_nodeclaims_disrupted_total{nodepool<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$karpenterNodePool</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='range' title='range'>[1h]</span><span style="color:#f92672">))</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">or</span> <span style="color:#ae81ff">0</span> <span style="color:#f92672">*</span> <span style="color:#66d9ef">max</span><span style="color:#f92672">(</span>karpenter_build_info<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.karpenter.health.synced">infra.karpenter.health.synced
  <a class="anchor" href="#infra.karpenter.health.synced">#</a>
</h4>
Whether Karpenter&rsquo;s view of the cluster&rsquo;s nodes and pods is in step
with Kubernetes.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.karpenter.health.synced-tabs" id="infra.karpenter.health.synced-tab-0" checked>
  <label for="infra.karpenter.health.synced-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#f92672">(</span>karpenter_cluster_state_synced<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.karpenter.health.version">infra.karpenter.health.version
  <a class="anchor" href="#infra.karpenter.health.version">#</a>
</h4>
The Karpenter version running.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.karpenter.health.version-tabs" id="infra.karpenter.health.version-tab-0" checked>
  <label for="infra.karpenter.health.version-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>version<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>karpenter_build_info<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.karpenter.nodes.by_nodepool">infra.karpenter.nodes.by_nodepool
  <a class="anchor" href="#infra.karpenter.nodes.by_nodepool">#</a>
</h4>
Karpenter&rsquo;s nodes in each NodePool over time.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.karpenter.nodes.by_nodepool-tabs" id="infra.karpenter.nodes.by_nodepool-tab-0" checked>
  <label for="infra.karpenter.nodes.by_nodepool-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">count</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>nodepool<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node_name, nodepool<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>karpenter_nodes_allocatable{resource_type<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">cpu</span>&#34;, nodepool<span style="color:#f92672">!=</span>&#34;&#34;, nodepool<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$karpenterNodePool</span>&#34;}<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.karpenter.nodepools.cpu">infra.karpenter.nodepools.cpu
  <a class="anchor" href="#infra.karpenter.nodepools.cpu">#</a>
</h4>
CPU each NodePool&rsquo;s nodes provide, against the limit the NodePool sets.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.karpenter.nodepools.cpu-tabs" id="infra.karpenter.nodepools.cpu-tab-0" checked>
  <label for="infra.karpenter.nodepools.cpu-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>nodepool<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>karpenter_nodepools_usage{resource_type<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">cpu</span>&#34;, nodepool<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$karpenterNodePool</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>nodepool<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>karpenter_nodepools_limit{resource_type<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">cpu</span>&#34;, nodepool<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$karpenterNodePool</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.karpenter.nodepools.memory">infra.karpenter.nodepools.memory
  <a class="anchor" href="#infra.karpenter.nodepools.memory">#</a>
</h4>
Memory each NodePool&rsquo;s nodes provide, against the limit the NodePool
sets.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.karpenter.nodepools.memory-tabs" id="infra.karpenter.nodepools.memory-tab-0" checked>
  <label for="infra.karpenter.nodepools.memory-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>nodepool<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>karpenter_nodepools_usage{resource_type<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">memory</span>&#34;, nodepool<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$karpenterNodePool</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>nodepool<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>karpenter_nodepools_limit{resource_type<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">memory</span>&#34;, nodepool<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$karpenterNodePool</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.karpenter.utilization">infra.karpenter.utilization
  <a class="anchor" href="#infra.karpenter.utilization">#</a>
</h4>
The share of Karpenter&rsquo;s nodes&rsquo; allocatable CPU, memory and pod slots
that pods have requested.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.karpenter.utilization-tabs" id="infra.karpenter.utilization-tab-0" checked>
  <label for="infra.karpenter.utilization-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>resource_type<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>karpenter_cluster_utilization_percent{resource_type<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">cpu|memory|pods</span>&#34;}<span style="color:#f92672">)</span> <span style="color:#f92672">/</span> <span style="color:#ae81ff">100</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.karpenter.conditions">infra.karpenter.conditions
  <a class="anchor" href="#infra.karpenter.conditions">#</a>
</h4>
Every condition on each NodePool and EC2NodeClass, and its current
status.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.karpenter.conditions-tabs" id="infra.karpenter.conditions-tab-0" checked>
  <label for="infra.karpenter.conditions-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>kind, name, type, status, reason<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  operator_status_condition_count{kind<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">NodePool|EC2NodeClass</span>&#34;}
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">==</span> <span style="color:#ae81ff">1</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.karpenter.provisioning.created">infra.karpenter.provisioning.created
  <a class="anchor" href="#infra.karpenter.provisioning.created">#</a>
</h4>
NodeClaims created per hour, by NodePool and reason.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.karpenter.provisioning.created-tabs" id="infra.karpenter.provisioning.created-tab-0" checked>
  <label for="infra.karpenter.provisioning.created-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>nodepool, reason<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>karpenter_nodeclaims_created_total{nodepool<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$karpenterNodePool</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">*</span> <span style="color:#ae81ff">3600</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.karpenter.provisioning.errors">infra.karpenter.provisioning.errors
  <a class="anchor" href="#infra.karpenter.provisioning.errors">#</a>
</h4>
Errors from EC2 per hour, by error type and operation.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.karpenter.provisioning.errors-tabs" id="infra.karpenter.provisioning.errors-tab-0" checked>
  <label for="infra.karpenter.provisioning.errors-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>error, method<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>karpenter_cloudprovider_errors_total<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">*</span> <span style="color:#ae81ff">3600</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.karpenter.provisioning.offerings">infra.karpenter.provisioning.offerings
  <a class="anchor" href="#infra.karpenter.provisioning.offerings">#</a>
</h4>
Zones where each of the node pools&rsquo; instance types can be launched, by
capacity type.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.karpenter.provisioning.offerings-tabs" id="infra.karpenter.provisioning.offerings-tab-0" checked>
  <label for="infra.karpenter.provisioning.offerings-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance_type, capacity_type<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance_type, capacity_type, zone<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>karpenter_cloudprovider_instance_type_offering_available{capacity_type<span style="color:#f92672">!=</span>&#34;<span style="color:#e6db74">reserved</span>&#34;}<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.karpenter.provisioning.pods_waiting">infra.karpenter.provisioning.pods_waiting
  <a class="anchor" href="#infra.karpenter.provisioning.pods_waiting">#</a>
</h4>
Pods waiting for Karpenter: the ones it cannot place, and the queue for
its next scheduling pass.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.karpenter.provisioning.pods_waiting-tabs" id="infra.karpenter.provisioning.pods_waiting-tab-0" checked>
  <label for="infra.karpenter.provisioning.pods_waiting-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#f92672">(</span>karpenter_scheduler_unschedulable_pods_count{controller<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">provisioner</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>controller<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>karpenter_scheduler_queue_depth<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.karpenter.provisioning.startup">infra.karpenter.provisioning.startup
  <a class="anchor" href="#infra.karpenter.provisioning.startup">#</a>
</h4>
How long pods that needed a new node took to start running, from when
the scheduler gave up on existing nodes.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.karpenter.provisioning.startup-tabs" id="infra.karpenter.provisioning.startup-tab-0" checked>
  <label for="infra.karpenter.provisioning.startup-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span><span style="color:#ae81ff">0.5</span>, <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">increase</span><span style="color:#f92672">(</span>karpenter_pods_provisioning_startup_duration_seconds_bucket[<span style="color:#e6db74">1h</span>]<span style="color:#f92672">)))</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span><span style="color:#ae81ff">0.99</span>, <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">increase</span><span style="color:#f92672">(</span>karpenter_pods_provisioning_startup_duration_seconds_bucket[<span style="color:#e6db74">1h</span>]<span style="color:#f92672">)))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.karpenter.provisioning.stages">infra.karpenter.provisioning.stages
  <a class="anchor" href="#infra.karpenter.provisioning.stages">#</a>
</h4>
How long NodeClaims took to reach each stage of launching, at the 99th
percentile over the last hour.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.karpenter.provisioning.stages-tabs" id="infra.karpenter.provisioning.stages-tab-0" checked>
  <label for="infra.karpenter.provisioning.stages-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span><span style="color:#ae81ff">0.99</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>type, le<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">increase</span><span style="color:#f92672">(</span>operator_nodeclaim_status_condition_transition_seconds_bucket{type<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">Launched|Registered|Initialized</span>&#34;, karpenter_sh_nodepool<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$karpenterNodePool</span>&#34;}[<span style="color:#e6db74">1h</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.karpenter.provisioning.scheduling_duration">infra.karpenter.provisioning.scheduling_duration
  <a class="anchor" href="#infra.karpenter.provisioning.scheduling_duration">#</a>
</h4>
How long each of Karpenter&rsquo;s scheduling passes takes, at the 99th percentile.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.karpenter.provisioning.scheduling_duration-tabs" id="infra.karpenter.provisioning.scheduling_duration-tab-0" checked>
  <label for="infra.karpenter.provisioning.scheduling_duration-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span><span style="color:#ae81ff">0.99</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>controller, le<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>karpenter_scheduler_scheduling_duration_seconds_bucket<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.karpenter.provisioning.cloud_latency">infra.karpenter.provisioning.cloud_latency
  <a class="anchor" href="#infra.karpenter.provisioning.cloud_latency">#</a>
</h4>
How long Karpenter&rsquo;s calls to AWS take, by operation, at the 99th percentile.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.karpenter.provisioning.cloud_latency-tabs" id="infra.karpenter.provisioning.cloud_latency-tab-0" checked>
  <label for="infra.karpenter.provisioning.cloud_latency-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span><span style="color:#ae81ff">0.99</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>method, le<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>karpenter_cloudprovider_duration_seconds_bucket<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.karpenter.disruption.disrupted">infra.karpenter.disruption.disrupted
  <a class="anchor" href="#infra.karpenter.disruption.disrupted">#</a>
</h4>
NodeClaims removed or replaced per hour, by NodePool and reason.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.karpenter.disruption.disrupted-tabs" id="infra.karpenter.disruption.disrupted-tab-0" checked>
  <label for="infra.karpenter.disruption.disrupted-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>nodepool, reason<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>karpenter_nodeclaims_disrupted_total{nodepool<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$karpenterNodePool</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">*</span> <span style="color:#ae81ff">3600</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.karpenter.disruption.decisions">infra.karpenter.disruption.decisions
  <a class="anchor" href="#infra.karpenter.disruption.decisions">#</a>
</h4>
Disruptions Karpenter decided on per hour, by reason and action.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.karpenter.disruption.decisions-tabs" id="infra.karpenter.disruption.decisions-tab-0" checked>
  <label for="infra.karpenter.disruption.decisions-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>reason, decision<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>karpenter_voluntary_disruption_decisions_total<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">*</span> <span style="color:#ae81ff">3600</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.karpenter.disruption.eligible">infra.karpenter.disruption.eligible
  <a class="anchor" href="#infra.karpenter.disruption.eligible">#</a>
</h4>
Nodes Karpenter considers candidates for disruption, by reason.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.karpenter.disruption.eligible-tabs" id="infra.karpenter.disruption.eligible-tab-0" checked>
  <label for="infra.karpenter.disruption.eligible-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>reason<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>karpenter_voluntary_disruption_eligible_nodes<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.karpenter.disruption.budget">infra.karpenter.disruption.budget
  <a class="anchor" href="#infra.karpenter.disruption.budget">#</a>
</h4>
Nodes each NodePool&rsquo;s disruption budget allows removing right now, by
reason.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.karpenter.disruption.budget-tabs" id="infra.karpenter.disruption.budget-tab-0" checked>
  <label for="infra.karpenter.disruption.budget-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">min</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>nodepool, reason<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>karpenter_nodepools_allowed_disruptions{nodepool<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$karpenterNodePool</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.karpenter.disruption.blocked">infra.karpenter.disruption.blocked
  <a class="anchor" href="#infra.karpenter.disruption.blocked">#</a>
</h4>
Why Karpenter is leaving nodes in place, from its <code>DisruptionBlocked</code>
and <code>Unconsolidatable</code> events per five minutes.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.karpenter.disruption.blocked-tabs" id="infra.karpenter.disruption.blocked-tab-0" checked>
  <label for="infra.karpenter.disruption.blocked-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="infra.karpenter.disruption.blocked_stream">infra.karpenter.disruption.blocked_stream
  <a class="anchor" href="#infra.karpenter.disruption.blocked_stream">#</a>
</h4>
Karpenter&rsquo;s blocked-disruption events, newest first.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.karpenter.disruption.blocked_stream-tabs" id="infra.karpenter.disruption.blocked_stream-tab-0" checked>
  <label for="infra.karpenter.disruption.blocked_stream-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="infra.karpenter.disruption.evictions">infra.karpenter.disruption.evictions
  <a class="anchor" href="#infra.karpenter.disruption.evictions">#</a>
</h4>
Pod evictions Karpenter requested per minute, by response.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.karpenter.disruption.evictions-tabs" id="infra.karpenter.disruption.evictions-tab-0" checked>
  <label for="infra.karpenter.disruption.evictions-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>code<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>karpenter_nodes_eviction_requests_total<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span> <span style="color:#f92672">*</span> <span style="color:#ae81ff">60</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.karpenter.disruption.termination">infra.karpenter.disruption.termination
  <a class="anchor" href="#infra.karpenter.disruption.termination">#</a>
</h4>
How long NodeClaims took to terminate, from the decision to the
instance gone, at the 99th percentile over the last hour.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.karpenter.disruption.termination-tabs" id="infra.karpenter.disruption.termination-tab-0" checked>
  <label for="infra.karpenter.disruption.termination-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span><span style="color:#ae81ff">0.99</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">increase</span><span style="color:#f92672">(</span>operator_nodeclaim_termination_duration_seconds_bucket{karpenter_sh_nodepool<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$karpenterNodePool</span>&#34;}[<span style="color:#e6db74">1h</span>]<span style="color:#f92672">))</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.karpenter.disruption.consolidation_timeouts">infra.karpenter.disruption.consolidation_timeouts
  <a class="anchor" href="#infra.karpenter.disruption.consolidation_timeouts">#</a>
</h4>
Consolidation searches that ran out of time, per hour.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.karpenter.disruption.consolidation_timeouts-tabs" id="infra.karpenter.disruption.consolidation_timeouts-tab-0" checked>
  <label for="infra.karpenter.disruption.consolidation_timeouts-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>consolidation_type<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>karpenter_voluntary_disruption_consolidation_timeouts_total<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">*</span> <span style="color:#ae81ff">3600</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.karpenter.nodes.age">infra.karpenter.nodes.age
  <a class="anchor" href="#infra.karpenter.nodes.age">#</a>
</h4>
Each of Karpenter&rsquo;s nodes, with its NodePool, instance type, zone and
age.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.karpenter.nodes.age-tabs" id="infra.karpenter.nodes.age-tab-0" checked>
  <label for="infra.karpenter.nodes.age-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node_name, nodepool, instance_type, zone<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  karpenter_nodes_current_lifetime_seconds{nodepool<span style="color:#f92672">!=</span>&#34;&#34;, nodepool<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$karpenterNodePool</span>&#34;}
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.karpenter.interruption.received">infra.karpenter.interruption.received
  <a class="anchor" href="#infra.karpenter.interruption.received">#</a>
</h4>
Notices Karpenter read from its interruption queue per hour, by type.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.karpenter.interruption.received-tabs" id="infra.karpenter.interruption.received-tab-0" checked>
  <label for="infra.karpenter.interruption.received-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>message_type<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>karpenter_interruption_received_messages_total<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">*</span> <span style="color:#ae81ff">3600</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.karpenter.interruption.queue_delay">infra.karpenter.interruption.queue_delay
  <a class="anchor" href="#infra.karpenter.interruption.queue_delay">#</a>
</h4>
How long notices waited in the interruption queue before Karpenter read
them, at the 99th percentile over the last hour.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.karpenter.interruption.queue_delay-tabs" id="infra.karpenter.interruption.queue_delay-tab-0" checked>
  <label for="infra.karpenter.interruption.queue_delay-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span><span style="color:#ae81ff">0.99</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">increase</span><span style="color:#f92672">(</span>karpenter_interruption_message_queue_duration_seconds_bucket[<span style="color:#e6db74">1h</span>]<span style="color:#f92672">))</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.karpenter.controller.reconcile_errors">infra.karpenter.controller.reconcile_errors
  <a class="anchor" href="#infra.karpenter.controller.reconcile_errors">#</a>
</h4>
Reconcile errors per minute, by controller.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.karpenter.controller.reconcile_errors-tabs" id="infra.karpenter.controller.reconcile_errors-tab-0" checked>
  <label for="infra.karpenter.controller.reconcile_errors-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>controller<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>controller_runtime_reconcile_errors_total{app<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">karpenter</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">*</span> <span style="color:#ae81ff">60</span> <span style="color:#f92672">&gt;</span> <span style="color:#ae81ff">0</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.karpenter.controller.workqueue">infra.karpenter.controller.workqueue
  <a class="anchor" href="#infra.karpenter.controller.workqueue">#</a>
</h4>
Items waiting in each of Karpenter&rsquo;s work queues.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.karpenter.controller.workqueue-tabs" id="infra.karpenter.controller.workqueue-tab-0" checked>
  <label for="infra.karpenter.controller.workqueue-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>name<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>workqueue_depth{app<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">karpenter</span>&#34;}<span style="color:#f92672">)</span> <span style="color:#f92672">&gt;</span> <span style="color:#ae81ff">0</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.karpenter.controller.aws_errors">infra.karpenter.controller.aws_errors
  <a class="anchor" href="#infra.karpenter.controller.aws_errors">#</a>
</h4>
AWS API calls that did not succeed per minute, by service, action and status.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.karpenter.controller.aws_errors-tabs" id="infra.karpenter.controller.aws_errors-tab-0" checked>
  <label for="infra.karpenter.controller.aws_errors-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>exported_service, action, code<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>aws_sdk_go_request_total{app<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">karpenter</span>&#34;, code<span style="color:#f92672">!~</span>&#34;<span style="color:#e6db74">2..|412</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">*</span> <span style="color:#ae81ff">60</span> <span style="color:#f92672">&gt;</span> <span style="color:#ae81ff">0</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.karpenter.controller.kube_errors">infra.karpenter.controller.kube_errors
  <a class="anchor" href="#infra.karpenter.controller.kube_errors">#</a>
</h4>
Kubernetes API calls that did not succeed per minute, by method and status.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.karpenter.controller.kube_errors-tabs" id="infra.karpenter.controller.kube_errors-tab-0" checked>
  <label for="infra.karpenter.controller.kube_errors-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>method, code<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>client_go_request_total{app<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">karpenter</span>&#34;, code<span style="color:#f92672">!~</span>&#34;<span style="color:#e6db74">2..</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">*</span> <span style="color:#ae81ff">60</span> <span style="color:#f92672">&gt;</span> <span style="color:#ae81ff">0</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.karpenter.controller.leader">infra.karpenter.controller.leader
  <a class="anchor" href="#infra.karpenter.controller.leader">#</a>
</h4>
Which Karpenter replica holds the leader lease.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.karpenter.controller.leader-tabs" id="infra.karpenter.controller.leader-tab-0" checked>
  <label for="infra.karpenter.controller.leader-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>leader_election_master_status{app<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">karpenter</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.karpenter.controller.cpu">infra.karpenter.controller.cpu
  <a class="anchor" href="#infra.karpenter.controller.cpu">#</a>
</h4>
CPU each Karpenter replica uses, in cores.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.karpenter.controller.cpu-tabs" id="infra.karpenter.controller.cpu-tab-0" checked>
  <label for="infra.karpenter.controller.cpu-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>container_cpu_usage_seconds_total{container<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">controller</span>&#34;, pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">karpenter-.+</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.karpenter.controller.memory">infra.karpenter.controller.memory
  <a class="anchor" href="#infra.karpenter.controller.memory">#</a>
</h4>
Memory each Karpenter replica holds, against its limit.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.karpenter.controller.memory-tabs" id="infra.karpenter.controller.memory-tab-0" checked>
  <label for="infra.karpenter.controller.memory-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>container_memory_working_set_bytes{container<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">controller</span>&#34;, pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">karpenter-.+</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_pod_container_resource_limits{container<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">controller</span>&#34;, pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">karpenter-.+</span>&#34;, resource<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">memory</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.karpenter.events.rate_by_reason">infra.karpenter.events.rate_by_reason
  <a class="anchor" href="#infra.karpenter.events.rate_by_reason">#</a>
</h4>
Karpenter&rsquo;s events per minute, by reason.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.karpenter.events.rate_by_reason-tabs" id="infra.karpenter.events.rate_by_reason-tab-0" checked>
  <label for="infra.karpenter.events.rate_by_reason-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="infra.karpenter.events.stream">infra.karpenter.events.stream
  <a class="anchor" href="#infra.karpenter.events.stream">#</a>
</h4>
Karpenter&rsquo;s events, newest first.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.karpenter.events.stream-tabs" id="infra.karpenter.events.stream-tab-0" checked>
  <label for="infra.karpenter.events.stream-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="infra.karpenter.logs.rate">infra.karpenter.logs.rate
  <a class="anchor" href="#infra.karpenter.logs.rate">#</a>
</h4>
Karpenter&rsquo;s log lines per minute, by level.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.karpenter.logs.rate-tabs" id="infra.karpenter.logs.rate-tab-0" checked>
  <label for="infra.karpenter.logs.rate-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="infra.karpenter.logs.problems">infra.karpenter.logs.problems
  <a class="anchor" href="#infra.karpenter.logs.problems">#</a>
</h4>
Karpenter&rsquo;s warning and error log lines, newest first.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.karpenter.logs.problems-tabs" id="infra.karpenter.logs.problems-tab-0" checked>
  <label for="infra.karpenter.logs.problems-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>

## infra-logs

<p>Logs from the platform a Materialize deployment runs on: the monitoring stack
itself, the Kubernetes system components, and the nodes underneath both.</p>
<p>Separate from <code>materialize-logs.yaml</code> rather than a widening of it, for two
reasons that are structural rather than stylistic.</p>
<p><strong>The selector set differs.</strong> These carry <code>component</code> and <code>container</code> filters.
<code>component</code> is what tells one Loki or Thanos process from another — <code>loki</code>
alone splits into <code>canary</code>, <code>querier</code>, <code>ingester</code>, <code>query-frontend</code>,
<code>index-gateway</code>, <code>compactor</code>, <code>distributor</code> and <code>ruler</code> — and <code>container</code> is
the only picker that reaches workloads with no <code>app</code> at all, which on a
representative install is the whole of <code>kube-system</code>. Neither dimension means
anything to a Materialize environment, and adding them to the shared queries
would oblige every dashboard using those to define pickers it has no use for.</p>
<p><strong>The node journal is not reachable from a namespace.</strong> Journal lines carry
<code>unit</code>, <code>component</code>, <code>job</code>, <code>level</code> and <code>service_name</code> and <strong>no <code>namespace</code>,
<code>app</code> or <code>container</code></strong>, because they come from the node rather than from a pod.
Any selector that requires a namespace excludes them by construction, which is
why they have their own queries here and their own tab on the dashboard.</p>
<p>The Kubernetes-event queries are <em>not</em> duplicated: <code>materialize.events.cluster.*</code>
in <code>materialize-events.yaml</code> is already scoped by the same namespace picker and
carries no Materialize-specific filter, so an infrastructure dashboard uses it
as it stands.</p>

<h4 id="infra.logs.stream">infra.logs.stream
  <a class="anchor" href="#infra.logs.stream">#</a>
</h4>
The log feed for the selected namespaces, apps, components, containers
and levels, newest first.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.logs.stream-tabs" id="infra.logs.stream-tab-0" checked>
  <label for="infra.logs.stream-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="infra.logs.warnings.stream">infra.logs.warnings.stream
  <a class="anchor" href="#infra.logs.warnings.stream">#</a>
</h4>
Warning-and-worse lines from the platform, newest first.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.logs.warnings.stream-tabs" id="infra.logs.warnings.stream-tab-0" checked>
  <label for="infra.logs.warnings.stream-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="infra.logs.rate.by_component">infra.logs.rate.by_component
  <a class="anchor" href="#infra.logs.rate.by_component">#</a>
</h4>
Log lines per second by application and sub-component — which process of
which workload is doing the talking.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.logs.rate.by_component-tabs" id="infra.logs.rate.by_component-tab-0" checked>
  <label for="infra.logs.rate.by_component-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="infra.logs.rate.by_namespace">infra.logs.rate.by_namespace
  <a class="anchor" href="#infra.logs.rate.by_namespace">#</a>
</h4>
Log lines per second by namespace — where in the cluster the volume is.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.logs.rate.by_namespace-tabs" id="infra.logs.rate.by_namespace-tab-0" checked>
  <label for="infra.logs.rate.by_namespace-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="infra.logs.warnings.rate">infra.logs.warnings.rate
  <a class="anchor" href="#infra.logs.warnings.rate">#</a>
</h4>
Warning-and-worse lines per minute across the platform, as one series.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.logs.warnings.rate-tabs" id="infra.logs.warnings.rate-tab-0" checked>
  <label for="infra.logs.warnings.rate-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="infra.logs.node.stream">infra.logs.node.stream
  <a class="anchor" href="#infra.logs.node.stream">#</a>
</h4>
The node journal, newest first — <code>kubelet</code>, <code>containerd</code>, the node
problem detector, and the rest of what systemd runs on each node.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.logs.node.stream-tabs" id="infra.logs.node.stream-tab-0" checked>
  <label for="infra.logs.node.stream-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="infra.logs.node.warnings">infra.logs.node.warnings
  <a class="anchor" href="#infra.logs.node.warnings">#</a>
</h4>
Warning-and-worse lines from the node journal.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.logs.node.warnings-tabs" id="infra.logs.node.warnings-tab-0" checked>
  <label for="infra.logs.node.warnings-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="infra.logs.node.rate.by_unit">infra.logs.node.rate.by_unit
  <a class="anchor" href="#infra.logs.node.rate.by_unit">#</a>
</h4>
Node journal lines per second by systemd unit.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.logs.node.rate.by_unit-tabs" id="infra.logs.node.rate.by_unit-tab-0" checked>
  <label for="infra.logs.node.rate.by_unit-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>

## infra-loki

<p>Is the log store healthy — and if not, which half of it broke.</p>
<p>Every other logs query in this repository <em>reads</em> Loki. These watch it. That
makes this file the one place where the monitoring stack is the subject rather
than the instrument, and it changes what a reading means: a blank panel here is
itself a finding, because the thing that would have reported the problem is the
thing that is down.</p>
<p>The audience is whoever operates the monitoring stack. Loki&rsquo;s vocabulary is not
assumed — a <em>stream</em> is one label-set&rsquo;s worth of lines, a <em>chunk</em> is a stream&rsquo;s
lines batched up for storage, and the write path turns the first into the
second before handing it to object storage. Where a panel needs one of those to
be legible, its description says so.</p>
<h2 id="two-unrelated-loki_-metric-families">Two unrelated <code>loki_</code> metric families<a class="anchor" href="#two-unrelated-loki_-metric-families">#</a></h2>
<p>The prefix is shared and the producers are not. Reading one for the other is
the single easiest mistake to make here, and nothing about the metric name
warns you.</p>
<ul>
<li><strong>The log store.</strong> <code>job=~&quot;loki/.*&quot;</code>, and everything this file&rsquo;s panels draw.
391 metric names on a reference install.</li>
<li><strong>Alloy&rsquo;s <code>loki.*</code> components.</strong> <code>job=~&quot;alloy-.*&quot;</code>, 43 names, all under
<code>loki_write_*</code>, <code>loki_source_{file,api,journal}_*</code>, <code>loki_process_*</code> and
<code>loki_relabel_*</code>. These describe the <em>collector</em> — what Alloy read off disk
and shipped — not the store that received it.</li>
</ul>
<p>Only <code>loki_experimental_features_in_use_total</code> is emitted by both.</p>
<p>The two are kept apart by <code>app_instance=&quot;loki&quot;</code>, which both of this chart&rsquo;s
Loki ServiceMonitors stamp on every target they collect and nothing else sets.
A <code>job=~&quot;loki/.*&quot;</code> matcher would work too, but it hardcodes the subchart&rsquo;s
<code>jobPrefix</code>, which is a value an operator may change.</p>
<p>The Alloy-side family belongs to <code>infra-alloy.yaml</code>, which watches the
collectors and is where those metrics are drawn.</p>
<h2 id="scoping">Scoping<a class="anchor" href="#scoping">#</a></h2>
<p>Two variables, both written literally rather than reaching through a render
parameter, on the same precedent as <code>$nodeList</code> in <code>node-health.yaml</code> and
<code>$namespaceList</code> in <code>infra-networking.yaml</code>: a meta-monitoring dashboard&rsquo;s
scope is the monitoring stack&rsquo;s own, which no Materialize-shaped parameter
describes.</p>
<ul>
<li><strong><code>$lokiNamespace</code></strong> — where Loki runs. Every metric query here carries it,
so two <code>materialize-monitoring</code> releases sharing a cluster do not read as
one store.</li>
<li><strong><code>$lokiComponent</code></strong> — which Loki process. Discovered from the <em>metrics</em>
side, off the <code>container</code> label, and applied to the log queries as
<code>component=~&quot;$lokiComponent&quot;</code> as well.</li>
</ul>
<p>One picker across both engines is a deliberate call, because the two label sets
agree by construction: <code>container</code> on a metric and <code>component</code> on a log line
are both the Kubernetes container name. The one value that exists on the
metrics side and not the logs side is <code>exporter</code>, the memcached sidecar, which
produces no log lines at all — so selecting it empties the log feeds, which is
the honest answer rather than a bug.</p>
<h2 id="plaintext-exporters">Plaintext exporters<a class="anchor" href="#plaintext-exporters">#</a></h2>
<p>Three of Loki&rsquo;s targets never serve TLS, whatever Loki itself is configured to
do: the canary&rsquo;s own <code>/metrics</code>, and the two memcached exporters. They are
collected by a separate ServiceMonitor for that reason
(<code>templates/scrapers/monitor-loki-plaintext.yaml</code>), and <code>infra.loki.health.up</code>
is the panel that says whether that split is working. It was not, before this
file existed: under <code>profiles/mtls</code> all three were scraped over HTTPS, failed,
and vanished — taking the end-to-end canary with them.</p>

<h4 id="infra.loki.health.canary.missing">infra.loki.health.canary.missing
  <a class="anchor" href="#infra.loki.health.canary.missing">#</a>
</h4>
Log lines the canary wrote to Loki and then could not read back, per
second.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.loki.health.canary.missing-tabs" id="infra.loki.health.canary.missing-tab-0" checked>
  <label for="infra.loki.health.canary.missing-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    loki_canary_missing_entries_total{
</span></span><span style="display:flex;"><span>      app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.loki.health.canary.entries">infra.loki.health.canary.entries
  <a class="anchor" href="#infra.loki.health.canary.entries">#</a>
</h4>
Log lines per second the canary has written and successfully read back.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.loki.health.canary.entries-tabs" id="infra.loki.health.canary.entries-tab-0" checked>
  <label for="infra.loki.health.canary.entries-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    loki_canary_entries_total{
</span></span><span style="display:flex;"><span>      app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.loki.health.canary.latency">infra.loki.health.canary.latency
  <a class="anchor" href="#infra.loki.health.canary.latency">#</a>
</h4>
How long the canary waited between writing a line and reading it back,
at the median and the 99th percentile.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.loki.health.canary.latency-tabs" id="infra.loki.health.canary.latency-tab-0" checked>
  <label for="infra.loki.health.canary.latency-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#ae81ff">0.50</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>      loki_canary_response_latency_seconds_bucket{
</span></span><span style="display:flex;"><span>        app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>        namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;
</span></span><span style="display:flex;"><span>      }
</span></span><span style="display:flex;"><span>      <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#ae81ff">0.99</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>      loki_canary_response_latency_seconds_bucket{
</span></span><span style="display:flex;"><span>        app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>        namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;
</span></span><span style="display:flex;"><span>      }
</span></span><span style="display:flex;"><span>      <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.loki.health.canary.losses">infra.loki.health.canary.losses
  <a class="anchor" href="#infra.loki.health.canary.losses">#</a>
</h4>
Canary lines that went missing, split by <em>when</em> they went missing.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.loki.health.canary.losses-tabs" id="infra.loki.health.canary.losses-tab-0" checked>
  <label for="infra.loki.health.canary.losses-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    loki_canary_missing_entries_total{
</span></span><span style="display:flex;"><span>      app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    loki_canary_spot_check_missing_entries_total{
</span></span><span style="display:flex;"><span>      app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.loki.health.up">infra.loki.health.up
  <a class="anchor" href="#infra.loki.health.up">#</a>
</h4>
Whether each Loki target is being scraped successfully, one series per
component.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.loki.health.up-tabs" id="infra.loki.health.up-tab-0" checked>
  <label for="infra.loki.health.up-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>container, service<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  up{
</span></span><span style="display:flex;"><span>    app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>    container<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiComponent</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.loki.health.request_errors">infra.loki.health.request_errors
  <a class="anchor" href="#infra.loki.health.request_errors">#</a>
</h4>
The share of Loki API requests returning a 5xx, as a proportion of all
requests.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.loki.health.request_errors-tabs" id="infra.loki.health.request_errors-tab-0" checked>
  <label for="infra.loki.health.request_errors-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    loki_request_duration_seconds_count{
</span></span><span style="display:flex;"><span>      app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      container<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiComponent</span>&#34;,
</span></span><span style="display:flex;"><span>      status_code<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">5..</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">/</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    loki_request_duration_seconds_count{
</span></span><span style="display:flex;"><span>      app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      container<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiComponent</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.loki.health.client_errors">infra.loki.health.client_errors
  <a class="anchor" href="#infra.loki.health.client_errors">#</a>
</h4>
The share of Loki API requests rejected as the caller&rsquo;s fault — a 4xx —
as a proportion of all requests.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.loki.health.client_errors-tabs" id="infra.loki.health.client_errors-tab-0" checked>
  <label for="infra.loki.health.client_errors-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    loki_request_duration_seconds_count{
</span></span><span style="display:flex;"><span>      app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      container<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiComponent</span>&#34;,
</span></span><span style="display:flex;"><span>      status_code<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">4..</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">/</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    loki_request_duration_seconds_count{
</span></span><span style="display:flex;"><span>      app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      container<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiComponent</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.loki.health.request_failures">infra.loki.health.request_failures
  <a class="anchor" href="#infra.loki.health.request_failures">#</a>
</h4>
Requests per second that failed without producing an HTTP status, split
by component.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.loki.health.request_failures-tabs" id="infra.loki.health.request_failures-tab-0" checked>
  <label for="infra.loki.health.request_failures-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>container<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    loki_request_duration_seconds_count{
</span></span><span style="display:flex;"><span>      app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      container<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiComponent</span>&#34;,
</span></span><span style="display:flex;"><span>      status_code<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">error</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.loki.health.request_latency">infra.loki.health.request_latency
  <a class="anchor" href="#infra.loki.health.request_latency">#</a>
</h4>
99th-percentile Loki API latency, split by route.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.loki.health.request_latency-tabs" id="infra.loki.health.request_latency-tab-0" checked>
  <label for="infra.loki.health.request_latency-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#ae81ff">0.99</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le, route<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>      loki_request_duration_seconds_bucket{
</span></span><span style="display:flex;"><span>        app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>        namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>        container<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiComponent</span>&#34;,
</span></span><span style="display:flex;"><span>        route<span style="color:#f92672">!~</span>&#34;<span style="color:#e6db74">(?i).*tail.*|/schedulerpb.SchedulerForQuerier/QuerierLoop</span>&#34;
</span></span><span style="display:flex;"><span>      }
</span></span><span style="display:flex;"><span>      <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.loki.health.restarts">infra.loki.health.restarts
  <a class="anchor" href="#infra.loki.health.restarts">#</a>
</h4>
Container restarts across the Loki components over the dashboard&rsquo;s time
range.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.loki.health.restarts-tabs" id="infra.loki.health.restarts-tab-0" checked>
  <label for="infra.loki.health.restarts-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">increase</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    kube_pod_container_status_restarts_total{
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">loki-.*</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='range' title='range'>[1h]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">&gt;</span> <span style="color:#ae81ff">0</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.loki.write.lines">infra.loki.write.lines
  <a class="anchor" href="#infra.loki.write.lines">#</a>
</h4>
Log lines per second arriving at the distributor — everything the cluster
is sending Loki.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.loki.write.lines-tabs" id="infra.loki.write.lines-tab-0" checked>
  <label for="infra.loki.write.lines-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    loki_distributor_lines_received_total{
</span></span><span style="display:flex;"><span>      app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.loki.write.bytes">infra.loki.write.bytes
  <a class="anchor" href="#infra.loki.write.bytes">#</a>
</h4>
Bytes per second arriving at the distributor, before compression.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.loki.write.bytes-tabs" id="infra.loki.write.bytes-tab-0" checked>
  <label for="infra.loki.write.bytes-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    loki_distributor_bytes_received_total{
</span></span><span style="display:flex;"><span>      app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.loki.write.discarded">infra.loki.write.discarded
  <a class="anchor" href="#infra.loki.write.discarded">#</a>
</h4>
Log lines per second Loki accepted the connection for and then threw
away, split by the reason it gave.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.loki.write.discarded-tabs" id="infra.loki.write.discarded-tab-0" checked>
  <label for="infra.loki.write.discarded-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>reason<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    loki_discarded_samples_total{
</span></span><span style="display:flex;"><span>      app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.loki.write.discarded_bytes">infra.loki.write.discarded_bytes
  <a class="anchor" href="#infra.loki.write.discarded_bytes">#</a>
</h4>
Bytes per second discarded, split by reason — the same losses as the line
panel, weighted by how much was lost.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.loki.write.discarded_bytes-tabs" id="infra.loki.write.discarded_bytes-tab-0" checked>
  <label for="infra.loki.write.discarded_bytes-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>reason<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    loki_discarded_bytes_total{
</span></span><span style="display:flex;"><span>      app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.loki.write.streams">infra.loki.write.streams
  <a class="anchor" href="#infra.loki.write.streams">#</a>
</h4>
Active streams held in memory by the ingesters. A stream is one distinct
label-set — one container&rsquo;s lines at one level, say.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.loki.write.streams-tabs" id="infra.loki.write.streams-tab-0" checked>
  <label for="infra.loki.write.streams-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  loki_ingester_memory_streams{
</span></span><span style="display:flex;"><span>    app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.loki.write.chunks_in_memory">infra.loki.write.chunks_in_memory
  <a class="anchor" href="#infra.loki.write.chunks_in_memory">#</a>
</h4>
Chunks each ingester is holding before flushing them to object storage.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.loki.write.chunks_in_memory-tabs" id="infra.loki.write.chunks_in_memory-tab-0" checked>
  <label for="infra.loki.write.chunks_in_memory-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  loki_ingester_memory_chunks{
</span></span><span style="display:flex;"><span>    app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.loki.write.chunks_flushed">infra.loki.write.chunks_flushed
  <a class="anchor" href="#infra.loki.write.chunks_flushed">#</a>
</h4>
Chunks per second the ingesters have written out to object storage.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.loki.write.chunks_flushed-tabs" id="infra.loki.write.chunks_flushed-tab-0" checked>
  <label for="infra.loki.write.chunks_flushed-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    loki_ingester_chunks_flushed_total{
</span></span><span style="display:flex;"><span>      app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.loki.write.chunk_utilization">infra.loki.write.chunk_utilization
  <a class="anchor" href="#infra.loki.write.chunk_utilization">#</a>
</h4>
How full a chunk was when it was flushed, at the median and 10th
percentile. 1.0 is a chunk closed because it filled up.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.loki.write.chunk_utilization-tabs" id="infra.loki.write.chunk_utilization-tab-0" checked>
  <label for="infra.loki.write.chunk_utilization-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#ae81ff">0.50</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>      loki_ingester_chunk_utilization_bucket{
</span></span><span style="display:flex;"><span>        app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>        namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;
</span></span><span style="display:flex;"><span>      }
</span></span><span style="display:flex;"><span>      <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#ae81ff">0.10</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>      loki_ingester_chunk_utilization_bucket{
</span></span><span style="display:flex;"><span>        app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>        namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;
</span></span><span style="display:flex;"><span>      }
</span></span><span style="display:flex;"><span>      <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.loki.write.chunk_age">infra.loki.write.chunk_age
  <a class="anchor" href="#infra.loki.write.chunk_age">#</a>
</h4>
How old a chunk was when it was flushed, at the median and 99th
percentile.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.loki.write.chunk_age-tabs" id="infra.loki.write.chunk_age-tab-0" checked>
  <label for="infra.loki.write.chunk_age-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#ae81ff">0.50</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>      loki_ingester_chunk_age_seconds_bucket{
</span></span><span style="display:flex;"><span>        app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>        namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;
</span></span><span style="display:flex;"><span>      }
</span></span><span style="display:flex;"><span>      <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#ae81ff">0.99</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>      loki_ingester_chunk_age_seconds_bucket{
</span></span><span style="display:flex;"><span>        app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>        namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;
</span></span><span style="display:flex;"><span>      }
</span></span><span style="display:flex;"><span>      <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.loki.write.wal_disk">infra.loki.write.wal_disk
  <a class="anchor" href="#infra.loki.write.wal_disk">#</a>
</h4>
How much of its write-ahead log volume each ingester has used, as a
percentage.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.loki.write.wal_disk-tabs" id="infra.loki.write.wal_disk-tab-0" checked>
  <label for="infra.loki.write.wal_disk-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  loki_ingester_wal_disk_usage_percent{
</span></span><span style="display:flex;"><span>    app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.loki.write.wal_disk_full">infra.loki.write.wal_disk_full
  <a class="anchor" href="#infra.loki.write.wal_disk_full">#</a>
</h4>
Times an ingester could not write to its write-ahead log because the
volume was full.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.loki.write.wal_disk_full-tabs" id="infra.loki.write.wal_disk_full-tab-0" checked>
  <label for="infra.loki.write.wal_disk_full-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">increase</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    loki_ingester_wal_disk_full_failures_total{
</span></span><span style="display:flex;"><span>      app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='range' title='range'>[1h]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.loki.write.wal_replay">infra.loki.write.wal_replay
  <a class="anchor" href="#infra.loki.write.wal_replay">#</a>
</h4>
Whether an ingester is currently replaying its write-ahead log. 1 means
replaying.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.loki.write.wal_replay-tabs" id="infra.loki.write.wal_replay-tab-0" checked>
  <label for="infra.loki.write.wal_replay-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  loki_ingester_wal_replay_active{
</span></span><span style="display:flex;"><span>    app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.loki.write.push_latency">infra.loki.write.push_latency
  <a class="anchor" href="#infra.loki.write.push_latency">#</a>
</h4>
How long a push request took, at the median and 99th percentile.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.loki.write.push_latency-tabs" id="infra.loki.write.push_latency-tab-0" checked>
  <label for="infra.loki.write.push_latency-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#ae81ff">0.50</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>      loki_request_duration_seconds_bucket{
</span></span><span style="display:flex;"><span>        app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>        namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>        route<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">loki_api_v1_push|api_prom_push|/logproto.Pusher/Push</span>&#34;
</span></span><span style="display:flex;"><span>      }
</span></span><span style="display:flex;"><span>      <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#ae81ff">0.99</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>      loki_request_duration_seconds_bucket{
</span></span><span style="display:flex;"><span>        app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>        namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>        route<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">loki_api_v1_push|api_prom_push|/logproto.Pusher/Push</span>&#34;
</span></span><span style="display:flex;"><span>      }
</span></span><span style="display:flex;"><span>      <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.loki.read.query_rate">infra.loki.read.query_rate
  <a class="anchor" href="#infra.loki.read.query_rate">#</a>
</h4>
Queries per second reaching the query frontend, split by the kind of
request.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.loki.read.query_rate-tabs" id="infra.loki.read.query_rate-tab-0" checked>
  <label for="infra.loki.read.query_rate-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>route<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    loki_request_duration_seconds_count{
</span></span><span style="display:flex;"><span>      app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>      container<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">query-frontend</span>&#34;,
</span></span><span style="display:flex;"><span>      route<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">loki_api_v1_.*</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.loki.read.query_latency">infra.loki.read.query_latency
  <a class="anchor" href="#infra.loki.read.query_latency">#</a>
</h4>
End-to-end query latency at the query frontend, at the median, 90th and
99th percentile.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.loki.read.query_latency-tabs" id="infra.loki.read.query_latency-tab-0" checked>
  <label for="infra.loki.read.query_latency-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#ae81ff">0.50</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>      loki_request_duration_seconds_bucket{
</span></span><span style="display:flex;"><span>        app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>        namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>        container<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">query-frontend</span>&#34;,
</span></span><span style="display:flex;"><span>        route<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">loki_api_v1_.*</span>&#34;,
</span></span><span style="display:flex;"><span>        route<span style="color:#f92672">!~</span>&#34;<span style="color:#e6db74">(?i).*tail.*</span>&#34;
</span></span><span style="display:flex;"><span>      }
</span></span><span style="display:flex;"><span>      <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#ae81ff">0.90</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>      loki_request_duration_seconds_bucket{
</span></span><span style="display:flex;"><span>        app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>        namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>        container<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">query-frontend</span>&#34;,
</span></span><span style="display:flex;"><span>        route<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">loki_api_v1_.*</span>&#34;,
</span></span><span style="display:flex;"><span>        route<span style="color:#f92672">!~</span>&#34;<span style="color:#e6db74">(?i).*tail.*</span>&#34;
</span></span><span style="display:flex;"><span>      }
</span></span><span style="display:flex;"><span>      <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#ae81ff">0.99</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>      loki_request_duration_seconds_bucket{
</span></span><span style="display:flex;"><span>        app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>        namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;,
</span></span><span style="display:flex;"><span>        container<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">query-frontend</span>&#34;,
</span></span><span style="display:flex;"><span>        route<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">loki_api_v1_.*</span>&#34;,
</span></span><span style="display:flex;"><span>        route<span style="color:#f92672">!~</span>&#34;<span style="color:#e6db74">(?i).*tail.*</span>&#34;
</span></span><span style="display:flex;"><span>      }
</span></span><span style="display:flex;"><span>      <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.loki.read.queue_duration">infra.loki.read.queue_duration
  <a class="anchor" href="#infra.loki.read.queue_duration">#</a>
</h4>
How long a query sub-request waited in the scheduler&rsquo;s queue before a
querier picked it up, at the median and 99th percentile.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.loki.read.queue_duration-tabs" id="infra.loki.read.queue_duration-tab-0" checked>
  <label for="infra.loki.read.queue_duration-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#ae81ff">0.50</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>      loki_query_scheduler_queue_duration_seconds_bucket{
</span></span><span style="display:flex;"><span>        app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>        namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;
</span></span><span style="display:flex;"><span>      }
</span></span><span style="display:flex;"><span>      <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#ae81ff">0.99</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>      loki_query_scheduler_queue_duration_seconds_bucket{
</span></span><span style="display:flex;"><span>        app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>        namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;
</span></span><span style="display:flex;"><span>      }
</span></span><span style="display:flex;"><span>      <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.loki.read.queries_in_flight">infra.loki.read.queries_in_flight
  <a class="anchor" href="#infra.loki.read.queries_in_flight">#</a>
</h4>
Queries the frontend is currently working on.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.loki.read.queries_in_flight-tabs" id="infra.loki.read.queries_in_flight-tab-0" checked>
  <label for="infra.loki.read.queries_in_flight-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  loki_query_frontend_queries_in_progress{
</span></span><span style="display:flex;"><span>    app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.loki.read.bytes_processed">infra.loki.read.bytes_processed
  <a class="anchor" href="#infra.loki.read.bytes_processed">#</a>
</h4>
Bytes per second of stored log data the queriers had to decompress and
scan to answer the queries being asked.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.loki.read.bytes_processed-tabs" id="infra.loki.read.bytes_processed-tab-0" checked>
  <label for="infra.loki.read.bytes_processed-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    loki_logql_querystats_bytes_processed_per_seconds_sum{
</span></span><span style="display:flex;"><span>      app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.loki.read.cache_requests">infra.loki.read.cache_requests
  <a class="anchor" href="#infra.loki.read.cache_requests">#</a>
</h4>
Cache lookups per second, split by which cache — chunks, query results
and the index each have their own.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.loki.read.cache_requests-tabs" id="infra.loki.read.cache_requests-tab-0" checked>
  <label for="infra.loki.read.cache_requests-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>name<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    loki_cache_fetched_keys{
</span></span><span style="display:flex;"><span>      app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.loki.read.cache_hit_rate">infra.loki.read.cache_hit_rate
  <a class="anchor" href="#infra.loki.read.cache_hit_rate">#</a>
</h4>
The share of cache lookups that were served from cache, split by which
cache.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.loki.read.cache_hit_rate-tabs" id="infra.loki.read.cache_hit_rate-tab-0" checked>
  <label for="infra.loki.read.cache_hit_rate-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>name<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    loki_cache_hits{
</span></span><span style="display:flex;"><span>      app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">/</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>name<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    loki_cache_fetched_keys{
</span></span><span style="display:flex;"><span>      app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.loki.read.memcached_memory">infra.loki.read.memcached_memory
  <a class="anchor" href="#infra.loki.read.memcached_memory">#</a>
</h4>
How much of its allotted memory each memcached cache is holding, as a
proportion of its limit.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.loki.read.memcached_memory-tabs" id="infra.loki.read.memcached_memory-tab-0" checked>
  <label for="infra.loki.read.memcached_memory-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>service<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  memcached_current_bytes{
</span></span><span style="display:flex;"><span>    app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">/</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>service<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  memcached_limit_bytes{
</span></span><span style="display:flex;"><span>    app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.loki.store.operations">infra.loki.store.operations
  <a class="anchor" href="#infra.loki.store.operations">#</a>
</h4>
Object-storage operations per second, split by kind.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.loki.store.operations-tabs" id="infra.loki.store.operations-tab-0" checked>
  <label for="infra.loki.store.operations-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>operation<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    loki_objstore_bucket_operations_total{
</span></span><span style="display:flex;"><span>      app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.loki.store.failures">infra.loki.store.failures
  <a class="anchor" href="#infra.loki.store.failures">#</a>
</h4>
Object-storage operations per second that failed, split by kind.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.loki.store.failures-tabs" id="infra.loki.store.failures-tab-0" checked>
  <label for="infra.loki.store.failures-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>operation<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    loki_objstore_bucket_operation_failures_total{
</span></span><span style="display:flex;"><span>      app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.loki.store.latency">infra.loki.store.latency
  <a class="anchor" href="#infra.loki.store.latency">#</a>
</h4>
99th-percentile object-storage operation latency, split by kind.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.loki.store.latency-tabs" id="infra.loki.store.latency-tab-0" checked>
  <label for="infra.loki.store.latency-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#ae81ff">0.99</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le, operation<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>      loki_objstore_bucket_operation_duration_seconds_bucket{
</span></span><span style="display:flex;"><span>        app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>        namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;
</span></span><span style="display:flex;"><span>      }
</span></span><span style="display:flex;"><span>      <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.loki.store.index_sync">infra.loki.store.index_sync
  <a class="anchor" href="#infra.loki.store.index_sync">#</a>
</h4>
Index table sync and upload operations per second between the shippers
and object storage.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.loki.store.index_sync-tabs" id="infra.loki.store.index_sync-tab-0" checked>
  <label for="infra.loki.store.index_sync-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    loki_tsdb_shipper_tables_sync_operation_total{
</span></span><span style="display:flex;"><span>      app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    loki_tsdb_shipper_tables_upload_operation_total{
</span></span><span style="display:flex;"><span>      app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.loki.store.index_wait">infra.loki.store.index_wait
  <a class="anchor" href="#infra.loki.store.index_wait">#</a>
</h4>
How long a query waited for an index table to be downloaded before it
could run, at the 99th percentile.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.loki.store.index_wait-tabs" id="infra.loki.store.index_wait-tab-0" checked>
  <label for="infra.loki.store.index_wait-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#ae81ff">0.99</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>      loki_tsdb_shipper_query_wait_time_seconds_bucket{
</span></span><span style="display:flex;"><span>        app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>        namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;
</span></span><span style="display:flex;"><span>      }
</span></span><span style="display:flex;"><span>      <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.loki.store.retention_age">infra.loki.store.retention_age
  <a class="anchor" href="#infra.loki.store.retention_age">#</a>
</h4>
How long ago the compactor last finished applying retention
successfully.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.loki.store.retention_age-tabs" id="infra.loki.store.retention_age-tab-0" checked>
  <label for="infra.loki.store.retention_age-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">time</span><span style="color:#f92672">()</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">-</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  loki_compactor_apply_retention_last_successful_run_timestamp_seconds{
</span></span><span style="display:flex;"><span>    app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.loki.store.compaction_age">infra.loki.store.compaction_age
  <a class="anchor" href="#infra.loki.store.compaction_age">#</a>
</h4>
How long ago the compactor last finished compacting index tables
successfully.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.loki.store.compaction_age-tabs" id="infra.loki.store.compaction_age-tab-0" checked>
  <label for="infra.loki.store.compaction_age-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">time</span><span style="color:#f92672">()</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">-</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  loki_boltdb_shipper_compact_tables_operation_last_successful_run_timestamp_seconds{
</span></span><span style="display:flex;"><span>    app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.loki.store.compaction_runs">infra.loki.store.compaction_runs
  <a class="anchor" href="#infra.loki.store.compaction_runs">#</a>
</h4>
Compactor runs over the dashboard&rsquo;s time range, split by outcome.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.loki.store.compaction_runs-tabs" id="infra.loki.store.compaction_runs-tab-0" checked>
  <label for="infra.loki.store.compaction_runs-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>status<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">increase</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    loki_boltdb_shipper_compact_tables_operation_total{
</span></span><span style="display:flex;"><span>      app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>      namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='range' title='range'>[1h]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.loki.store.deletes_pending">infra.loki.store.deletes_pending
  <a class="anchor" href="#infra.loki.store.deletes_pending">#</a>
</h4>
Delete requests waiting to be processed, and how old the oldest one is.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.loki.store.deletes_pending-tabs" id="infra.loki.store.deletes_pending-tab-0" checked>
  <label for="infra.loki.store.deletes_pending-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  loki_compactor_pending_delete_requests_count{
</span></span><span style="display:flex;"><span>    app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  loki_compactor_oldest_pending_delete_request_age_seconds{
</span></span><span style="display:flex;"><span>    app_instance<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">loki</span>&#34;,
</span></span><span style="display:flex;"><span>    namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$lokiNamespace</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.loki.logs.stream">infra.loki.logs.stream
  <a class="anchor" href="#infra.loki.logs.stream">#</a>
</h4>
Loki&rsquo;s own log feed, newest first, for the selected components and
levels.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.loki.logs.stream-tabs" id="infra.loki.logs.stream-tab-0" checked>
  <label for="infra.loki.logs.stream-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="infra.loki.logs.warnings.stream">infra.loki.logs.warnings.stream
  <a class="anchor" href="#infra.loki.logs.warnings.stream">#</a>
</h4>
Warning-and-worse lines from Loki, newest first.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.loki.logs.warnings.stream-tabs" id="infra.loki.logs.warnings.stream-tab-0" checked>
  <label for="infra.loki.logs.warnings.stream-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="infra.loki.logs.rate.by_component">infra.loki.logs.rate.by_component
  <a class="anchor" href="#infra.loki.logs.rate.by_component">#</a>
</h4>
Loki&rsquo;s own log lines per second, split by component.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.loki.logs.rate.by_component-tabs" id="infra.loki.logs.rate.by_component-tab-0" checked>
  <label for="infra.loki.logs.rate.by_component-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="infra.loki.logs.warnings.rate">infra.loki.logs.warnings.rate
  <a class="anchor" href="#infra.loki.logs.warnings.rate">#</a>
</h4>
Warning-and-worse lines per minute from Loki, across the selected
components.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.loki.logs.warnings.rate-tabs" id="infra.loki.logs.warnings.rate-tab-0" checked>
  <label for="infra.loki.logs.warnings.rate-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>

## infra-networking

<p>How traffic moves through the cluster, and what stops it.</p>
<p>Where <code>infra-nodes</code> asks what one machine is doing, this asks what the
<em>network</em> is doing across all of them: what pods are sending, what Kubernetes
is routing, what the CNI is doing underneath, and which packets a policy
dropped.</p>
<p>Three families meet here, and knowing which is which is most of what makes
this file readable:</p>
<ul>
<li>
<p><strong>cAdvisor</strong> (<code>container_network_*</code>) is the only per-pod view. It is always
present, because the gateway scrapes every kubelet. Note that its series
split in two by whether <code>namespace</code> is set: with a namespace they describe a
pod, and without one they carry <code>id=&quot;/&quot;</code> and describe the <em>node&rsquo;s</em> root
cgroup — every interface on the machine, including the veth of every pod on
it. Panels must pick one and say which.</p>
<p><strong>Host-network pods are excluded from every rollup here, and must be.</strong>
cAdvisor reads a container&rsquo;s counters from its network namespace, and a
host-network pod&rsquo;s namespace is the node&rsquo;s — so such a pod reports all 31 of
a reference node&rsquo;s interfaces rather than its own one, and its &ldquo;pod traffic&rdquo;
is the whole machine&rsquo;s, counting every other pod&rsquo;s veth. Several DaemonSets
do this on every node. Left in, a cluster-wide sum read 27,831 KiB/s against
a true 1,700, and the ten busiest pods were all host-network DaemonSets
reporting their node. <code>%%{excludeHostNetworkPods}</code> is the <code>unless</code> clause
that drops them; it appends to a <code>sum by (namespace, pod)</code> and cannot be a
label matcher, because being host-network is a property of a pod&rsquo;s whole
series set rather than of any one series.</p>
</li>
<li>
<p><strong>kube-state-metrics</strong> (<code>kube_service_*</code>, <code>kube_endpointslice_*</code>,
<code>kube_networkpolicy_*</code>) is the declared intent: what Services exist, what is
behind them, and which policies were written. It says nothing about whether
any of it works.</p>
</li>
<li>
<p><strong>The CNI</strong> is the only family that can say what the dataplane actually did
— which packet a policy dropped, how many addresses are left, whether the
datapath is erroring. It is also the only family that is not guaranteed to
be there, which is why every query reading it is on a row the dashboard
shows only when that vendor was detected. See &ldquo;Dataplane detection&rdquo; below.</p>
</li>
</ul>
<p><code>node_*</code> is a fourth family and deliberately <em>not</em> redefined here:
<code>node-health.yaml</code> and <code>node-debug.yaml</code> already carry it, every one of their
expressions is scoped by <code>instance=~&quot;$nodeList&quot;</code>, and <code>infra-net</code> defines that
variable as a multi-select across the fleet rather than the single address
<code>infra-nodes</code> resolves it to. The same expressions therefore answer for one
node or for all of them depending only on the dashboard that asks.</p>
<h2 id="dataplane-detection">Dataplane detection<a class="anchor" href="#dataplane-detection">#</a></h2>
<p>A cluster&rsquo;s CNI is not something this repository can know: EKS defaults to the
AWS VPC CNI, GKE to Dataplane V2, AKS to Azure CNI powered by Cilium, and a
bring-your-own cluster to anything at all. Rather than ask the operator, the
CNI monitors in <code>packages/prometheus-scrapers/</code> stamp every series they
collect with a <code>network_component</code> label, and the dashboard discovers the
answer with <code>label_values(up{network_component=~&quot;.+&quot;}, network_component)</code>.</p>
<p>That puts the vendor knowledge in the scrape config, where it already had to
live, and leaves the queries below reading ordinary vendor metric names.</p>
<p>Two conventions apply throughout:</p>
<ul>
<li>
<p><strong>Scope literally, not by parameter.</strong> <code>namespace=~&quot;$namespaceList&quot;</code> and
<code>instance=~&quot;$nodeList&quot;</code> are written out, the same way <code>infra-nodes.yaml</code>
writes <code>node=&quot;$node&quot;</code>. A dashboard using these must define the variables; no
render parameter supplies them.</p>
<p><code>$nodeList</code> holds node-exporter <em>addresses</em>, inherited from the node query
families. Nothing here scopes on a <code>node</code> label, which every other family
spells as the Kubernetes <em>name</em> &ndash; the two cannot be filtered by one picker,
and the node-exporter form is the one that buys the 87 vetted expressions in
<code>node-health.yaml</code> and <code>node-debug.yaml</code>.</p>
</li>
<li>
<p><strong>Deduplicate across scrape replicas.</strong> <code>instance</code> is the scrape target, so
a bare <code>sum</code> over an HA kube-state-metrics adds each object once per
replica. Aggregations keep <code>instance</code> in the inner step and collapse it with
an outer <code>max</code>.</p>
</li>
</ul>
<p><code>%%{interval}</code> is the rate window, including its brackets.</p>

<h4 id="infra.net.overview.dataplane">infra.net.overview.dataplane
  <a class="anchor" href="#infra.net.overview.dataplane">#</a>
</h4>
Which networking components this cluster is running, as discovered
rather than configured.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.net.overview.dataplane-tabs" id="infra.net.overview.dataplane-tab-0" checked>
  <label for="infra.net.overview.dataplane-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>network_component<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>up{network_component<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">.+</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.net.overview.throughput">infra.net.overview.throughput
  <a class="anchor" href="#infra.net.overview.throughput">#</a>
</h4>
Total bytes per second in and out of the cluster&rsquo;s pods.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.net.overview.throughput-tabs" id="infra.net.overview.throughput-tab-0" checked>
  <label for="infra.net.overview.throughput-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>container_network_receive_bytes_total{namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$namespaceList</span>&#34;, interface<span style="color:#f92672">!=</span>&#34;<span style="color:#e6db74">lo</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span> <span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">excludeHostNetworkPods</span>}
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>container_network_transmit_bytes_total{namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$namespaceList</span>&#34;, interface<span style="color:#f92672">!=</span>&#34;<span style="color:#e6db74">lo</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span> <span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">excludeHostNetworkPods</span>}
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.net.overview.errors">infra.net.overview.errors
  <a class="anchor" href="#infra.net.overview.errors">#</a>
</h4>
Interface errors and dropped packets across every pod in the cluster.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.net.overview.errors-tabs" id="infra.net.overview.errors-tab-0" checked>
  <label for="infra.net.overview.errors-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>container_network_receive_errors_total{namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$namespaceList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">+</span> <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>container_network_transmit_errors_total{namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$namespaceList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span> <span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">excludeHostNetworkPods</span>}
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>container_network_receive_packets_dropped_total{namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$namespaceList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">+</span> <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>container_network_transmit_packets_dropped_total{namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$namespaceList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span> <span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">excludeHostNetworkPods</span>}
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.net.overview.top_talkers">infra.net.overview.top_talkers
  <a class="anchor" href="#infra.net.overview.top_talkers">#</a>
</h4>
The ten pods moving the most traffic, in and out combined.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.net.overview.top_talkers-tabs" id="infra.net.overview.top_talkers-tab-0" checked>
  <label for="infra.net.overview.top_talkers-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">topk</span><span style="color:#f92672">(</span><span style="color:#ae81ff">10</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>container_network_receive_bytes_total{namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$namespaceList</span>&#34;, interface<span style="color:#f92672">!=</span>&#34;<span style="color:#e6db74">lo</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">+</span> <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>container_network_transmit_bytes_total{namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$namespaceList</span>&#34;, interface<span style="color:#f92672">!=</span>&#34;<span style="color:#e6db74">lo</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span> <span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">excludeHostNetworkPods</span>}
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.net.k8s.throughput.by_namespace">infra.net.k8s.throughput.by_namespace
  <a class="anchor" href="#infra.net.k8s.throughput.by_namespace">#</a>
</h4>
Pod traffic split by namespace, received and transmitted.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.net.k8s.throughput.by_namespace-tabs" id="infra.net.k8s.throughput.by_namespace-tab-0" checked>
  <label for="infra.net.k8s.throughput.by_namespace-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>container_network_receive_bytes_total{namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$namespaceList</span>&#34;, interface<span style="color:#f92672">!=</span>&#34;<span style="color:#e6db74">lo</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span> <span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">excludeHostNetworkPods</span>}
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>container_network_transmit_bytes_total{namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$namespaceList</span>&#34;, interface<span style="color:#f92672">!=</span>&#34;<span style="color:#e6db74">lo</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span> <span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">excludeHostNetworkPods</span>}
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.net.k8s.errors.by_namespace">infra.net.k8s.errors.by_namespace
  <a class="anchor" href="#infra.net.k8s.errors.by_namespace">#</a>
</h4>
Which namespace&rsquo;s pods are losing packets.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.net.k8s.errors.by_namespace-tabs" id="infra.net.k8s.errors.by_namespace-tab-0" checked>
  <label for="infra.net.k8s.errors.by_namespace-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>container_network_receive_errors_total{namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$namespaceList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">+</span> <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>container_network_transmit_errors_total{namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$namespaceList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">+</span> <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>container_network_receive_packets_dropped_total{namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$namespaceList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">+</span> <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>container_network_transmit_packets_dropped_total{namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$namespaceList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span> <span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">excludeHostNetworkPods</span>}
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.net.k8s.services.by_type">infra.net.k8s.services.by_type
  <a class="anchor" href="#infra.net.k8s.services.by_type">#</a>
</h4>
Services in the cluster, by how they are exposed.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.net.k8s.services.by_type-tabs" id="infra.net.k8s.services.by_type-tab-0" checked>
  <label for="infra.net.k8s.services.by_type-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>type<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance, type<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_service_spec_type<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.net.k8s.endpoints.by_namespace">infra.net.k8s.endpoints.by_namespace
  <a class="anchor" href="#infra.net.k8s.endpoints.by_namespace">#</a>
</h4>
How many endpoints back the Services in each namespace.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.net.k8s.endpoints.by_namespace-tabs" id="infra.net.k8s.endpoints.by_namespace-tab-0" checked>
  <label for="infra.net.k8s.endpoints.by_namespace-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance, namespace<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_endpointslice_endpoints{namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$namespaceList</span>&#34;}<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.net.k8s.proxy.sync_latency">infra.net.k8s.proxy.sync_latency
  <a class="anchor" href="#infra.net.k8s.proxy.sync_latency">#</a>
</h4>
How long kube-proxy takes to turn a Service change into rules on the
node.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.net.k8s.proxy.sync_latency-tabs" id="infra.net.k8s.proxy.sync_latency-tab-0" checked>
  <label for="infra.net.k8s.proxy.sync_latency-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span><span style="color:#ae81ff">0.99</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>kubeproxy_sync_proxy_rules_duration_seconds_bucket<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.net.k8s.proxy.programming_latency">infra.net.k8s.proxy.programming_latency
  <a class="anchor" href="#infra.net.k8s.proxy.programming_latency">#</a>
</h4>
End-to-end time from an endpoint changing to the node&rsquo;s rules reflecting
it.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.net.k8s.proxy.programming_latency-tabs" id="infra.net.k8s.proxy.programming_latency-tab-0" checked>
  <label for="infra.net.k8s.proxy.programming_latency-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span><span style="color:#ae81ff">0.99</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>kubeproxy_network_programming_duration_seconds_bucket<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.net.cni.aws.ip_utilization">infra.net.cni.aws.ip_utilization
  <a class="anchor" href="#infra.net.cni.aws.ip_utilization">#</a>
</h4>
How much of each node&rsquo;s pod-IP allowance is in use.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.net.cni.aws.ip_utilization-tabs" id="infra.net.cni.aws.ip_utilization-tab-0" checked>
  <label for="infra.net.cni.aws.ip_utilization-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>awscni_assigned_ip_addresses<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">/</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>awscni_ip_max<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.net.cni.aws.addresses">infra.net.cni.aws.addresses
  <a class="anchor" href="#infra.net.cni.aws.addresses">#</a>
</h4>
Addresses assigned to pods on each node, against the pool the CNI is
holding and the ceiling it cannot pass.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.net.cni.aws.addresses-tabs" id="infra.net.cni.aws.addresses-tab-0" checked>
  <label for="infra.net.cni.aws.addresses-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>awscni_assigned_ip_addresses<span style="color:#f92672">)</span></span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>awscni_total_ip_addresses<span style="color:#f92672">)</span></span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>awscni_ip_max<span style="color:#f92672">)</span></span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.net.cni.aws.enis">infra.net.cni.aws.enis
  <a class="anchor" href="#infra.net.cni.aws.enis">#</a>
</h4>
Network interfaces attached to each node, against the most it can have.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.net.cni.aws.enis-tabs" id="infra.net.cni.aws.enis-tab-0" checked>
  <label for="infra.net.cni.aws.enis-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>awscni_eni_allocated<span style="color:#f92672">)</span></span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>awscni_eni_max<span style="color:#f92672">)</span></span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.net.cni.aws.exhaustion">infra.net.cni.aws.exhaustion
  <a class="anchor" href="#infra.net.cni.aws.exhaustion">#</a>
</h4>
Nodes that have run out of pod addresses outright.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.net.cni.aws.exhaustion-tabs" id="infra.net.cni.aws.exhaustion-tab-0" checked>
  <label for="infra.net.cni.aws.exhaustion-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>awscni_no_available_ip_addresses<span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.net.cni.aws.api_latency">infra.net.cni.aws.api_latency
  <a class="anchor" href="#infra.net.cni.aws.api_latency">#</a>
</h4>
How long the CNI&rsquo;s calls to the EC2 API are taking, by operation.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.net.cni.aws.api_latency-tabs" id="infra.net.cni.aws.api_latency-tab-0" checked>
  <label for="infra.net.cni.aws.api_latency-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>api<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>awscni_aws_api_latency_ms_sum<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">/</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>api<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>awscni_aws_api_latency_ms_count<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.net.cni.cilium.endpoints">infra.net.cni.cilium.endpoints
  <a class="anchor" href="#infra.net.cni.cilium.endpoints">#</a>
</h4>
Cilium endpoints per node, by state. An endpoint is roughly a pod as the
dataplane sees it.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.net.cni.cilium.endpoints-tabs" id="infra.net.cni.cilium.endpoints-tab-0" checked>
  <label for="infra.net.cni.cilium.endpoints-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node, endpoint_state<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>cilium_endpoint_state<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.net.cni.cilium.drops">infra.net.cni.cilium.drops
  <a class="anchor" href="#infra.net.cni.cilium.drops">#</a>
</h4>
Packets the Cilium datapath dropped, by the reason it gives.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.net.cni.cilium.drops-tabs" id="infra.net.cni.cilium.drops-tab-0" checked>
  <label for="infra.net.cni.cilium.drops-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>reason<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>cilium_drop_count_total<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.net.cni.cilium.policy_verdicts">infra.net.cni.cilium.policy_verdicts
  <a class="anchor" href="#infra.net.cni.cilium.policy_verdicts">#</a>
</h4>
Policy decisions the dataplane made, allowed against denied.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.net.cni.cilium.policy_verdicts-tabs" id="infra.net.cni.cilium.policy_verdicts-tab-0" checked>
  <label for="infra.net.cni.cilium.policy_verdicts-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>action<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>cilium_policy_verdict_total<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.net.cni.cilium.bpf_map_pressure">infra.net.cni.cilium.bpf_map_pressure
  <a class="anchor" href="#infra.net.cni.cilium.bpf_map_pressure">#</a>
</h4>
How full Cilium&rsquo;s BPF maps are, as a fraction of their capacity.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.net.cni.cilium.bpf_map_pressure-tabs" id="infra.net.cni.cilium.bpf_map_pressure-tab-0" checked>
  <label for="infra.net.cni.cilium.bpf_map_pressure-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node, map_name<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>cilium_bpf_map_pressure<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.net.cni.cilium.endpoint_regeneration">infra.net.cni.cilium.endpoint_regeneration
  <a class="anchor" href="#infra.net.cni.cilium.endpoint_regeneration">#</a>
</h4>
How long Cilium takes to reprogram an endpoint&rsquo;s datapath, at the 99th
percentile.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.net.cni.cilium.endpoint_regeneration-tabs" id="infra.net.cni.cilium.endpoint_regeneration-tab-0" checked>
  <label for="infra.net.cni.cilium.endpoint_regeneration-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span><span style="color:#ae81ff">0.99</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le, scope<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>cilium_endpoint_regeneration_time_stats_seconds_bucket<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.net.cni.cilium.unreachable">infra.net.cni.cilium.unreachable
  <a class="anchor" href="#infra.net.cni.cilium.unreachable">#</a>
</h4>
Nodes and health endpoints Cilium&rsquo;s own connectivity probes cannot
reach.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.net.cni.cilium.unreachable-tabs" id="infra.net.cni.cilium.unreachable-tab-0" checked>
  <label for="infra.net.cni.cilium.unreachable-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>cilium_unreachable_nodes<span style="color:#f92672">))</span></span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>cilium_unreachable_health_endpoints<span style="color:#f92672">))</span></span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.net.cni.cilium.hubble_flows">infra.net.cni.cilium.hubble_flows
  <a class="anchor" href="#infra.net.cni.cilium.hubble_flows">#</a>
</h4>
Network flows Hubble observed, by verdict.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.net.cni.cilium.hubble_flows-tabs" id="infra.net.cni.cilium.hubble_flows-tab-0" checked>
  <label for="infra.net.cni.cilium.hubble_flows-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>verdict<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>hubble_flows_processed_total<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.net.security.policies.by_namespace">infra.net.security.policies.by_namespace
  <a class="anchor" href="#infra.net.security.policies.by_namespace">#</a>
</h4>
How many NetworkPolicy objects each namespace has.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.net.security.policies.by_namespace-tabs" id="infra.net.security.policies.by_namespace-tab-0" checked>
  <label for="infra.net.security.policies.by_namespace-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">count</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance, namespace<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_networkpolicy_spec_ingress_rules{namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$namespaceList</span>&#34;}<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.net.security.policies.uncovered">infra.net.security.policies.uncovered
  <a class="anchor" href="#infra.net.security.policies.uncovered">#</a>
</h4>
Namespaces that run pods and have no NetworkPolicy.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.net.security.policies.uncovered-tabs" id="infra.net.security.policies.uncovered-tab-0" checked>
  <label for="infra.net.security.policies.uncovered-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">count</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_pod_info{namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$namespaceList</span>&#34;}<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">unless</span> <span style="color:#66d9ef">on</span> <span style="color:#f92672">(</span>namespace<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">count</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_networkpolicy_spec_ingress_rules<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.net.security.policies.rules">infra.net.security.policies.rules
  <a class="anchor" href="#infra.net.security.policies.rules">#</a>
</h4>
Each policy&rsquo;s ingress and egress rule counts, one row per policy.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.net.security.policies.rules-tabs" id="infra.net.security.policies.rules-tab-0" checked>
  <label for="infra.net.security.policies.rules-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, networkpolicy<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_networkpolicy_spec_ingress_rules{namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$namespaceList</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, networkpolicy<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_networkpolicy_spec_egress_rules{namespace<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$namespaceList</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.net.security.drops.aws">infra.net.security.drops.aws
  <a class="anchor" href="#infra.net.security.drops.aws">#</a>
</h4>
Packets the AWS network policy agent dropped for violating a policy.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.net.security.drops.aws-tabs" id="infra.net.security.drops.aws-tab-0" checked>
  <label for="infra.net.security.drops.aws-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>network_policy_drop_count_total<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.net.security.drops.cilium">infra.net.security.drops.cilium
  <a class="anchor" href="#infra.net.security.drops.cilium">#</a>
</h4>
Packets Cilium dropped specifically because a policy denied them.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.net.security.drops.cilium-tabs" id="infra.net.security.drops.cilium-tab-0" checked>
  <label for="infra.net.security.drops.cilium-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>cilium_drop_count_total{reason<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">Policy denied.*</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.net.cloud.load_balancers">infra.net.cloud.load_balancers
  <a class="anchor" href="#infra.net.cloud.load_balancers">#</a>
</h4>
Every Service in the cluster that has a cloud load balancer, and the
address it was given.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.net.cloud.load_balancers-tabs" id="infra.net.cloud.load_balancers-tab-0" checked>
  <label for="infra.net.cloud.load_balancers-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, service, ip, hostname<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_service_status_load_balancer_ingress<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>

## infra-nodes

<p>What <code>kubectl describe node</code> would tell you, for whoever cannot run it.</p>
<p>These answer the questions an operator asks <em>about one machine</em>: what is it,
how big is it, how much of it is already promised, is Kubernetes willing to
put work on it, and what has it been saying. The measurements of what the
machine is actually <em>doing</em> live in <code>node-health.yaml</code> and <code>node-debug.yaml</code>,
which read node-exporter; this file is the Kubernetes side, plus the node&rsquo;s
own journal and the events filed against it.</p>
<p>Two identifier conventions meet here, and the difference is the thing to know:</p>
<ul>
<li>
<p><strong>kube-state-metrics names a node <code>node=&quot;&lt;kubernetes name&gt;&quot;</code>.</strong> Every query
in this file scopes with <code>node=&quot;$node&quot;</code> written literally, the same way the
node-exporter families write <code>instance=~&quot;$nodeList&quot;</code> literally. A dashboard
using either must define the variable; no render parameter supplies it.</p>
</li>
<li>
<p><strong>node-exporter names the same machine <code>instance=&quot;&lt;ip&gt;:9100&quot;</code>.</strong> The join is
<code>node_uname_info</code>, whose <code>nodename</code> is the Kubernetes name — which is what
the <code>$nodeList</code> variable resolves through. Nothing in this file needs the
join, because nothing in this file reads node-exporter.</p>
</li>
</ul>
<p>Loki knows the node a third way: <code>node</code> is <strong>structured metadata</strong> on journal
lines, not a stream label, so it is filtered in the pipeline (<code>| node=...</code>)
rather than in the selector. Node events are Kubernetes events whose involved
object is the node itself, which is <code>kind=&quot;Node&quot;</code> with the node&rsquo;s name.</p>
<p>Two conventions apply to every query here that aggregates:</p>
<ul>
<li>
<p><strong>Deduplicate across kube-state-metrics replicas.</strong> <code>instance</code> is the scrape
target, so a bare <code>sum</code> or <code>count</code> over an HA deployment adds each object
once per replica. Every aggregation keeps <code>instance</code> in the inner step and
collapses it with an outer <code>max</code>, which is the shape
<code>materialize-kubernetes.yaml</code> established. Queries that only ever <code>max</code> are
already safe, since <code>max</code> across identical replicas is idempotent.</p>
</li>
<li>
<p><strong>Terminal pods do not count against the node.</strong> A <code>Succeeded</code> or <code>Failed</code>
pod has released its CPU and memory, and the scheduler no longer counts it
against the pod limit — kube-state-metrics agrees, and stops reporting
<code>kube_pod_container_resource_*</code> for it. But <code>kube_pod_info</code> keeps reporting
it until garbage collection, so anything counting <em>pods</em> rather than their
resources has to subtract them explicitly or it overstates how full the node
is. Completed Jobs are the common case.</p>
</li>
</ul>
<p><code>%%{interval}</code> is the rate window, including its brackets.</p>

<h4 id="infra.nodes.info.kubelet">infra.nodes.info.kubelet
  <a class="anchor" href="#infra.nodes.info.kubelet">#</a>
</h4>
The kubelet version this node runs, which is the version Kubernetes itself is on here.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.nodes.info.kubelet-tabs" id="infra.nodes.info.kubelet-tab-0" checked>
  <label for="infra.nodes.info.kubelet-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node, kubelet_version<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_node_info{node<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">$node</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.nodes.info.os">infra.nodes.info.os
  <a class="anchor" href="#infra.nodes.info.os">#</a>
</h4>
The node&rsquo;s operating system image.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.nodes.info.os-tabs" id="infra.nodes.info.os-tab-0" checked>
  <label for="infra.nodes.info.os-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node, os_image<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_node_info{node<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">$node</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.nodes.info.kernel">infra.nodes.info.kernel
  <a class="anchor" href="#infra.nodes.info.kernel">#</a>
</h4>
The node&rsquo;s kernel version.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.nodes.info.kernel-tabs" id="infra.nodes.info.kernel-tab-0" checked>
  <label for="infra.nodes.info.kernel-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node, kernel_version<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_node_info{node<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">$node</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.nodes.info.runtime">infra.nodes.info.runtime
  <a class="anchor" href="#infra.nodes.info.runtime">#</a>
</h4>
The container runtime that starts and stops containers on this node.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.nodes.info.runtime-tabs" id="infra.nodes.info.runtime-tab-0" checked>
  <label for="infra.nodes.info.runtime-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node, container_runtime_version<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_node_info{node<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">$node</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.nodes.info.address">infra.nodes.info.address
  <a class="anchor" href="#infra.nodes.info.address">#</a>
</h4>
The address the cluster reaches this node on.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.nodes.info.address-tabs" id="infra.nodes.info.address-tab-0" checked>
  <label for="infra.nodes.info.address-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node, internal_ip<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_node_info{node<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">$node</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.nodes.created">infra.nodes.created
  <a class="anchor" href="#infra.nodes.created">#</a>
</h4>
Wall-clock time the node joined the cluster.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.nodes.created-tabs" id="infra.nodes.created-tab-0" checked>
  <label for="infra.nodes.created-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_node_created{node<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">$node</span>&#34;}<span style="color:#f92672">)</span> <span style="color:#f92672">*</span> <span style="color:#ae81ff">1000</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.nodes.capacity.cpu">infra.nodes.capacity.cpu
  <a class="anchor" href="#infra.nodes.capacity.cpu">#</a>
</h4>
Cores the node reports to Kubernetes.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.nodes.capacity.cpu-tabs" id="infra.nodes.capacity.cpu-tab-0" checked>
  <label for="infra.nodes.capacity.cpu-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_node_status_capacity{node<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">$node</span>&#34;, resource<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">cpu</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.nodes.capacity.memory">infra.nodes.capacity.memory
  <a class="anchor" href="#infra.nodes.capacity.memory">#</a>
</h4>
Bytes of RAM the node reports to Kubernetes.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.nodes.capacity.memory-tabs" id="infra.nodes.capacity.memory-tab-0" checked>
  <label for="infra.nodes.capacity.memory-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_node_status_capacity{node<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">$node</span>&#34;, resource<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">memory</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.nodes.capacity.pods">infra.nodes.capacity.pods
  <a class="anchor" href="#infra.nodes.capacity.pods">#</a>
</h4>
The most pods Kubernetes will place on this node.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.nodes.capacity.pods-tabs" id="infra.nodes.capacity.pods-tab-0" checked>
  <label for="infra.nodes.capacity.pods-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_node_status_capacity{node<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">$node</span>&#34;, resource<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">pods</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.nodes.capacity.ephemeral_storage">infra.nodes.capacity.ephemeral_storage
  <a class="anchor" href="#infra.nodes.capacity.ephemeral_storage">#</a>
</h4>
Bytes of node-local disk available to pods for scratch space.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.nodes.capacity.ephemeral_storage-tabs" id="infra.nodes.capacity.ephemeral_storage-tab-0" checked>
  <label for="infra.nodes.capacity.ephemeral_storage-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_node_status_capacity{node<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">$node</span>&#34;, resource<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">ephemeral_storage</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.nodes.allocation.cpu">infra.nodes.allocation.cpu
  <a class="anchor" href="#infra.nodes.allocation.cpu">#</a>
</h4>
Fraction of the node&rsquo;s schedulable CPU already promised to pods through
their requests.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.nodes.allocation.cpu-tabs" id="infra.nodes.allocation.cpu-tab-0" checked>
  <label for="infra.nodes.allocation.cpu-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node, instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    kube_pod_container_resource_requests{node<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">$node</span>&#34;, resource<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">cpu</span>&#34;}
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">/</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_node_status_allocatable{node<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">$node</span>&#34;, resource<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">cpu</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.nodes.allocation.memory">infra.nodes.allocation.memory
  <a class="anchor" href="#infra.nodes.allocation.memory">#</a>
</h4>
Fraction of the node&rsquo;s schedulable memory already promised to pods
through their requests.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.nodes.allocation.memory-tabs" id="infra.nodes.allocation.memory-tab-0" checked>
  <label for="infra.nodes.allocation.memory-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node, instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    kube_pod_container_resource_requests{node<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">$node</span>&#34;, resource<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">memory</span>&#34;}
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">/</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_node_status_allocatable{node<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">$node</span>&#34;, resource<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">memory</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.nodes.allocation.pods">infra.nodes.allocation.pods
  <a class="anchor" href="#infra.nodes.allocation.pods">#</a>
</h4>
Fraction of the node&rsquo;s pod slots in use.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.nodes.allocation.pods-tabs" id="infra.nodes.allocation.pods-tab-0" checked>
  <label for="infra.nodes.allocation.pods-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">count</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node, instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    kube_pod_info{node<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">$node</span>&#34;}
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">unless</span> <span style="color:#66d9ef">on</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_pod_status_phase{phase<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">Succeeded|Failed</span>&#34;} <span style="color:#f92672">==</span> <span style="color:#ae81ff">1</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">/</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_node_status_allocatable{node<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">$node</span>&#34;, resource<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">pods</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.nodes.pods.by_namespace">infra.nodes.pods.by_namespace
  <a class="anchor" href="#infra.nodes.pods.by_namespace">#</a>
</h4>
What is actually running on this node, grouped by namespace.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.nodes.pods.by_namespace-tabs" id="infra.nodes.pods.by_namespace-tab-0" checked>
  <label for="infra.nodes.pods.by_namespace-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">count</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    kube_pod_info{node<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">$node</span>&#34;}
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">unless</span> <span style="color:#66d9ef">on</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_pod_status_phase{phase<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">Succeeded|Failed</span>&#34;} <span style="color:#f92672">==</span> <span style="color:#ae81ff">1</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.nodes.condition.ready">infra.nodes.condition.ready
  <a class="anchor" href="#infra.nodes.condition.ready">#</a>
</h4>
Whether Kubernetes considers the node healthy enough to run work.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.nodes.condition.ready-tabs" id="infra.nodes.condition.ready-tab-0" checked>
  <label for="infra.nodes.condition.ready-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_node_status_condition{node<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">$node</span>&#34;, condition<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">Ready</span>&#34;, status<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">true</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.nodes.conditions">infra.nodes.conditions
  <a class="anchor" href="#infra.nodes.conditions">#</a>
</h4>
The node&rsquo;s pressure and availability conditions — memory, disk, PIDs and
network — each 1 when the condition is active.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.nodes.conditions-tabs" id="infra.nodes.conditions-tab-0" checked>
  <label for="infra.nodes.conditions-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node, condition<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  kube_node_status_condition{
</span></span><span style="display:flex;"><span>    node<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">$node</span>&#34;,
</span></span><span style="display:flex;"><span>    condition<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">MemoryPressure|DiskPressure|PIDPressure|NetworkUnavailable</span>&#34;,
</span></span><span style="display:flex;"><span>    status<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">true</span>&#34;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.nodes.unschedulable">infra.nodes.unschedulable
  <a class="anchor" href="#infra.nodes.unschedulable">#</a>
</h4>
Whether the node has been cordoned against new work.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.nodes.unschedulable-tabs" id="infra.nodes.unschedulable-tab-0" checked>
  <label for="infra.nodes.unschedulable-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_node_spec_unschedulable{node<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">$node</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.nodes.taints">infra.nodes.taints
  <a class="anchor" href="#infra.nodes.taints">#</a>
</h4>
The taints on this node, which restrict what may be scheduled.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.nodes.taints-tabs" id="infra.nodes.taints-tab-0" checked>
  <label for="infra.nodes.taints-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>node, key, value, effect<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_node_spec_taint{node<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">$node</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.nodes.pods.by_phase">infra.nodes.pods.by_phase
  <a class="anchor" href="#infra.nodes.pods.by_phase">#</a>
</h4>
Pods on this node, counted by lifecycle phase.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.nodes.pods.by_phase-tabs" id="infra.nodes.pods.by_phase-tab-0" checked>
  <label for="infra.nodes.pods.by_phase-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>phase<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">count</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>phase, instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    kube_pod_status_phase <span style="color:#f92672">==</span> <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">and</span> <span style="color:#66d9ef">on</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> kube_pod_info{node<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">$node</span>&#34;}
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.nodes.pods.not_ready">infra.nodes.pods.not_ready
  <a class="anchor" href="#infra.nodes.pods.not_ready">#</a>
</h4>
Pods on this node that are not reporting Ready.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.nodes.pods.not_ready-tabs" id="infra.nodes.pods.not_ready-tab-0" checked>
  <label for="infra.nodes.pods.not_ready-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  kube_pod_status_ready{condition<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">true</span>&#34;}
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">and</span> <span style="color:#66d9ef">on</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> kube_pod_info{node<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">$node</span>&#34;}
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">==</span> <span style="color:#ae81ff">0</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">unless</span> <span style="color:#66d9ef">on</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>kube_pod_status_phase{phase<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">Succeeded</span>&#34;} <span style="color:#f92672">==</span> <span style="color:#ae81ff">1</span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.nodes.pods.restarts">infra.nodes.pods.restarts
  <a class="anchor" href="#infra.nodes.pods.restarts">#</a>
</h4>
Container restarts for pods on this node.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.nodes.pods.restarts-tabs" id="infra.nodes.pods.restarts-tab-0" checked>
  <label for="infra.nodes.pods.restarts-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod, instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    kube_pod_container_status_restarts_total
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">and</span> <span style="color:#66d9ef">on</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> kube_pod_info{node<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">$node</span>&#34;}
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.nodes.pods.budgets">infra.nodes.pods.budgets
  <a class="anchor" href="#infra.nodes.pods.budgets">#</a>
</h4>
What each pod on this node reserved and what it is capped at — CPU and
memory, requests beside limits.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.nodes.pods.budgets-tabs" id="infra.nodes.pods.budgets-tab-0" checked>
  <label for="infra.nodes.pods.budgets-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod, instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    kube_pod_container_resource_requests{node<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">$node</span>&#34;, resource<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">cpu</span>&#34;}
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod, instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    kube_pod_container_resource_limits{node<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">$node</span>&#34;, resource<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">cpu</span>&#34;}
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod, instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    kube_pod_container_resource_requests{node<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">$node</span>&#34;, resource<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">memory</span>&#34;}
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod, instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    kube_pod_container_resource_limits{node<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">$node</span>&#34;, resource<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">memory</span>&#34;}
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="infra.nodes.journal.rate.by_unit">infra.nodes.journal.rate.by_unit
  <a class="anchor" href="#infra.nodes.journal.rate.by_unit">#</a>
</h4>
Journal lines per second from this node, split by systemd unit.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.nodes.journal.rate.by_unit-tabs" id="infra.nodes.journal.rate.by_unit-tab-0" checked>
  <label for="infra.nodes.journal.rate.by_unit-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="infra.nodes.journal.warnings">infra.nodes.journal.warnings
  <a class="anchor" href="#infra.nodes.journal.warnings">#</a>
</h4>
Warning-and-worse journal lines from this node.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.nodes.journal.warnings-tabs" id="infra.nodes.journal.warnings-tab-0" checked>
  <label for="infra.nodes.journal.warnings-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="infra.nodes.journal.stream">infra.nodes.journal.stream
  <a class="anchor" href="#infra.nodes.journal.stream">#</a>
</h4>
The systemd journal from this node, newest first.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.nodes.journal.stream-tabs" id="infra.nodes.journal.stream-tab-0" checked>
  <label for="infra.nodes.journal.stream-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="infra.nodes.events.rate.by_reason">infra.nodes.events.rate.by_reason
  <a class="anchor" href="#infra.nodes.events.rate.by_reason">#</a>
</h4>
Kubernetes events filed against this node, by reason.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.nodes.events.rate.by_reason-tabs" id="infra.nodes.events.rate.by_reason-tab-0" checked>
  <label for="infra.nodes.events.rate.by_reason-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="infra.nodes.events.stream">infra.nodes.events.stream
  <a class="anchor" href="#infra.nodes.events.stream">#</a>
</h4>
Kubernetes events filed against this node, newest first.
<div class="book-tabs">
  <input type="radio" class="toggle" name="infra.nodes.events.stream-tabs" id="infra.nodes.events.stream-tab-0" checked>
  <label for="infra.nodes.events.stream-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>

## materialize-clusters

Inventory and sizing of a Materialize deployment&rsquo;s clusters and replicas.
Adapted from the Overview dashboard&rsquo;s &ldquo;Cluster Objects / Replicas&rdquo; tab.
<h4 id="materialize.clusters.count">materialize.clusters.count
  <a class="anchor" href="#materialize.clusters.count">#</a>
</h4>
How many clusters exist, split into the Materialize-managed system
clusters (mz_catalog_server, mz_system, mz_probe, …) that every
environment has and the user clusters you created. The gap between the
two is your own footprint.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.clusters.count-tabs" id="materialize.clusters.count-tab-0" checked>
  <label for="materialize.clusters.count-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">count</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">group</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>compute_cluster_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='mzSqlPrefix' title='mzSqlPrefix'>mz_</span>compute_cluster_status{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, compute_cluster_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">count</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">group</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>compute_cluster_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='mzSqlPrefix' title='mzSqlPrefix'>mz_</span>compute_cluster_status{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, compute_cluster_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;, compute_cluster_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span style="color:#e6db74">^s.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.clusters.count-tabs" id="materialize.clusters.count-tab-1">
  <label for="materialize.clusters.count-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span>count_not_null<span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">avg</span><span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzSqlPrefix</span>}compute_cluster_status{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, compute_cluster_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">compute_cluster_id</span>}
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span>count_not_null<span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">avg</span><span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzSqlPrefix</span>}compute_cluster_status{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, compute_cluster_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}, compute_cluster_id<span style="color:#960050;background-color:#1e0010">:s</span><span style="color:#f92672">*</span><span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">compute_cluster_id</span>}
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.clusters.replicas.count">materialize.clusters.replicas.count
  <a class="anchor" href="#materialize.clusters.replicas.count">#</a>
</h4>
How many replicas back the selected clusters, and how many of those are
redundancy beyond the first. Every cluster needs one replica to run;
anything above that is capacity or availability headroom you&rsquo;ve opted
into, so a non-zero &ldquo;additional&rdquo; count is the quick check that HA is
actually configured where you expect it.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.clusters.replicas.count-tabs" id="materialize.clusters.replicas.count-tab-0" checked>
  <label for="materialize.clusters.replicas.count-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">count</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">group</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>compute_cluster_id, compute_replica_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='mzSqlPrefix' title='mzSqlPrefix'>mz_</span>compute_cluster_status{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, compute_cluster_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;, compute_replica_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzReplicaList' title='mzReplicaList'>.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">count</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">group</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>compute_cluster_id, compute_replica_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='mzSqlPrefix' title='mzSqlPrefix'>mz_</span>compute_cluster_status{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, compute_cluster_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;, compute_replica_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzReplicaList' title='mzReplicaList'>.*</span>&#34;, compute_replica_name<span style="color:#f92672">!=</span>&#34;<span style="color:#e6db74">r1</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.clusters.replicas.count-tabs" id="materialize.clusters.replicas.count-tab-1">
  <label for="materialize.clusters.replicas.count-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span>count_not_null<span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">avg</span><span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzSqlPrefix</span>}compute_cluster_status{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, compute_cluster_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}, compute_replica_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzReplicaList</span>}<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">compute_cluster_id</span>,<span style="color:#960050;background-color:#1e0010">compute_replica_id</span>}
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span>default_zero<span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  count_not_null<span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">avg</span><span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzSqlPrefix</span>}compute_cluster_status{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, compute_cluster_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}, compute_replica_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzReplicaList</span>}, <span style="color:#960050;background-color:#1e0010">!</span>compute_replica_name<span style="color:#960050;background-color:#1e0010">:</span>r1<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">compute_cluster_id</span>,<span style="color:#960050;background-color:#1e0010">compute_replica_id</span>}
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.clusters.replicas.sizes">materialize.clusters.replicas.sizes
  <a class="anchor" href="#materialize.clusters.replicas.sizes">#</a>
</h4>
The replica fleet grouped by configured size. Most deployments settle
on a handful of sizes; a long tail of one-off sizes usually means an
experiment or a half-finished migration. The total agrees with the
replica count.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.clusters.replicas.sizes-tabs" id="materialize.clusters.replicas.sizes-tab-0" checked>
  <label for="materialize.clusters.replicas.sizes-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">count</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>size<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='mzSqlPrefix' title='mzSqlPrefix'>mz_</span>compute_cluster_status{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, compute_cluster_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;, compute_replica_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzReplicaList' title='mzReplicaList'>.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.clusters.replicas.sizes-tabs" id="materialize.clusters.replicas.sizes-tab-1">
  <label for="materialize.clusters.replicas.sizes-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzSqlPrefix</span>}compute_cluster_status{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, compute_cluster_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}, compute_replica_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzReplicaList</span>}<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">size</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.clusters.info">materialize.clusters.info
  <a class="anchor" href="#materialize.clusters.info">#</a>
</h4>
A reference row per (cluster, replica): ids, names, size, version, and
scheduling metadata. The &ldquo;what does my fleet actually look like&rdquo; lookup
— most useful for grabbing a cluster or replica id to scope the rest of
a dashboard to.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.clusters.info-tabs" id="materialize.clusters.info-tab-0" checked>
  <label for="materialize.clusters.info-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='mzSqlPrefix' title='mzSqlPrefix'>mz_</span>compute_cluster_status{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, compute_cluster_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;, compute_replica_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzReplicaList' title='mzReplicaList'>.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.clusters.info-tabs" id="materialize.clusters.info-tab-1">
  <label for="materialize.clusters.info-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">avg</span><span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzSqlPrefix</span>}compute_cluster_status{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, compute_cluster_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}, compute_replica_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzReplicaList</span>}<span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">compute_cluster_id</span>,<span style="color:#960050;background-color:#1e0010">compute_cluster_name</span>,<span style="color:#960050;background-color:#1e0010">compute_replica_id</span>,<span style="color:#960050;background-color:#1e0010">compute_replica_name</span>,<span style="color:#960050;background-color:#1e0010">size</span>,<span style="color:#960050;background-color:#1e0010">mz_version</span>}
</span></span></code></pre></div>
  </div>
</div>

## materialize-compute

Queries for the compute side of a Materialize deployment — the indexes,
materialized views, and subscribes that run as dataflows on cluster replicas,
plus their freshness, hydration, and resource footprint.
<h4 id="materialize.compute.materialized_views.count">materialize.compute.materialized_views.count
  <a class="anchor" href="#materialize.compute.materialized_views.count">#</a>
</h4>
Materialized views Materialize is actively maintaining. Each one is a
query whose result is kept continuously up to date, so this tracks
roughly how much standing compute the environment carries.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.compute.materialized_views.count-tabs" id="materialize.compute.materialized_views.count-tab-0" checked>
  <label for="materialize.compute.materialized_views.count-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#f92672">(</span><span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='mzSqlPrefix' title='mzSqlPrefix'>mz_</span>mzd_views_count{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.compute.materialized_views.count-tabs" id="materialize.compute.materialized_views.count-tab-1">
  <label for="materialize.compute.materialized_views.count-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzSqlPrefix</span>}mzd_views_count{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}<span style="color:#960050;background-color:#1e0010">}</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.compute.indexes.count">materialize.compute.indexes.count
  <a class="anchor" href="#materialize.compute.indexes.count">#</a>
</h4>
Indexes in the catalog. An index is an in-memory arrangement that makes
reads against its relation effectively instant, in exchange for memory —
so growth here is a leading indicator of cluster memory growth.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.compute.indexes.count-tabs" id="materialize.compute.indexes.count-tab-0" checked>
  <label for="materialize.compute.indexes.count-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#f92672">(</span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='mzSqlPrefix' title='mzSqlPrefix'>mz_</span>indexes_count{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.compute.indexes.count-tabs" id="materialize.compute.indexes.count-tab-1">
  <label for="materialize.compute.indexes.count-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span>default_zero<span style="color:#f92672">(</span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzSqlPrefix</span>}indexes_count{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.compute.views.count">materialize.compute.views.count
  <a class="anchor" href="#materialize.compute.views.count">#</a>
</h4>
Non-materialized views — query templates evaluated on demand. They cost
nothing until something reads them, so this is a catalog-shape signal
rather than a load one.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.compute.views.count-tabs" id="materialize.compute.views.count-tab-0" checked>
  <label for="materialize.compute.views.count-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#f92672">(</span><span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='mzSqlPrefix' title='mzSqlPrefix'>mz_</span>views_count{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.compute.views.count-tabs" id="materialize.compute.views.count-tab-1">
  <label for="materialize.compute.views.count-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzSqlPrefix</span>}views_count{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}<span style="color:#960050;background-color:#1e0010">}</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.compute.subscribes.active">materialize.compute.subscribes.active
  <a class="anchor" href="#materialize.compute.subscribes.active">#</a>
</h4>
Live SUBSCRIBE sessions — long-running queries that stream updates to a
client as data changes. A handful of <code>system</code> subscribes are
Materialize&rsquo;s own internal probes; a persistently climbing <code>user</code> count
usually means a client is opening subscribes and never closing them.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.compute.subscribes.active-tabs" id="materialize.compute.subscribes.active-tab-0" checked>
  <label for="materialize.compute.subscribes.active-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>session_type<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>mz_active_subscribes{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.compute.subscribes.active-tabs" id="materialize.compute.subscribes.active-tab-1">
  <label for="materialize.compute.subscribes.active-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>mz_active_subscribes{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">session_type</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.compute.indexes.by_type">materialize.compute.indexes.by_type
  <a class="anchor" href="#materialize.compute.indexes.by_type">#</a>
</h4>
Indexes split by the kind of relation they sit on. Workloads normally
lean heavily on indexes over views (the standard &ldquo;keep a query&rsquo;s result
hot&rdquo; pattern); a large share of indexes on base tables is unusual and
usually worth a second look.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.compute.indexes.by_type-tabs" id="materialize.compute.indexes.by_type-tab-0" checked>
  <label for="materialize.compute.indexes.by_type-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>relation_type<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='mzSqlPrefix' title='mzSqlPrefix'>mz_</span>indexes_count{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.compute.indexes.by_type-tabs" id="materialize.compute.indexes.by_type-tab-1">
  <label for="materialize.compute.indexes.by_type-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzSqlPrefix</span>}indexes_count{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">relation_type</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.compute.hydration.currently_hydrating">materialize.compute.hydration.currently_hydrating
  <a class="anchor" href="#materialize.compute.hydration.currently_hydrating">#</a>
</h4>
Objects still rebuilding their in-memory state — a live
hydration-queue proxy. After a restart, replica creation, or some DDL, a
dataflow has to rebuild from persisted storage before it can serve, and
until it does it produces no results.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.compute.hydration.currently_hydrating-tabs" id="materialize.compute.hydration.currently_hydrating-tab-0" checked>
  <label for="materialize.compute.hydration.currently_hydrating-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">count</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance_id, collection_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    mz_dataflow_wallclock_lag_seconds{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, instance_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;, instance_id<span style="color:#f92672">!=</span>&#34;&#34;, <span style="color:#66d9ef">quantile</span><span style="color:#960050;background-color:#1e0010">=</span>&#34;<span style="color:#e6db74">1</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#f92672">&gt;</span> <span style="color:#ae81ff">1</span>e15
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.compute.hydration.currently_hydrating-tabs" id="materialize.compute.hydration.currently_hydrating-tab-1">
  <label for="materialize.compute.hydration.currently_hydrating-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span>default_zero<span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  count_not_null<span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>mz_dataflow_wallclock_lag_seconds{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, instance_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}, <span style="color:#66d9ef">quantile</span><span style="color:#960050;background-color:#1e0010">:</span><span style="color:#ae81ff">1</span><span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance_id</span>,<span style="color:#960050;background-color:#1e0010">collection_id</span>}
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.compute.hydration.queue_size">materialize.compute.hydration.queue_size
  <a class="anchor" href="#materialize.compute.hydration.queue_size">#</a>
</h4>
Objects waiting in each replica&rsquo;s hydration queue. environmentd
schedules hydration in batches; a backlog means work is arriving faster
than the replica can rebuild it.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.compute.hydration.queue_size-tabs" id="materialize.compute.hydration.queue_size-tab-0" checked>
  <label for="materialize.compute.hydration.queue_size-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance_id, replica_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  mz_compute_controller_hydration_queue_size{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, instance_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;, replica_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzReplicaList' title='mzReplicaList'>.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">&gt;</span> <span style="color:#ae81ff">0</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.compute.hydration.queue_size-tabs" id="materialize.compute.hydration.queue_size-tab-1">
  <label for="materialize.compute.hydration.queue_size-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>mz_compute_controller_hydration_queue_size{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, instance_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}, replica_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzReplicaList</span>}<span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance_id</span>,<span style="color:#960050;background-color:#1e0010">replica_id</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.compute.hydration.slowest_collections">materialize.compute.hydration.slowest_collections
  <a class="anchor" href="#materialize.compute.hydration.slowest_collections">#</a>
</h4>
The 15 objects that took longest to finish hydrating. Hydration time
scales with the size of the state being rebuilt, so large materialized
views and indexes naturally top the list.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.compute.hydration.slowest_collections-tabs" id="materialize.compute.hydration.slowest_collections-tab-0" checked>
  <label for="materialize.compute.hydration.slowest_collections-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">topk</span><span style="color:#f92672">(</span><span style="color:#ae81ff">15</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='mzSqlPrefix' title='mzSqlPrefix'>mz_</span>compute_hydration_time_seconds{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, instance_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;, replica_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzReplicaList' title='mzReplicaList'>.*</span>&#34;, hydrated<span style="color:#960050;background-color:#1e0010">=</span>&#34;<span style="color:#e6db74">1</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.compute.hydration.slowest_collections-tabs" id="materialize.compute.hydration.slowest_collections-tab-1">
  <label for="materialize.compute.hydration.slowest_collections-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span>top<span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzSqlPrefix</span>}compute_hydration_time_seconds{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, instance_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}, replica_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzReplicaList</span>}, hydrated<span style="color:#960050;background-color:#1e0010">:</span><span style="color:#ae81ff">1</span><span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance_id</span>,<span style="color:#960050;background-color:#1e0010">collection_id</span>},
</span></span><span style="display:flex;"><span>  <span style="color:#ae81ff">15</span>, &#39;<span style="color:#e6db74">max</span>&#39;, &#39;<span style="color:#e6db74">desc</span>&#39;
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.compute.freshness.lag_by_cluster">materialize.compute.freshness.lag_by_cluster
  <a class="anchor" href="#materialize.compute.freshness.lag_by_cluster">#</a>
</h4>
How far behind real time each cluster&rsquo;s least fresh object is — the
worst-case freshness across every index, materialized view, and source
on the cluster.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.compute.freshness.lag_by_cluster-tabs" id="materialize.compute.freshness.lag_by_cluster-tab-0" checked>
  <label for="materialize.compute.freshness.lag_by_cluster-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  mz_dataflow_wallclock_lag_seconds{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, instance_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;, instance_id<span style="color:#f92672">!=</span>&#34;&#34;, <span style="color:#66d9ef">quantile</span><span style="color:#960050;background-color:#1e0010">=</span>&#34;<span style="color:#e6db74">1</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#f92672">&lt;</span> <span style="color:#ae81ff">1</span>e9
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.compute.freshness.lag_by_cluster-tabs" id="materialize.compute.freshness.lag_by_cluster-tab-1">
  <label for="materialize.compute.freshness.lag_by_cluster-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>mz_dataflow_wallclock_lag_seconds{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, instance_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}, <span style="color:#66d9ef">quantile</span><span style="color:#960050;background-color:#1e0010">:</span><span style="color:#ae81ff">1</span><span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance_id</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.compute.freshness.lag_total_by_cluster">materialize.compute.freshness.lag_total_by_cluster
  <a class="anchor" href="#materialize.compute.freshness.lag_total_by_cluster">#</a>
</h4>
The freshness of every object on each cluster, added together — one
number for how far behind the cluster is in total.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.compute.freshness.lag_total_by_cluster-tabs" id="materialize.compute.freshness.lag_total_by_cluster-tab-0" checked>
  <label for="materialize.compute.freshness.lag_total_by_cluster-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance_id, collection_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    mz_dataflow_wallclock_lag_seconds{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, instance_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;, instance_id<span style="color:#f92672">!=</span>&#34;&#34;, <span style="color:#66d9ef">quantile</span><span style="color:#960050;background-color:#1e0010">=</span>&#34;<span style="color:#e6db74">1</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#f92672">&lt;</span> <span style="color:#ae81ff">1</span>e9
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.compute.freshness.lag_total_by_cluster-tabs" id="materialize.compute.freshness.lag_total_by_cluster-tab-1">
  <label for="materialize.compute.freshness.lag_total_by_cluster-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>mz_dataflow_wallclock_lag_seconds{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, instance_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}, <span style="color:#66d9ef">quantile</span><span style="color:#960050;background-color:#1e0010">:</span><span style="color:#ae81ff">1</span><span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance_id</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.compute.freshness.top_collections">materialize.compute.freshness.top_collections
  <a class="anchor" href="#materialize.compute.freshness.top_collections">#</a>
</h4>
The 15 objects whose results are furthest behind real time —
the per-object breakdown behind <em>Worst Freshness by Cluster</em>,
labeled by object name.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.compute.freshness.top_collections-tabs" id="materialize.compute.freshness.top_collections-tab-0" checked>
  <label for="materialize.compute.freshness.top_collections-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">topk</span><span style="color:#f92672">(</span><span style="color:#ae81ff">15</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance_id, collection_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    mz_dataflow_wallclock_lag_seconds{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, instance_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;, instance_id<span style="color:#f92672">!=</span>&#34;&#34;, replica_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzReplicaList' title='mzReplicaList'>.*</span>&#34;, <span style="color:#66d9ef">quantile</span><span style="color:#960050;background-color:#1e0010">=</span>&#34;<span style="color:#e6db74">1</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#f92672">&lt;</span> <span style="color:#ae81ff">1</span>e9
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.compute.freshness.top_collections-tabs" id="materialize.compute.freshness.top_collections-tab-1">
  <label for="materialize.compute.freshness.top_collections-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span>top<span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>mz_dataflow_wallclock_lag_seconds{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, instance_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}, replica_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzReplicaList</span>}, <span style="color:#66d9ef">quantile</span><span style="color:#960050;background-color:#1e0010">:</span><span style="color:#ae81ff">1</span><span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance_id</span>,<span style="color:#960050;background-color:#1e0010">collection_id</span>},
</span></span><span style="display:flex;"><span>  <span style="color:#ae81ff">15</span>, &#39;<span style="color:#e6db74">max</span>&#39;, &#39;<span style="color:#e6db74">desc</span>&#39;
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.compute.dataflows.count">materialize.compute.dataflows.count
  <a class="anchor" href="#materialize.compute.dataflows.count">#</a>
</h4>
Active dataflows on each replica. Every index, materialized view, and
live SUBSCRIBE runs as one or more dataflows, so this count rises with
DDL and subscribe activity.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.compute.dataflows.count-tabs" id="materialize.compute.dataflows.count-tab-0" checked>
  <label for="materialize.compute.dataflows.count-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>cluster_environmentd_materialize_cloud_cluster_id, cluster_environmentd_materialize_cloud_replica_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  mz_compute_replica_history_dataflow_count{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzReplicaList' title='mzReplicaList'>.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.compute.dataflows.count-tabs" id="materialize.compute.dataflows.count-tab-1">
  <label for="materialize.compute.dataflows.count-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>mz_compute_replica_history_dataflow_count{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzReplicaList</span>}<span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">cluster_environmentd_materialize_cloud_cluster_id</span>,<span style="color:#960050;background-color:#1e0010">cluster_environmentd_materialize_cloud_replica_id</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.compute.dataflows.count_by_worker">materialize.compute.dataflows.count_by_worker
  <a class="anchor" href="#materialize.compute.dataflows.count_by_worker">#</a>
</h4>
The dataflow count broken out per worker. Workers in a replica run in
lockstep and should see exactly the same dataflows, so their series
should overlap perfectly.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.compute.dataflows.count_by_worker-tabs" id="materialize.compute.dataflows.count_by_worker-tab-0" checked>
  <label for="materialize.compute.dataflows.count_by_worker-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>cluster_environmentd_materialize_cloud_cluster_id, cluster_environmentd_materialize_cloud_replica_id, worker_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  mz_compute_replica_history_dataflow_count{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzReplicaList' title='mzReplicaList'>.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.compute.dataflows.count_by_worker-tabs" id="materialize.compute.dataflows.count_by_worker-tab-1">
  <label for="materialize.compute.dataflows.count_by_worker-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>mz_compute_replica_history_dataflow_count{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzReplicaList</span>}<span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">cluster_environmentd_materialize_cloud_cluster_id</span>,<span style="color:#960050;background-color:#1e0010">cluster_environmentd_materialize_cloud_replica_id</span>,<span style="color:#960050;background-color:#1e0010">worker_id</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.compute.dataflows.elapsed_rate">materialize.compute.dataflows.elapsed_rate
  <a class="anchor" href="#materialize.compute.dataflows.elapsed_rate">#</a>
</h4>
CPU-cores busy inside dataflows, per cluster — the whole of dataflow
work: arrangement maintenance, query evaluation, and hydration. Capped
by cluster size (a 400cc cluster can&rsquo;t exceed 400 cores).
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.compute.dataflows.elapsed_rate-tabs" id="materialize.compute.dataflows.elapsed_rate-tab-0" checked>
  <label for="materialize.compute.dataflows.elapsed_rate-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">without</span> <span style="color:#f92672">(</span>job<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='mzSqlPrefix' title='mzSqlPrefix'>mz_</span>dataflow_elapsed_seconds_total{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, instance_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;, replica_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzReplicaList' title='mzReplicaList'>.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">))</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.compute.dataflows.elapsed_rate-tabs" id="materialize.compute.dataflows.elapsed_rate-tab-1">
  <label for="materialize.compute.dataflows.elapsed_rate-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzSqlPrefix</span>}dataflow_elapsed_seconds_total{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, instance_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}, replica_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzReplicaList</span>}<span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance_id</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.compute.arrangements.maintenance_rate">materialize.compute.arrangements.maintenance_rate
  <a class="anchor" href="#materialize.compute.arrangements.maintenance_rate">#</a>
</h4>
CPU-cores spent maintaining arrangements — the in-memory indexed
snapshots behind every index and materialized view — summed across a
replica&rsquo;s workers, so an N-worker replica can reach N.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.compute.arrangements.maintenance_rate-tabs" id="materialize.compute.arrangements.maintenance_rate-tab-0" checked>
  <label for="materialize.compute.arrangements.maintenance_rate-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>cluster_environmentd_materialize_cloud_cluster_id, cluster_environmentd_materialize_cloud_replica_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">without</span> <span style="color:#f92672">(</span>job<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    mz_arrangement_maintenance_seconds_total{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzReplicaList' title='mzReplicaList'>.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">))</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.compute.arrangements.maintenance_rate-tabs" id="materialize.compute.arrangements.maintenance_rate-tab-1">
  <label for="materialize.compute.arrangements.maintenance_rate-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>mz_arrangement_maintenance_seconds_total{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzReplicaList</span>}<span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">cluster_environmentd_materialize_cloud_cluster_id</span>,<span style="color:#960050;background-color:#1e0010">cluster_environmentd_materialize_cloud_replica_id</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.compute.arrangements.maintenance_rate_by_worker">materialize.compute.arrangements.maintenance_rate_by_worker
  <a class="anchor" href="#materialize.compute.arrangements.maintenance_rate_by_worker">#</a>
</h4>
The same maintenance CPU, split per worker — each worker tops out at 1.0.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.compute.arrangements.maintenance_rate_by_worker-tabs" id="materialize.compute.arrangements.maintenance_rate_by_worker-tab-0" checked>
  <label for="materialize.compute.arrangements.maintenance_rate_by_worker-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>cluster_environmentd_materialize_cloud_cluster_id, cluster_environmentd_materialize_cloud_replica_id, worker_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">without</span> <span style="color:#f92672">(</span>job<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    mz_arrangement_maintenance_seconds_total{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzReplicaList' title='mzReplicaList'>.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">))</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.compute.arrangements.maintenance_rate_by_worker-tabs" id="materialize.compute.arrangements.maintenance_rate_by_worker-tab-1">
  <label for="materialize.compute.arrangements.maintenance_rate_by_worker-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>mz_arrangement_maintenance_seconds_total{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzReplicaList</span>}<span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">cluster_environmentd_materialize_cloud_cluster_id</span>,<span style="color:#960050;background-color:#1e0010">cluster_environmentd_materialize_cloud_replica_id</span>,<span style="color:#960050;background-color:#1e0010">worker_id</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.compute.arrangements.records.system">materialize.compute.arrangements.records.system
  <a class="anchor" href="#materialize.compute.arrangements.records.system">#</a>
</h4>
Row counts of arrangements for Materialize&rsquo;s internal system objects
(object id starts with <code>s</code>). These back the catalog and internal
probes, not user data, so they shouldn&rsquo;t grow with your workload —
unexpected growth here can point at a Materialize bug.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.compute.arrangements.records.system-tabs" id="materialize.compute.arrangements.records.system-tab-0" checked>
  <label for="materialize.compute.arrangements.records.system-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>collection_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='mzSqlPrefix' title='mzSqlPrefix'>mz_</span>arrangement_record_count{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, instance_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;, replica_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzReplicaList' title='mzReplicaList'>.*</span>&#34;, collection_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span style="color:#e6db74">s.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.compute.arrangements.records.system-tabs" id="materialize.compute.arrangements.records.system-tab-1">
  <label for="materialize.compute.arrangements.records.system-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzSqlPrefix</span>}arrangement_record_count{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, instance_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}, replica_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzReplicaList</span>}, collection_id<span style="color:#960050;background-color:#1e0010">:s</span><span style="color:#f92672">*</span><span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">collection_id</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.compute.arrangements.records.user">materialize.compute.arrangements.records.user
  <a class="anchor" href="#materialize.compute.arrangements.records.user">#</a>
</h4>
Row counts of arrangements for your compute objects (object id starts
with <code>u</code>) — the row count of every user index and materialized view, and
the primary driver of cluster memory. Growth on an object tracks the
size of its underlying data.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.compute.arrangements.records.user-tabs" id="materialize.compute.arrangements.records.user-tab-0" checked>
  <label for="materialize.compute.arrangements.records.user-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>collection_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='mzSqlPrefix' title='mzSqlPrefix'>mz_</span>arrangement_record_count{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, instance_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;, replica_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzReplicaList' title='mzReplicaList'>.*</span>&#34;, collection_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span style="color:#e6db74">u.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.compute.arrangements.records.user-tabs" id="materialize.compute.arrangements.records.user-tab-1">
  <label for="materialize.compute.arrangements.records.user-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzSqlPrefix</span>}arrangement_record_count{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, instance_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}, replica_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzReplicaList</span>}, collection_id<span style="color:#960050;background-color:#1e0010">:u</span><span style="color:#f92672">*</span><span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">collection_id</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.compute.arrangements.records.transient">materialize.compute.arrangements.records.transient
  <a class="anchor" href="#materialize.compute.arrangements.records.transient">#</a>
</h4>
Row counts of transient (object id <code>t*</code>) and uncategorized (<code>none</code>)
arrangements — short-lived intermediates from query optimization and
dataflow execution. Normally small and ephemeral.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.compute.arrangements.records.transient-tabs" id="materialize.compute.arrangements.records.transient-tab-0" checked>
  <label for="materialize.compute.arrangements.records.transient-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>collection_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='mzSqlPrefix' title='mzSqlPrefix'>mz_</span>arrangement_record_count{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, instance_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;, replica_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzReplicaList' title='mzReplicaList'>.*</span>&#34;, collection_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span style="color:#e6db74">t.*|none</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.compute.arrangements.records.transient-tabs" id="materialize.compute.arrangements.records.transient-tab-1">
  <label for="materialize.compute.arrangements.records.transient-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzSqlPrefix</span>}arrangement_record_count{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, instance_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}, replica_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzReplicaList</span>}, <span style="color:#f92672">(</span>collection_id<span style="color:#960050;background-color:#1e0010">:t</span><span style="color:#f92672">*</span> OR collection_id<span style="color:#960050;background-color:#1e0010">:</span>none<span style="color:#f92672">)</span><span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">collection_id</span>}
</span></span></code></pre></div>
  </div>
</div>

## materialize-connections

Sessions, query activity, and SQL control-plane (adapter) traffic for a
Materialize deployment. Adapted from the Overview dashboard&rsquo;s
&ldquo;Connections / Activity&rdquo; tab.
<h4 id="materialize.connections.sessions.active">materialize.connections.sessions.active
  <a class="anchor" href="#materialize.connections.sessions.active">#</a>
</h4>
Open SQL sessions, split into <code>system</code> (Materialize&rsquo;s internal probing —
a few are always present) and <code>user</code> (client connections).
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.connections.sessions.active-tabs" id="materialize.connections.sessions.active-tab-0" checked>
  <label for="materialize.connections.sessions.active-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>session_type<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>mz_active_sessions{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.connections.sessions.active-tabs" id="materialize.connections.sessions.active-tab-1">
  <label for="materialize.connections.sessions.active-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>mz_active_sessions{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">session_type</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.connections.queries.rate">materialize.connections.queries.rate
  <a class="anchor" href="#materialize.connections.queries.rate">#</a>
</h4>
Queries per second by session type — <code>user</code> tracks your client traffic,
<code>system</code> is the steady single-digit baseline of internal health checks.
Bursty is normal.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.connections.queries.rate-tabs" id="materialize.connections.queries.rate-tab-0" checked>
  <label for="materialize.connections.queries.rate-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>session_type<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_query_total{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.connections.queries.rate-tabs" id="materialize.connections.queries.rate-tab-1">
  <label for="materialize.connections.queries.rate-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>mz_query_total{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">session_type</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.connections.adapter.command_rate">materialize.connections.adapter.command_rate
  <a class="anchor" href="#materialize.connections.adapter.command_rate">#</a>
</h4>
Commands per second through the adapter — the SQL protocol layer
(parse, execute, prepare, fetch). Normally runs higher than the query
rate, since one query is several commands.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.connections.adapter.command_rate-tabs" id="materialize.connections.adapter.command_rate-tab-0" checked>
  <label for="materialize.connections.adapter.command_rate-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_adapter_commands{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.connections.adapter.command_rate-tabs" id="materialize.connections.adapter.command_rate-tab-1">
  <label for="materialize.connections.adapter.command_rate-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>mz_adapter_commands{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}<span style="color:#960050;background-color:#1e0010">}.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.connections.queries.distribution">materialize.connections.queries.distribution
  <a class="anchor" href="#materialize.connections.queries.distribution">#</a>
</h4>
The mix of query kinds over the selected window — a workload-shape
signal, not a rate. Heavy <code>set_variable</code>/<code>fetch</code> traffic is normal
(that&rsquo;s how Postgres clients manage session state); heavy
<code>insert</code>/<code>update</code>/<code>delete</code> on something you think of as read-mostly is
worth a look.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.connections.queries.distribution-tabs" id="materialize.connections.queries.distribution-tab-0" checked>
  <label for="materialize.connections.queries.distribution-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>statement_type<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">increase</span><span style="color:#f92672">(</span>mz_query_total{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='range' title='range'>[1h]</span><span style="color:#f92672">))</span> <span style="color:#f92672">&gt;</span> <span style="color:#ae81ff">0</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.connections.queries.distribution-tabs" id="materialize.connections.queries.distribution-tab-1">
  <label for="materialize.connections.queries.distribution-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>mz_query_total{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">statement_type</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_count<span style="color:#f92672">()</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.connections.queries.rate_by_statement">materialize.connections.queries.rate_by_statement
  <a class="anchor" href="#materialize.connections.queries.rate_by_statement">#</a>
</h4>
Query rate broken down by statement type and session type, fully
time-resolved — the moving picture behind the distribution donut. A
spike in <code>select</code>/<code>user</code> is the thing to line up against peek latency
to confirm the system kept pace.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.connections.queries.rate_by_statement-tabs" id="materialize.connections.queries.rate_by_statement-tab-0" checked>
  <label for="materialize.connections.queries.rate_by_statement-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>statement_type, session_type<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_query_total{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span> <span style="color:#f92672">&gt;</span> <span style="color:#ae81ff">0</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.connections.queries.rate_by_statement-tabs" id="materialize.connections.queries.rate_by_statement-tab-1">
  <label for="materialize.connections.queries.rate_by_statement-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>mz_query_total{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">statement_type</span>,<span style="color:#960050;background-color:#1e0010">session_type</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.connections.peek_latency.p50">materialize.connections.peek_latency.p50
  <a class="anchor" href="#materialize.connections.peek_latency.p50">#</a>
</h4>
Median read-query latency — the typical time to look up the current
state of an arrangement, which is the operation behind every <code>SELECT</code>
against an index. Your &ldquo;what does a normal query feel like&rdquo; number.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.connections.peek_latency.p50-tabs" id="materialize.connections.peek_latency.p50-tab-0" checked>
  <label for="materialize.connections.peek_latency.p50-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span><span style="color:#ae81ff">0.50</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le, instance_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_compute_peek_duration_seconds_bucket{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, instance_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.connections.peek_latency.p50-tabs" id="materialize.connections.peek_latency.p50-tab-1">
  <label for="materialize.connections.peek_latency.p50-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span>p50<span style="color:#960050;background-color:#1e0010">:</span>mz_compute_peek_duration_seconds{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, instance_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}<span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance_id</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.connections.peek_latency.p90">materialize.connections.peek_latency.p90
  <a class="anchor" href="#materialize.connections.peek_latency.p90">#</a>
</h4>
90th-percentile read-query latency — how slow the slowest 10% of
queries feel. Catches the contention bursts and cold paths that the
median hides.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.connections.peek_latency.p90-tabs" id="materialize.connections.peek_latency.p90-tab-0" checked>
  <label for="materialize.connections.peek_latency.p90-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span><span style="color:#ae81ff">0.90</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le, instance_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_compute_peek_duration_seconds_bucket{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, instance_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.connections.peek_latency.p90-tabs" id="materialize.connections.peek_latency.p90-tab-1">
  <label for="materialize.connections.peek_latency.p90-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span>p90<span style="color:#960050;background-color:#1e0010">:</span>mz_compute_peek_duration_seconds{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, instance_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}<span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance_id</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.connections.peek_latency.p99">materialize.connections.peek_latency.p99
  <a class="anchor" href="#materialize.connections.peek_latency.p99">#</a>
</h4>
Tail read-query latency — the slowest 1% of queries, the ones users
complain about.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.connections.peek_latency.p99-tabs" id="materialize.connections.peek_latency.p99-tab-0" checked>
  <label for="materialize.connections.peek_latency.p99-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span><span style="color:#ae81ff">0.99</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le, instance_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_compute_peek_duration_seconds_bucket{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, instance_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.connections.peek_latency.p99-tabs" id="materialize.connections.peek_latency.p99-tab-1">
  <label for="materialize.connections.peek_latency.p99-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span>p99<span style="color:#960050;background-color:#1e0010">:</span>mz_compute_peek_duration_seconds{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, instance_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}<span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance_id</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.connections.adapter.commands_by_application">materialize.connections.adapter.commands_by_application
  <a class="anchor" href="#materialize.connections.adapter.commands_by_application">#</a>
</h4>
SQL control-plane command totals per client <code>application_name</code> over the
window, so you can see which clients drive the adapter and which are
failing. Most clients set <code>application_name</code> in their connection string;
those that don&rsquo;t bucket as <code>unrecognized</code>/<code>unspecified</code> (normal).
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.connections.adapter.commands_by_application-tabs" id="materialize.connections.adapter.commands_by_application-tab-0" checked>
  <label for="materialize.connections.adapter.commands_by_application-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>application_name, status<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">increase</span><span style="color:#f92672">(</span>mz_adapter_commands{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='range' title='range'>[1h]</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.connections.adapter.commands_by_application-tabs" id="materialize.connections.adapter.commands_by_application-tab-1">
  <label for="materialize.connections.adapter.commands_by_application-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>mz_adapter_commands{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">application_name</span>,<span style="color:#960050;background-color:#1e0010">status</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_count<span style="color:#f92672">()</span>
</span></span></code></pre></div>
  </div>
</div>

## materialize-consensus

<p>The metadata (consensus) database, from the vantage point of the Materialize
processes that use it.</p>
<p>Persist is Materialize&rsquo;s storage layer. Every durable collection — a table,
a source, a materialized view, the catalog itself — is a persist <em>shard</em>:
data files in object storage, plus a small record of the shard&rsquo;s current
state in the metadata database. Every change to a shard commits a new
version of that record with a compare-and-set, so the database sees a steady
stream of small conditional writes (about 80 a second on an idle
environment) and very little else. The timestamp oracle is the second client:
environmentd keeps the read and write timestamps of each timeline in the same
database.</p>
<p>Everything here is the <strong>client&rsquo;s</strong> measurement, which is the SLI: it is what
a Materialize process experienced, including the network, DNS, TLS and its
own connection pool. It needs no cloud credentials and is identical on every
database flavor. What the database was doing at the time — CPU, storage,
connection ceilings — is the provider&rsquo;s view, on <code>infra-cloud</code>. The external
dependency design doc records why the two are separate.</p>
<h2 id="label-families">Label families<a class="anchor" href="#label-families">#</a></h2>
<p><code>op</code> on <code>mz_persist_external_*</code> names the operation: <code>consensus_cas</code> (the
commit), <code>consensus_head</code>, <code>consensus_scan</code>, <code>consensus_truncate</code> and
<code>consensus_list_keys</code>. The <code>blob_*</code> values of the same label are object
storage and belong to <code>materialize-persist.yaml</code>. The latency histogram
<code>mz_persist_external_op_latency</code> covers <code>consensus_cas</code> only on this side;
the other operations have a mean from <code>_seconds / _started_count</code>.</p>
<p><code>op</code> on <code>mz_persist_retry_*</code> is a <em>retry loop</em>, named after the work rather
than the call. The five listed in <code>materialize.consensus.retries.by_operation</code>
are the ones that wrap a metadata-database call; <code>next_listen_batch</code> and
<code>snapshot</code> also retry constantly, but they are polling for new data rather
than recovering from a failure and must never be drawn as retries. The same
names, as they appear in the logs, back <code>materialize.consensus.logs.retries</code>.</p>
<p>The process breakdown is <code>app</code> (<code>environmentd</code> or <code>clusterd</code>) plus the
long-form cluster id, which only <code>clusterd</code> carries. <code>mzClusterName</code> turns
the id into the cluster&rsquo;s name and leaves environmentd&rsquo;s blank.</p>
<h2 id="two-things-that-are-easy-to-get-wrong">Two things that are easy to get wrong<a class="anchor" href="#two-things-that-are-easy-to-get-wrong">#</a></h2>
<ul>
<li><code>mz_persist_postgres_connpool_available</code> goes <strong>negative</strong> by the number of
callers waiting for a connection (deadpool&rsquo;s <code>Status.available</code>), and is
sampled at each acquire. <code>clamp_min(-available, 0)</code> is the queue.</li>
<li>Pool <strong>size</strong> is connections the process currently holds, which is what the
database counts against <code>max_connections</code>. The pool&rsquo;s configured maximum is
not published.</li>
</ul>
<p>Every mean here is a ratio of two rates wrapped in <code>(…) &gt;= 0</code>. An operation
nobody called in the window divides zero by zero, and the resulting <code>NaN</code>
would otherwise be drawn — and would put the panel&rsquo;s empty-state text into
its legend, which Grafana applies per field.</p>

<h4 id="materialize.consensus.health.failed_ops">materialize.consensus.health.failed_ops
  <a class="anchor" href="#materialize.consensus.health.failed_ops">#</a>
</h4>
Metadata database calls that failed, per second, across every
Materialize process in this environment.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.consensus.health.failed_ops-tabs" id="materialize.consensus.health.failed_ops-tab-0" checked>
  <label for="materialize.consensus.health.failed_ops-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_external_failed_count{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, op<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span style="color:#e6db74">consensus_.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.consensus.health.connection_errors">materialize.consensus.health.connection_errors
  <a class="anchor" href="#materialize.consensus.health.connection_errors">#</a>
</h4>
Failed attempts to open a connection to the metadata database, per
second.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.consensus.health.connection_errors-tabs" id="materialize.consensus.health.connection_errors-tab-0" checked>
  <label for="materialize.consensus.health.connection_errors-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_postgres_connpool_connection_errors{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">+</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_ts_oracle_postgres_connpool_connection_errors{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span> <span style="color:#f92672">or</span> <span style="color:#66d9ef">vector</span><span style="color:#f92672">(</span><span style="color:#ae81ff">0</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.consensus.health.commit_latency_p99">materialize.consensus.health.commit_latency_p99
  <a class="anchor" href="#materialize.consensus.health.commit_latency_p99">#</a>
</h4>
How long the slowest 1% of commits to the metadata database take.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.consensus.health.commit_latency_p99-tabs" id="materialize.consensus.health.commit_latency_p99-tab-0" checked>
  <label for="materialize.consensus.health.commit_latency_p99-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span><span style="color:#ae81ff">0.99</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_external_op_latency_bucket{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, op<span style="color:#960050;background-color:#1e0010">=</span>&#34;<span style="color:#e6db74">consensus_cas</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.consensus.health.waiting">materialize.consensus.health.waiting
  <a class="anchor" href="#materialize.consensus.health.waiting">#</a>
</h4>
Calls currently queued for a free database connection, across every
process.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.consensus.health.waiting-tabs" id="materialize.consensus.health.waiting-tab-0" checked>
  <label for="materialize.consensus.health.waiting-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">clamp_min</span><span style="color:#f92672">(-</span>mz_persist_postgres_connpool_available{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span>, <span style="color:#ae81ff">0</span><span style="color:#f92672">))</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">+</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">clamp_min</span><span style="color:#f92672">(-</span>mz_ts_oracle_postgres_connpool_available{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span>, <span style="color:#ae81ff">0</span><span style="color:#f92672">))</span> <span style="color:#f92672">or</span> <span style="color:#66d9ef">vector</span><span style="color:#f92672">(</span><span style="color:#ae81ff">0</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.consensus.health.connections_held">materialize.consensus.health.connections_held
  <a class="anchor" href="#materialize.consensus.health.connections_held">#</a>
</h4>
Connections to the metadata database this environment currently holds
open.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.consensus.health.connections_held-tabs" id="materialize.consensus.health.connections_held-tab-0" checked>
  <label for="materialize.consensus.health.connections_held-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>mz_persist_postgres_connpool_size{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">+</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>mz_ts_oracle_postgres_connpool_size{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span style="color:#f92672">)</span> <span style="color:#f92672">or</span> <span style="color:#66d9ef">vector</span><span style="color:#f92672">(</span><span style="color:#ae81ff">0</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.consensus.health.commits">materialize.consensus.health.commits
  <a class="anchor" href="#materialize.consensus.health.commits">#</a>
</h4>
Commits to the metadata database per second — the load this
environment puts on it.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.consensus.health.commits-tabs" id="materialize.consensus.health.commits-tab-0" checked>
  <label for="materialize.consensus.health.commits-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_external_started_count{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, op<span style="color:#960050;background-color:#1e0010">=</span>&#34;<span style="color:#e6db74">consensus_cas</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.consensus.latency.commit">materialize.consensus.latency.commit
  <a class="anchor" href="#materialize.consensus.latency.commit">#</a>
</h4>
Commit latency to the metadata database: the median and the slowest
1%.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.consensus.latency.commit-tabs" id="materialize.consensus.latency.commit-tab-0" checked>
  <label for="materialize.consensus.latency.commit-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span><span style="color:#ae81ff">0.50</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_external_op_latency_bucket{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, op<span style="color:#960050;background-color:#1e0010">=</span>&#34;<span style="color:#e6db74">consensus_cas</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span><span style="color:#ae81ff">0.99</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_external_op_latency_bucket{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, op<span style="color:#960050;background-color:#1e0010">=</span>&#34;<span style="color:#e6db74">consensus_cas</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.consensus.latency.round_trip">materialize.consensus.latency.round_trip
  <a class="anchor" href="#materialize.consensus.latency.round_trip">#</a>
</h4>
The network round trip from each Materialize process to the metadata
database, as that process last measured it.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.consensus.latency.round_trip-tabs" id="materialize.consensus.latency.round_trip-tab-0" checked>
  <label for="materialize.consensus.latency.round_trip-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>app, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  mz_persist_external_rtt_latency{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, external<span style="color:#960050;background-color:#1e0010">=</span>&#34;<span style="color:#e6db74">consensus</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.consensus.failures.by_operation">materialize.consensus.failures.by_operation
  <a class="anchor" href="#materialize.consensus.failures.by_operation">#</a>
</h4>
Failed metadata database calls per second, by operation.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.consensus.failures.by_operation-tabs" id="materialize.consensus.failures.by_operation-tab-0" checked>
  <label for="materialize.consensus.failures.by_operation-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>op<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_external_failed_count{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, op<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span style="color:#e6db74">consensus_.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>op<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_ts_oracle_failed_count{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.consensus.failures.connection_errors">materialize.consensus.failures.connection_errors
  <a class="anchor" href="#materialize.consensus.failures.connection_errors">#</a>
</h4>
Failed connection attempts per second, by the process that made them.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.consensus.failures.connection_errors-tabs" id="materialize.consensus.failures.connection_errors-tab-0" checked>
  <label for="materialize.consensus.failures.connection_errors-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>app, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_postgres_connpool_connection_errors{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_ts_oracle_postgres_connpool_connection_errors{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.consensus.logs.retries">materialize.consensus.logs.retries
  <a class="anchor" href="#materialize.consensus.logs.retries">#</a>
</h4>
What Materialize logged while retrying calls to the metadata database,
with the database&rsquo;s own error text.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.consensus.logs.retries-tabs" id="materialize.consensus.logs.retries-tab-0" checked>
  <label for="materialize.consensus.logs.retries-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="materialize.consensus.ops.by_type">materialize.consensus.ops.by_type
  <a class="anchor" href="#materialize.consensus.ops.by_type">#</a>
</h4>
Metadata database calls per second, by operation.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.consensus.ops.by_type-tabs" id="materialize.consensus.ops.by_type-tab-0" checked>
  <label for="materialize.consensus.ops.by_type-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>op<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_external_started_count{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, op<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span style="color:#e6db74">consensus_.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.consensus.ops.commits_by_process">materialize.consensus.ops.commits_by_process
  <a class="anchor" href="#materialize.consensus.ops.commits_by_process">#</a>
</h4>
Commits per second, by the process making them.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.consensus.ops.commits_by_process-tabs" id="materialize.consensus.ops.commits_by_process-tab-0" checked>
  <label for="materialize.consensus.ops.commits_by_process-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>app, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_external_started_count{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, op<span style="color:#960050;background-color:#1e0010">=</span>&#34;<span style="color:#e6db74">consensus_cas</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.consensus.ops.bytes">materialize.consensus.ops.bytes
  <a class="anchor" href="#materialize.consensus.ops.bytes">#</a>
</h4>
Bytes per second exchanged with the metadata database, by operation.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.consensus.ops.bytes-tabs" id="materialize.consensus.ops.bytes-tab-0" checked>
  <label for="materialize.consensus.ops.bytes-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>op<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_external_bytes_count{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, op<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span style="color:#e6db74">consensus_.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.consensus.ops.collections">materialize.consensus.ops.collections
  <a class="anchor" href="#materialize.consensus.ops.collections">#</a>
</h4>
Durable objects in this environment — each one a stream of
commits to the metadata database.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.consensus.ops.collections-tabs" id="materialize.consensus.ops.collections-tab-0" checked>
  <label for="materialize.consensus.ops.collections-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">count</span><span style="color:#f92672">(</span><span style="color:#66d9ef">group</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>shard<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>mz_persist_shard_usage_current_state_batches_bytes{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.consensus.latency.mean_by_operation">materialize.consensus.latency.mean_by_operation
  <a class="anchor" href="#materialize.consensus.latency.mean_by_operation">#</a>
</h4>
Average time per metadata database call, by operation.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.consensus.latency.mean_by_operation-tabs" id="materialize.consensus.latency.mean_by_operation-tab-0" checked>
  <label for="materialize.consensus.latency.mean_by_operation-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>op<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_external_seconds{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, op<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span style="color:#e6db74">consensus_.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">/</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>op<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_external_started_count{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, op<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span style="color:#e6db74">consensus_.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">&gt;=</span> <span style="color:#ae81ff">0</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.consensus.latency.commit_by_process">materialize.consensus.latency.commit_by_process
  <a class="anchor" href="#materialize.consensus.latency.commit_by_process">#</a>
</h4>
Slowest 1% of commits, by the process making them.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.consensus.latency.commit_by_process-tabs" id="materialize.consensus.latency.commit_by_process-tab-0" checked>
  <label for="materialize.consensus.latency.commit_by_process-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span><span style="color:#ae81ff">0.99</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le, app, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_external_op_latency_bucket{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, op<span style="color:#960050;background-color:#1e0010">=</span>&#34;<span style="color:#e6db74">consensus_cas</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.consensus.contention.conflicts">materialize.consensus.contention.conflicts
  <a class="anchor" href="#materialize.consensus.contention.conflicts">#</a>
</h4>
Commits that lost a race with another writer and were retried, per
second, by process.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.consensus.contention.conflicts-tabs" id="materialize.consensus.contention.conflicts-tab-0" checked>
  <label for="materialize.consensus.contention.conflicts-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>app, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_cmd_cas_mismatch_count{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.consensus.retries.by_operation">materialize.consensus.retries.by_operation
  <a class="anchor" href="#materialize.consensus.retries.by_operation">#</a>
</h4>
Metadata database calls retried after a failure, per second, by the
work that was retrying.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.consensus.retries.by_operation-tabs" id="materialize.consensus.retries.by_operation-tab-0" checked>
  <label for="materialize.consensus.retries.by_operation-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>op<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_retry_retries_count{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, op<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span style="color:#e6db74">fetch_state::scan|apply_unbatched_cmd::cas|gc::truncate|maybe_init::cas|consensus::open</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>op<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_ts_oracle_retry_retries_count{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.consensus.oracle.ops">materialize.consensus.oracle.ops
  <a class="anchor" href="#materialize.consensus.oracle.ops">#</a>
</h4>
Timestamp oracle calls per second, by operation.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.consensus.oracle.ops-tabs" id="materialize.consensus.oracle.ops-tab-0" checked>
  <label for="materialize.consensus.oracle.ops-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>op<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_ts_oracle_started_count{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.consensus.oracle.latency">materialize.consensus.oracle.latency
  <a class="anchor" href="#materialize.consensus.oracle.latency">#</a>
</h4>
Average time per timestamp oracle call, by operation.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.consensus.oracle.latency-tabs" id="materialize.consensus.oracle.latency-tab-0" checked>
  <label for="materialize.consensus.oracle.latency-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>op<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_ts_oracle_seconds{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">/</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>op<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_ts_oracle_started_count{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">&gt;=</span> <span style="color:#ae81ff">0</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.consensus.pool.size">materialize.consensus.pool.size
  <a class="anchor" href="#materialize.consensus.pool.size">#</a>
</h4>
Connections to the metadata database held open, by process.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.consensus.pool.size-tabs" id="materialize.consensus.pool.size-tab-0" checked>
  <label for="materialize.consensus.pool.size-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>app, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  mz_persist_postgres_connpool_size{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>mz_ts_oracle_postgres_connpool_size{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.consensus.pool.in_use">materialize.consensus.pool.in_use
  <a class="anchor" href="#materialize.consensus.pool.in_use">#</a>
</h4>
Connections actively lent out to a call, by process.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.consensus.pool.in_use-tabs" id="materialize.consensus.pool.in_use-tab-0" checked>
  <label for="materialize.consensus.pool.in_use-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>app, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  mz_persist_postgres_connpool_size{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">-</span> <span style="color:#66d9ef">clamp_min</span><span style="color:#f92672">(</span>mz_persist_postgres_connpool_available{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span>, <span style="color:#ae81ff">0</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  mz_ts_oracle_postgres_connpool_size{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">-</span> <span style="color:#66d9ef">clamp_min</span><span style="color:#f92672">(</span>mz_ts_oracle_postgres_connpool_available{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span>, <span style="color:#ae81ff">0</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.consensus.pool.waiting">materialize.consensus.pool.waiting
  <a class="anchor" href="#materialize.consensus.pool.waiting">#</a>
</h4>
Calls queued for a connection, by process.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.consensus.pool.waiting-tabs" id="materialize.consensus.pool.waiting-tab-0" checked>
  <label for="materialize.consensus.pool.waiting-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>app, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">clamp_min</span><span style="color:#f92672">(-</span>mz_persist_postgres_connpool_available{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span>, <span style="color:#ae81ff">0</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">clamp_min</span><span style="color:#f92672">(-</span>mz_ts_oracle_postgres_connpool_available{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span>, <span style="color:#ae81ff">0</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.consensus.pool.acquire_wait">materialize.consensus.pool.acquire_wait
  <a class="anchor" href="#materialize.consensus.pool.acquire_wait">#</a>
</h4>
Average time a call waits to be handed a connection, by process.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.consensus.pool.acquire_wait-tabs" id="materialize.consensus.pool.acquire_wait-tab-0" checked>
  <label for="materialize.consensus.pool.acquire_wait-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>app, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_postgres_connpool_acquire_seconds{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">/</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>app, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_postgres_connpool_acquires{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">&gt;=</span> <span style="color:#ae81ff">0</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_ts_oracle_postgres_connpool_acquire_seconds{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">/</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_ts_oracle_postgres_connpool_acquires{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">&gt;=</span> <span style="color:#ae81ff">0</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.consensus.pool.churn">materialize.consensus.pool.churn
  <a class="anchor" href="#materialize.consensus.pool.churn">#</a>
</h4>
New connections opened per second, and how many of those replaced a
connection that had reached its age limit.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.consensus.pool.churn-tabs" id="materialize.consensus.pool.churn-tab-0" checked>
  <label for="materialize.consensus.pool.churn-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_postgres_connpool_connections_created{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">+</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_ts_oracle_postgres_connpool_connections_created{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span> <span style="color:#f92672">or</span> <span style="color:#66d9ef">vector</span><span style="color:#f92672">(</span><span style="color:#ae81ff">0</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_postgres_connpool_ttl_reconnections{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">+</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_ts_oracle_postgres_connpool_ttl_reconnections{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span> <span style="color:#f92672">or</span> <span style="color:#66d9ef">vector</span><span style="color:#f92672">(</span><span style="color:#ae81ff">0</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.consensus.state.versions">materialize.consensus.state.versions
  <a class="anchor" href="#materialize.consensus.state.versions">#</a>
</h4>
State versions written to the metadata database per second, beside
versions deleted.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.consensus.state.versions-tabs" id="materialize.consensus.state.versions-tab-0" checked>
  <label for="materialize.consensus.state.versions-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_external_succeeded_count{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, op<span style="color:#960050;background-color:#1e0010">=</span>&#34;<span style="color:#e6db74">consensus_cas</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_external_consensus_truncated_count{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.consensus.state.live">materialize.consensus.state.live
  <a class="anchor" href="#materialize.consensus.state.live">#</a>
</h4>
State versions currently stored in the metadata database, summed
across every object — roughly the number of rows persist keeps
there.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.consensus.state.live-tabs" id="materialize.consensus.state.live-tab-0" checked>
  <label for="materialize.consensus.state.live-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>shard<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>mz_persist_shard_gc_live_diffs{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.consensus.state.held">materialize.consensus.state.held
  <a class="anchor" href="#materialize.consensus.state.held">#</a>
</h4>
The ten objects holding the most old state versions, which cleanup
cannot delete until whatever is reading them moves on.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.consensus.state.held-tabs" id="materialize.consensus.state.held-tab-0" checked>
  <label for="materialize.consensus.state.held-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">topk</span><span style="color:#f92672">(</span><span style="color:#ae81ff">10</span>, <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>shard<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>mz_persist_shard_seqnos_held{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.consensus.gc.runs">materialize.consensus.gc.runs
  <a class="anchor" href="#materialize.consensus.gc.runs">#</a>
</h4>
Cleanup passes per second: started, finished, and skipped because
another process had already done the work.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.consensus.gc.runs-tabs" id="materialize.consensus.gc.runs-tab-0" checked>
  <label for="materialize.consensus.gc.runs-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_gc_started{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_gc_finished{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_gc_noop{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.consensus.gc.lease_timeouts">materialize.consensus.gc.lease_timeouts
  <a class="anchor" href="#materialize.consensus.gc.lease_timeouts">#</a>
</h4>
Readers whose lease on an object expired, per second.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.consensus.gc.lease_timeouts-tabs" id="materialize.consensus.gc.lease_timeouts-tab-0" checked>
  <label for="materialize.consensus.gc.lease_timeouts-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_lease_timeout_read{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>

## materialize-events

<p>Kubernetes events from the namespaces a Materialize deployment occupies: the
operator&rsquo;s own namespace and the environments&rsquo; namespace.</p>
<p>Events are logs, not metrics. They arrive through
<code>loki.source.kubernetes_events</code> in the monitoring gateway, which reads them
from the Kubernetes API and forwards them to Loki, so every query here is
LogQL against the logs datasource rather than PromQL. The gateway&rsquo;s processor
lifts <code>reason</code>, <code>name</code>, <code>kind</code>, <code>count</code>, <code>node</code> and <code>reportingcontroller</code> out
of each event into structured metadata, which is what these queries filter and
group on; the event <code>type</code> becomes the <code>level</code> stream label, <code>Normal</code> as
<code>INFO</code> and <code>Warning</code> as <code>WARN</code>.</p>
<p><strong>Two scopes live here.</strong> The <code>deployment</code> and <code>operator</code> queries below are
rollout-scoped: they answer &ldquo;is this upgrade going through&rdquo;, and the
<code>env-upgrade</code> dashboard is their consumer. The <code>cluster</code> queries at the end are
the general-purpose view, scoped by the same Loki-discovered namespace picker a
logs dashboard uses, and are deliberately separate definitions rather than the
same ones widened — the rollout queries carry filters (generation, reporting
controller) that a general event browser has no business inheriting.</p>
<p>Kubernetes keeps events for about an hour. Loki keeps them for as long as the
deployment&rsquo;s retention says, which is what makes a rollout that finished
yesterday still explainable.</p>
<p><strong>An event&rsquo;s namespace is the involved object&rsquo;s, not the reporter&rsquo;s.</strong> The
operator runs in its own namespace and reconciles resources in the
environments&rsquo; namespace, and every event it publishes is filed against the
resource — so the operator&rsquo;s own events are found in the <em>environment</em>
namespace, where nothing else about them suggests they would be. That is why
the queries below scope to both namespaces and pick the operator out by
<code>reportingcontroller</code>, which is the reporter&rsquo;s identity and the only field
that actually says an event came from orchestratord.</p>
<p><strong>Only the deployment-wide feeds filter by generation.</strong> The operator&rsquo;s own
events are filed against the <code>Materialize</code>, <code>Balancer</code> and <code>Console</code> resources,
which carry no generation at all, so <code>%%{mzGenerationEventFilter}</code> could only
ever be a no-op on them. The filter itself keeps generation-less objects on
purpose — on a representative deployment only 6 of 70 event names carry a
generation, and dropping the other 64 would take the whole rollout narrative
with them.</p>

<h4 id="materialize.events.deployment.stream">materialize.events.deployment.stream
  <a class="anchor" href="#materialize.events.deployment.stream">#</a>
</h4>
Every Kubernetes event from the operator and environment namespaces,
newest first — the unfiltered record of what the cluster did.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.events.deployment.stream-tabs" id="materialize.events.deployment.stream-tab-0" checked>
  <label for="materialize.events.deployment.stream-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="materialize.events.deployment.warnings">materialize.events.deployment.warnings
  <a class="anchor" href="#materialize.events.deployment.warnings">#</a>
</h4>
Kubernetes events the reporting component flagged as warnings — a pod
that will not schedule, an image that will not pull, a container failing
its probes.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.events.deployment.warnings-tabs" id="materialize.events.deployment.warnings-tab-0" checked>
  <label for="materialize.events.deployment.warnings-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="materialize.events.deployment.rate.by_reason">materialize.events.deployment.rate.by_reason
  <a class="anchor" href="#materialize.events.deployment.rate.by_reason">#</a>
</h4>
How often each kind of event is being reported, by reason. The shape of
a rollout: <code>Pulled</code>, <code>Created</code> and <code>Started</code> rise together as pods are
replaced, and fall back to nothing when it finishes.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.events.deployment.rate.by_reason-tabs" id="materialize.events.deployment.rate.by_reason-tab-0" checked>
  <label for="materialize.events.deployment.rate.by_reason-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="materialize.events.deployment.warning.rate">materialize.events.deployment.warning.rate
  <a class="anchor" href="#materialize.events.deployment.warning.rate">#</a>
</h4>
Warning events per interval across both namespaces, as one series — the
at-a-glance answer to whether anything is complaining right now.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.events.deployment.warning.rate-tabs" id="materialize.events.deployment.warning.rate-tab-0" checked>
  <label for="materialize.events.deployment.warning.rate-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="materialize.events.operator.lifecycle">materialize.events.operator.lifecycle
  <a class="anchor" href="#materialize.events.operator.lifecycle">#</a>
</h4>
Every phase the Materialize resource moved through, as the operator
reported it: <code>Applying</code>, <code>ReadyToPromote</code>, <code>WaitingForApproval</code>,
<code>Promoting</code>, <code>Applied</code>, and the two that end a rollout badly,
<code>RolloutTimeout</code> and <code>FailedDeploy</code>.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.events.operator.lifecycle-tabs" id="materialize.events.operator.lifecycle-tab-0" checked>
  <label for="materialize.events.operator.lifecycle-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="materialize.events.operator.lifecycle.rate">materialize.events.operator.lifecycle.rate
  <a class="anchor" href="#materialize.events.operator.lifecycle.rate">#</a>
</h4>
Lifecycle transitions over time, by phase — where a rollout got to, and
when.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.events.operator.lifecycle.rate-tabs" id="materialize.events.operator.lifecycle.rate-tab-0" checked>
  <label for="materialize.events.operator.lifecycle.rate-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="materialize.events.operator.reconciliation.failures">materialize.events.operator.reconciliation.failures
  <a class="anchor" href="#materialize.events.operator.reconciliation.failures">#</a>
</h4>
Why the operator could not reconcile a resource. The event carries the
error&rsquo;s whole cause chain, which is usually the actionable half — an
admission webhook that is down, a secret that does not exist yet, a
license key that will not parse.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.events.operator.reconciliation.failures-tabs" id="materialize.events.operator.reconciliation.failures-tab-0" checked>
  <label for="materialize.events.operator.reconciliation.failures-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="materialize.events.operator.reconciliation.failures.rate">materialize.events.operator.reconciliation.failures.rate
  <a class="anchor" href="#materialize.events.operator.reconciliation.failures.rate">#</a>
</h4>
Reconciliation failures over time, by the kind of resource that failed.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.events.operator.reconciliation.failures.rate-tabs" id="materialize.events.operator.reconciliation.failures.rate-tab-0" checked>
  <label for="materialize.events.operator.reconciliation.failures.rate-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="materialize.events.cluster.stream">materialize.events.cluster.stream
  <a class="anchor" href="#materialize.events.cluster.stream">#</a>
</h4>
Every Kubernetes event in the selected namespaces, newest first.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.events.cluster.stream-tabs" id="materialize.events.cluster.stream-tab-0" checked>
  <label for="materialize.events.cluster.stream-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="materialize.events.cluster.warnings">materialize.events.cluster.warnings
  <a class="anchor" href="#materialize.events.cluster.warnings">#</a>
</h4>
Kubernetes events the reporting component flagged as warnings, across the
selected namespaces.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.events.cluster.warnings-tabs" id="materialize.events.cluster.warnings-tab-0" checked>
  <label for="materialize.events.cluster.warnings-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="materialize.events.cluster.rate.by_reason">materialize.events.cluster.rate.by_reason
  <a class="anchor" href="#materialize.events.cluster.rate.by_reason">#</a>
</h4>
How often each kind of event is being reported, by reason — the shape of
what the cluster is doing.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.events.cluster.rate.by_reason-tabs" id="materialize.events.cluster.rate.by_reason-tab-0" checked>
  <label for="materialize.events.cluster.rate.by_reason-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="materialize.events.cluster.rate.by_namespace">materialize.events.cluster.rate.by_namespace
  <a class="anchor" href="#materialize.events.cluster.rate.by_namespace">#</a>
</h4>
Event rate by namespace — where in the cluster things are happening.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.events.cluster.rate.by_namespace-tabs" id="materialize.events.cluster.rate.by_namespace-tab-0" checked>
  <label for="materialize.events.cluster.rate.by_namespace-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>

## materialize-generations

<p>What each deployment generation of an environment is doing, during and after a
blue/green rollout.</p>
<p>A rollout stands a <em>new</em> generation of <code>environmentd</code> and its replicas up beside
the old one, lets it rehydrate from persisted storage, and promotes it only once
it has caught up. Both generations are live and scraped at the same time, so
every ordinary panel sums them together — which is exactly the wrong thing while
the question is whether one of them is ready yet.</p>
<p><strong>The generation is not a label.</strong> orchestratord records it as a Kubernetes
annotation, which neither kube-state-metrics nor cAdvisor surfaces. Where it
does reach a query is the object <em>name</em>, in two shapes:
<code>…-environmentd-&lt;generation&gt;-&lt;ordinal&gt;</code> and, for a replica,
<code>…-gen-&lt;generation&gt;-&lt;ordinal&gt;</code>. <code>%%{mzGenerationFilter}</code> selects on those, and
<code>%%{mzGenerationPattern}</code> is the same shape as a capture, for the
<code>label_replace</code> that lifts the number into a <code>generation</code> label panels can group
by. Both live in the render context, so they cannot drift apart.</p>

<h4 id="materialize.generations.active">materialize.generations.active
  <a class="anchor" href="#materialize.generations.active">#</a>
</h4>
How many deployment generations are currently running — one between
rollouts, two while one is in flight.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.generations.active-tabs" id="materialize.generations.active-tab-0" checked>
  <label for="materialize.generations.active-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">count</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">count</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>generation<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">label_replace</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>      mz_compute_commands_total{
</span></span><span style="display:flex;"><span>        <span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, <span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">mzGenerationFilter</span>}
</span></span><span style="display:flex;"><span>      <span style="color:#960050;background-color:#1e0010">}</span>,
</span></span><span style="display:flex;"><span>      &#34;<span style="color:#e6db74">generation</span>&#34;, &#34;<span style="color:#e6db74">$1</span>&#34;, &#34;<span style="color:#e6db74">pod</span>&#34;, &#34;<span style="color:#e6db74">${mzGenerationPattern}</span>&#34;
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.generations.version">materialize.generations.version
  <a class="anchor" href="#materialize.generations.version">#</a>
</h4>
The Materialize version each generation is running — what the rollout is
actually changing.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.generations.version-tabs" id="materialize.generations.version-tab-0" checked>
  <label for="materialize.generations.version-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">group</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>generation, mz_version<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">label_replace</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">max_over_time</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>      <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='mzSqlPrefix' title='mzSqlPrefix'>mz_</span>compute_cluster_status{
</span></span><span style="display:flex;"><span>        <span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, <span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">mzGenerationFilter</span>}
</span></span><span style="display:flex;"><span>      <span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span>      <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='range' title='range'>[1h]</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">)</span>,
</span></span><span style="display:flex;"><span>    &#34;<span style="color:#e6db74">generation</span>&#34;, &#34;<span style="color:#e6db74">$1</span>&#34;, &#34;<span style="color:#e6db74">pod</span>&#34;, &#34;<span style="color:#e6db74">${mzGenerationPattern}</span>&#34;
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.generations.pods">materialize.generations.pods
  <a class="anchor" href="#materialize.generations.pods">#</a>
</h4>
Pods belonging to each generation — its environmentd and the cluster
replicas standing behind it.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.generations.pods-tabs" id="materialize.generations.pods-tab-0" checked>
  <label for="materialize.generations.pods-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">count</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>generation<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">group</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>pod, generation<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">label_replace</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>      container_memory_working_set_bytes{
</span></span><span style="display:flex;"><span>        <span contenteditable='true' class='replaceable' data-replace='cAdvisorFilter' title='cAdvisorFilter'>container!="POD", container!=""</span>, <span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">mzGenerationFilter</span>}
</span></span><span style="display:flex;"><span>      <span style="color:#960050;background-color:#1e0010">}</span>,
</span></span><span style="display:flex;"><span>      &#34;<span style="color:#e6db74">generation</span>&#34;, &#34;<span style="color:#e6db74">$1</span>&#34;, &#34;<span style="color:#e6db74">pod</span>&#34;, &#34;<span style="color:#e6db74">${mzGenerationPattern}</span>&#34;
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.generations.hydrating">materialize.generations.hydrating
  <a class="anchor" href="#materialize.generations.hydrating">#</a>
</h4>
Objects still rebuilding their in-memory state, split by generation —
the panel that answers whether a new generation is ready to promote.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.generations.hydrating-tabs" id="materialize.generations.hydrating-tab-0" checked>
  <label for="materialize.generations.hydrating-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>generation<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>generation, instance_id, collection_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">label_replace</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>      mz_dataflow_wallclock_lag_seconds{
</span></span><span style="display:flex;"><span>        <span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>,
</span></span><span style="display:flex;"><span>        <span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">mzGenerationFilter</span>},
</span></span><span style="display:flex;"><span>        instance_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;,
</span></span><span style="display:flex;"><span>        instance_id<span style="color:#f92672">!=</span>&#34;&#34;,
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">quantile</span><span style="color:#960050;background-color:#1e0010">=</span>&#34;<span style="color:#e6db74">1</span>&#34;
</span></span><span style="display:flex;"><span>      <span style="color:#960050;background-color:#1e0010">}</span>,
</span></span><span style="display:flex;"><span>      &#34;<span style="color:#e6db74">generation</span>&#34;, &#34;<span style="color:#e6db74">$1</span>&#34;, &#34;<span style="color:#e6db74">pod</span>&#34;, &#34;<span style="color:#e6db74">${mzGenerationPattern}</span>&#34;
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">)</span> <span style="color:#f92672">&gt;</span> <span style="color:#66d9ef">bool</span> <span style="color:#ae81ff">1</span>e15
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.generations.collections">materialize.generations.collections
  <a class="anchor" href="#materialize.generations.collections">#</a>
</h4>
Objects each generation is tracking — the denominator for hydration,
and the shape of a new generation building out its dataflows.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.generations.collections-tabs" id="materialize.generations.collections-tab-0" checked>
  <label for="materialize.generations.collections-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">count</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>generation<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>generation, instance_id, collection_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">label_replace</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>      mz_dataflow_wallclock_lag_seconds{
</span></span><span style="display:flex;"><span>        <span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>,
</span></span><span style="display:flex;"><span>        <span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">mzGenerationFilter</span>},
</span></span><span style="display:flex;"><span>        instance_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;,
</span></span><span style="display:flex;"><span>        instance_id<span style="color:#f92672">!=</span>&#34;&#34;,
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">quantile</span><span style="color:#960050;background-color:#1e0010">=</span>&#34;<span style="color:#e6db74">1</span>&#34;
</span></span><span style="display:flex;"><span>      <span style="color:#960050;background-color:#1e0010">}</span>,
</span></span><span style="display:flex;"><span>      &#34;<span style="color:#e6db74">generation</span>&#34;, &#34;<span style="color:#e6db74">$1</span>&#34;, &#34;<span style="color:#e6db74">pod</span>&#34;, &#34;<span style="color:#e6db74">${mzGenerationPattern}</span>&#34;
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.generations.lag.max">materialize.generations.lag.max
  <a class="anchor" href="#materialize.generations.lag.max">#</a>
</h4>
The worst freshness in each generation — how far behind real time its
least fresh object is.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.generations.lag.max-tabs" id="materialize.generations.lag.max-tab-0" checked>
  <label for="materialize.generations.lag.max-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>generation<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">label_replace</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    mz_dataflow_wallclock_lag_seconds{
</span></span><span style="display:flex;"><span>      <span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>,
</span></span><span style="display:flex;"><span>      <span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">mzGenerationFilter</span>},
</span></span><span style="display:flex;"><span>      instance_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;,
</span></span><span style="display:flex;"><span>      instance_id<span style="color:#f92672">!=</span>&#34;&#34;,
</span></span><span style="display:flex;"><span>      <span style="color:#66d9ef">quantile</span><span style="color:#960050;background-color:#1e0010">=</span>&#34;<span style="color:#e6db74">1</span>&#34;
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010">}</span>,
</span></span><span style="display:flex;"><span>    &#34;<span style="color:#e6db74">generation</span>&#34;, &#34;<span style="color:#e6db74">$1</span>&#34;, &#34;<span style="color:#e6db74">pod</span>&#34;, &#34;<span style="color:#e6db74">${mzGenerationPattern}</span>&#34;
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span> <span style="color:#f92672">&lt;</span> <span style="color:#ae81ff">1</span>e9
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.generations.lag.total">materialize.generations.lag.total
  <a class="anchor" href="#materialize.generations.lag.total">#</a>
</h4>
Every hydrated object&rsquo;s freshness in each generation, added together —
how far behind the generation is in total.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.generations.lag.total-tabs" id="materialize.generations.lag.total-tab-0" checked>
  <label for="materialize.generations.lag.total-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>generation<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>generation, instance_id, collection_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">label_replace</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>      mz_dataflow_wallclock_lag_seconds{
</span></span><span style="display:flex;"><span>        <span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>,
</span></span><span style="display:flex;"><span>        <span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">mzGenerationFilter</span>},
</span></span><span style="display:flex;"><span>        instance_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;,
</span></span><span style="display:flex;"><span>        instance_id<span style="color:#f92672">!=</span>&#34;&#34;,
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">quantile</span><span style="color:#960050;background-color:#1e0010">=</span>&#34;<span style="color:#e6db74">1</span>&#34;
</span></span><span style="display:flex;"><span>      <span style="color:#960050;background-color:#1e0010">}</span>,
</span></span><span style="display:flex;"><span>      &#34;<span style="color:#e6db74">generation</span>&#34;, &#34;<span style="color:#e6db74">$1</span>&#34;, &#34;<span style="color:#e6db74">pod</span>&#34;, &#34;<span style="color:#e6db74">${mzGenerationPattern}</span>&#34;
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">)</span> <span style="color:#f92672">&lt;</span> <span style="color:#ae81ff">1</span>e9
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.generations.lag.total_by_cluster">materialize.generations.lag.total_by_cluster
  <a class="anchor" href="#materialize.generations.lag.total_by_cluster">#</a>
</h4>
Total freshness split by generation <em>and</em> cluster — which cluster in
which generation is furthest behind.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.generations.lag.total_by_cluster-tabs" id="materialize.generations.lag.total_by_cluster-tab-0" checked>
  <label for="materialize.generations.lag.total_by_cluster-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>generation, instance_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>generation, instance_id, collection_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">label_replace</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>      mz_dataflow_wallclock_lag_seconds{
</span></span><span style="display:flex;"><span>        <span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>,
</span></span><span style="display:flex;"><span>        <span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">mzGenerationFilter</span>},
</span></span><span style="display:flex;"><span>        instance_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;,
</span></span><span style="display:flex;"><span>        instance_id<span style="color:#f92672">!=</span>&#34;&#34;,
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">quantile</span><span style="color:#960050;background-color:#1e0010">=</span>&#34;<span style="color:#e6db74">1</span>&#34;
</span></span><span style="display:flex;"><span>      <span style="color:#960050;background-color:#1e0010">}</span>,
</span></span><span style="display:flex;"><span>      &#34;<span style="color:#e6db74">generation</span>&#34;, &#34;<span style="color:#e6db74">$1</span>&#34;, &#34;<span style="color:#e6db74">pod</span>&#34;, &#34;<span style="color:#e6db74">${mzGenerationPattern}</span>&#34;
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">)</span> <span style="color:#f92672">&lt;</span> <span style="color:#ae81ff">1</span>e9
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.generations.cpu">materialize.generations.cpu
  <a class="anchor" href="#materialize.generations.cpu">#</a>
</h4>
CPU used by each generation&rsquo;s pods — what a rollout costs while both
sides are up.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.generations.cpu-tabs" id="materialize.generations.cpu-tab-0" checked>
  <label for="materialize.generations.cpu-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>generation<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">label_replace</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>      container_cpu_usage_seconds_total{
</span></span><span style="display:flex;"><span>        <span contenteditable='true' class='replaceable' data-replace='cAdvisorFilter' title='cAdvisorFilter'>container!="POD", container!=""</span>, <span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">mzGenerationFilter</span>}
</span></span><span style="display:flex;"><span>      <span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span>      <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">)</span>,
</span></span><span style="display:flex;"><span>    &#34;<span style="color:#e6db74">generation</span>&#34;, &#34;<span style="color:#e6db74">$1</span>&#34;, &#34;<span style="color:#e6db74">pod</span>&#34;, &#34;<span style="color:#e6db74">${mzGenerationPattern}</span>&#34;
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.generations.memory">materialize.generations.memory
  <a class="anchor" href="#materialize.generations.memory">#</a>
</h4>
Memory used by each generation&rsquo;s pods.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.generations.memory-tabs" id="materialize.generations.memory-tab-0" checked>
  <label for="materialize.generations.memory-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>generation<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">label_replace</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    container_memory_working_set_bytes{
</span></span><span style="display:flex;"><span>      <span contenteditable='true' class='replaceable' data-replace='cAdvisorFilter' title='cAdvisorFilter'>container!="POD", container!=""</span>, <span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">mzGenerationFilter</span>}
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010">}</span>,
</span></span><span style="display:flex;"><span>    &#34;<span style="color:#e6db74">generation</span>&#34;, &#34;<span style="color:#e6db74">$1</span>&#34;, &#34;<span style="color:#e6db74">pod</span>&#34;, &#34;<span style="color:#e6db74">${mzGenerationPattern}</span>&#34;
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>

## materialize-health

Common queries for checking the health of a Materialize deployment.
<h4 id="materialize.scraper.mzmon.environmentd">materialize.scraper.mzmon.environmentd
  <a class="anchor" href="#materialize.scraper.mzmon.environmentd">#</a>
</h4>
environmentd metrics are reaching the gateway. If this goes to 0 or
disappears, every environmentd-backed panel and alert for the
environment is blind — the environment may be perfectly healthy and you
simply can&rsquo;t see it, so rule this out first.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.scraper.mzmon.environmentd-tabs" id="materialize.scraper.mzmon.environmentd-tab-0" checked>
  <label for="materialize.scraper.mzmon.environmentd-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span>up{
</span></span><span style="display:flex;"><span>  job<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">monitoring/mzmon-materialize-environmentd</span>&#34;,
</span></span><span style="display:flex;"><span>  <span contenteditable='true' class='replaceable' data-replace='mzEnvironmentNamespaceFilter' title='mzEnvironmentNamespaceFilter'>namespace=~"materialize-environment"</span>
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#f92672">==</span> <span style="color:#ae81ff">1</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.scraper.mzmon.environmentd-tabs" id="materialize.scraper.mzmon.environmentd-tab-1">
  <label for="materialize.scraper.mzmon.environmentd-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">avg</span><span style="color:#960050;background-color:#1e0010">:</span>up{<span style="color:#960050;background-color:#1e0010">job:monitoring/mzmon-materialize-environmentd</span>, <span style="color:#960050;background-color:#1e0010">${mzEnvironmentNamespaceFilter</span>}<span style="color:#960050;background-color:#1e0010">}</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.scraper.mzmon.clusterd">materialize.scraper.mzmon.clusterd
  <a class="anchor" href="#materialize.scraper.mzmon.clusterd">#</a>
</h4>
clusterd (compute replica) metrics are reaching the gateway. When this
drops, per-cluster compute signals — arrangements, peeks, dataflows —
go dark even though the replicas may still be serving.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.scraper.mzmon.clusterd-tabs" id="materialize.scraper.mzmon.clusterd-tab-0" checked>
  <label for="materialize.scraper.mzmon.clusterd-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span>up{
</span></span><span style="display:flex;"><span>  job<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">monitoring/mzmon-materialize-clusterd</span>&#34;,
</span></span><span style="display:flex;"><span>  <span contenteditable='true' class='replaceable' data-replace='mzEnvironmentNamespaceFilter' title='mzEnvironmentNamespaceFilter'>namespace=~"materialize-environment"</span>
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#f92672">==</span> <span style="color:#ae81ff">1</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.scraper.mzmon.clusterd-tabs" id="materialize.scraper.mzmon.clusterd-tab-1">
  <label for="materialize.scraper.mzmon.clusterd-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">avg</span><span style="color:#960050;background-color:#1e0010">:</span>up{<span style="color:#960050;background-color:#1e0010">job:monitoring/mzmon-materialize-clusterd</span>, <span style="color:#960050;background-color:#1e0010">${mzEnvironmentNamespaceFilter</span>}<span style="color:#960050;background-color:#1e0010">}</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.scraper.mzmon.orchestratord">materialize.scraper.mzmon.orchestratord
  <a class="anchor" href="#materialize.scraper.mzmon.orchestratord">#</a>
</h4>
The Materialize operator (orchestratord) is being scraped. Losing it
blinds you to cluster and replica lifecycle — creation, resize, and
rollout progress — not to the running workloads themselves.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.scraper.mzmon.orchestratord-tabs" id="materialize.scraper.mzmon.orchestratord-tab-0" checked>
  <label for="materialize.scraper.mzmon.orchestratord-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span>up{
</span></span><span style="display:flex;"><span>  job<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">materialize/mzmon-materialize-operator</span>&#34;,
</span></span><span style="display:flex;"><span>  <span contenteditable='true' class='replaceable' data-replace='mzOperatorNamespaceFilter' title='mzOperatorNamespaceFilter'>namespace=~"materialize"</span>
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#f92672">==</span> <span style="color:#ae81ff">1</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.scraper.mzmon.orchestratord-tabs" id="materialize.scraper.mzmon.orchestratord-tab-1">
  <label for="materialize.scraper.mzmon.orchestratord-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">avg</span><span style="color:#960050;background-color:#1e0010">:</span>up{<span style="color:#960050;background-color:#1e0010">job:materialize/mzmon-materialize-operator</span>, <span style="color:#960050;background-color:#1e0010">${mzOperatorNamespaceFilter</span>}<span style="color:#960050;background-color:#1e0010">}</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.health.clusters.status.percentage">materialize.health.clusters.status.percentage
  <a class="anchor" href="#materialize.health.clusters.status.percentage">#</a>
</h4>
The share of the environment&rsquo;s clusters currently reporting ready —
the at-a-glance health headline for the whole environment.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.health.clusters.status.percentage-tabs" id="materialize.health.clusters.status.percentage-tab-0" checked>
  <label for="materialize.health.clusters.status.percentage-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">count</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='mzSqlPrefix' title='mzSqlPrefix'>mz_</span>compute_cluster_status{
</span></span><span style="display:flex;"><span>    <span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>
</span></span><span style="display:flex;"><span>  <span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#f92672">==</span> <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">/</span> <span style="color:#66d9ef">count</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='mzSqlPrefix' title='mzSqlPrefix'>mz_</span>compute_cluster_status{
</span></span><span style="display:flex;"><span>    <span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>
</span></span><span style="display:flex;"><span>  <span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">*</span> <span style="color:#ae81ff">100</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.health.clusters.status.percentage-tabs" id="materialize.health.clusters.status.percentage-tab-1">
  <label for="materialize.health.clusters.status.percentage-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">avg</span><span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzSqlPrefix</span>}compute_cluster_status{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#f92672">*</span> <span style="color:#ae81ff">100</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.health.environment.availability.percentage">materialize.health.environment.availability.percentage
  <a class="anchor" href="#materialize.health.environment.availability.percentage">#</a>
</h4>
An SLO-style snapshot: how much of the selected window the
environment&rsquo;s clusters were ready. Sustained dips are the signal that
something restarted or went down while you weren&rsquo;t watching.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.health.environment.availability.percentage-tabs" id="materialize.health.environment.availability.percentage-tab-0" checked>
  <label for="materialize.health.environment.availability.percentage-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">avg</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>materialize_cloud_organization_namespace<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">avg_over_time</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='mzSqlPrefix' title='mzSqlPrefix'>mz_</span>compute_cluster_status{
</span></span><span style="display:flex;"><span>      <span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='range' title='range'>[1h]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span> <span style="color:#f92672">*</span> <span style="color:#ae81ff">100</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.health.environment.availability.percentage-tabs" id="materialize.health.environment.availability.percentage-tab-1">
  <label for="materialize.health.environment.availability.percentage-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">avg</span><span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzSqlPrefix</span>}compute_cluster_status{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}<span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">materialize_cloud_organization_namespace</span>}<span style="color:#960050;background-color:#1e0010">.</span>rollup<span style="color:#f92672">(</span><span style="color:#66d9ef">avg</span>, <span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">range</span>}<span style="color:#f92672">)</span> <span style="color:#f92672">*</span> <span style="color:#ae81ff">100</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.info.version">materialize.info.version
  <a class="anchor" href="#materialize.info.version">#</a>
</h4>
The version of Materialize running in the environment. A single version
is the steady state; multiple values appear briefly during a rolling
upgrade.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.info.version-tabs" id="materialize.info.version-tab-0" checked>
  <label for="materialize.info.version-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">group</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>mz_version<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='mzSqlPrefix' title='mzSqlPrefix'>mz_</span>compute_cluster_status{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.info.version-tabs" id="materialize.info.version-tab-1">
  <label for="materialize.info.version-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">avg</span><span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzSqlPrefix</span>}compute_cluster_status{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">mz_version</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.info.max_lag">materialize.info.max_lag
  <a class="anchor" href="#materialize.info.max_lag">#</a>
</h4>
The worst freshness seen anywhere in the environment over the
selected window — how far the most-behind object&rsquo;s output trailed
real time. A top-level freshness pointer.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.info.max_lag-tabs" id="materialize.info.max_lag-tab-0" checked>
  <label for="materialize.info.max_lag-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">max_over_time</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>      mz_dataflow_wallclock_lag_seconds{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, instance_id<span style="color:#f92672">!=</span>&#34;&#34;, <span style="color:#66d9ef">quantile</span><span style="color:#960050;background-color:#1e0010">=</span>&#34;<span style="color:#e6db74">1</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#f92672">&lt;</span> <span style="color:#ae81ff">1</span>e9
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">)</span>[<span style="color:#960050;background-color:#1e0010">${rangeWindow}:</span><span style="color:#e6db74">1m</span>]
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.info.max_lag-tabs" id="materialize.info.max_lag-tab-1">
  <label for="materialize.info.max_lag-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>mz_dataflow_wallclock_lag_seconds{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, <span style="color:#66d9ef">quantile</span><span style="color:#960050;background-color:#1e0010">:</span><span style="color:#ae81ff">1</span><span style="color:#960050;background-color:#1e0010">}.</span>rollup<span style="color:#f92672">(</span><span style="color:#66d9ef">max</span>, <span style="color:#ae81ff">3600</span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>

## materialize-kubernetes

<p>Kubernetes-side view of a Materialize deployment: capacity, workload
readiness, per-pod resource usage, and networking. Adapted from the Overview
dashboard&rsquo;s &ldquo;Kubernetes Workloads&rdquo; tab and the k8s-sourced Summary panels.</p>
<p>These read kube-state-metrics and cAdvisor (via the kubelet), NOT Materialize
metrics — the same meta-monitoring surface other targets (e.g. Loki health)
will draw on. <code>%%{cAdvisorFilter}</code> is the container-scoping filter fragment
(namespace + drop empty/pause series); <code>%%{mzNamespaceList}</code> is the raw
namespace selector used by the kube_* and container_network_* metrics.</p>
<p>The percent-of-limit panels have an absolute-units sibling for deployments
whose metrics source (e.g. GKE&rsquo;s managed cAdvisor/KSM) doesn&rsquo;t expose resource
limits; the dashboard picks whichever fits the environment.</p>

<h4 id="materialize.kubernetes.cpu.capacity">materialize.kubernetes.cpu.capacity
  <a class="anchor" href="#materialize.kubernetes.cpu.capacity">#</a>
</h4>
Total CPU cores configured across the environment&rsquo;s containers (sum of
cAdvisor CPU limits), excluding the monitoring exporter — i.e. the CPU
available to the actual workload.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.kubernetes.cpu.capacity-tabs" id="materialize.kubernetes.cpu.capacity-tab-0" checked>
  <label for="materialize.kubernetes.cpu.capacity-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>container<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  container_spec_cpu_quota{<span contenteditable='true' class='replaceable' data-replace='cAdvisorFilter' title='cAdvisorFilter'>container!="POD", container!=""</span>, container<span style="color:#f92672">!=</span>&#34;<span style="color:#e6db74">new-promsql-exporter</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">/</span> container_spec_cpu_period{<span contenteditable='true' class='replaceable' data-replace='cAdvisorFilter' title='cAdvisorFilter'>container!="POD", container!=""</span>, container<span style="color:#f92672">!=</span>&#34;<span style="color:#e6db74">new-promsql-exporter</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.kubernetes.cpu.capacity-tabs" id="materialize.kubernetes.cpu.capacity-tab-1">
  <label for="materialize.kubernetes.cpu.capacity-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>container_spec_cpu_quota{<span style="color:#960050;background-color:#1e0010">${cAdvisorFilter</span>}, <span style="color:#960050;background-color:#1e0010">!</span>container<span style="color:#960050;background-color:#1e0010">:</span>new<span style="color:#f92672">-</span>promsql<span style="color:#f92672">-</span>exporter<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">container</span>} <span style="color:#f92672">/</span> <span style="color:#ae81ff">100000</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.kubernetes.memory.capacity">materialize.kubernetes.memory.capacity
  <a class="anchor" href="#materialize.kubernetes.memory.capacity">#</a>
</h4>
Total memory configured across the environment&rsquo;s containers (sum of
cAdvisor memory limits), excluding the monitoring exporter. Memory is
Materialize&rsquo;s dominant constraint — in-memory arrangements live in here.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.kubernetes.memory.capacity-tabs" id="materialize.kubernetes.memory.capacity-tab-0" checked>
  <label for="materialize.kubernetes.memory.capacity-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>container<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  container_spec_memory_limit_bytes{<span contenteditable='true' class='replaceable' data-replace='cAdvisorFilter' title='cAdvisorFilter'>container!="POD", container!=""</span>, container<span style="color:#f92672">!=</span>&#34;<span style="color:#e6db74">new-promsql-exporter</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.kubernetes.memory.capacity-tabs" id="materialize.kubernetes.memory.capacity-tab-1">
  <label for="materialize.kubernetes.memory.capacity-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>container_spec_memory_limit_bytes{<span style="color:#960050;background-color:#1e0010">${cAdvisorFilter</span>}, <span style="color:#960050;background-color:#1e0010">!</span>container<span style="color:#960050;background-color:#1e0010">:</span>new<span style="color:#f92672">-</span>promsql<span style="color:#f92672">-</span>exporter<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">container</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.kubernetes.cpu.capacity.all_containers">materialize.kubernetes.cpu.capacity.all_containers
  <a class="anchor" href="#materialize.kubernetes.cpu.capacity.all_containers">#</a>
</h4>
Total CPU cores configured across every container in the environment,
including the monitoring exporter — the Kubernetes view of what is
provisioned rather than what is available to the workload.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.kubernetes.cpu.capacity.all_containers-tabs" id="materialize.kubernetes.cpu.capacity.all_containers-tab-0" checked>
  <label for="materialize.kubernetes.cpu.capacity.all_containers-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>container<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  container_spec_cpu_quota{<span contenteditable='true' class='replaceable' data-replace='cAdvisorFilter' title='cAdvisorFilter'>container!="POD", container!=""</span><span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">/</span> container_spec_cpu_period{<span contenteditable='true' class='replaceable' data-replace='cAdvisorFilter' title='cAdvisorFilter'>container!="POD", container!=""</span><span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.kubernetes.cpu.capacity.all_containers-tabs" id="materialize.kubernetes.cpu.capacity.all_containers-tab-1">
  <label for="materialize.kubernetes.cpu.capacity.all_containers-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>container_spec_cpu_quota{<span style="color:#960050;background-color:#1e0010">${cAdvisorFilter</span>}<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">container</span>} <span style="color:#f92672">/</span> <span style="color:#ae81ff">100000</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.kubernetes.memory.capacity.all_containers">materialize.kubernetes.memory.capacity.all_containers
  <a class="anchor" href="#materialize.kubernetes.memory.capacity.all_containers">#</a>
</h4>
Total memory configured across every container in the environment,
including the monitoring exporter — the Kubernetes view of what is
provisioned rather than what is available to the workload.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.kubernetes.memory.capacity.all_containers-tabs" id="materialize.kubernetes.memory.capacity.all_containers-tab-0" checked>
  <label for="materialize.kubernetes.memory.capacity.all_containers-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>container<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  container_spec_memory_limit_bytes{<span contenteditable='true' class='replaceable' data-replace='cAdvisorFilter' title='cAdvisorFilter'>container!="POD", container!=""</span><span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.kubernetes.memory.capacity.all_containers-tabs" id="materialize.kubernetes.memory.capacity.all_containers-tab-1">
  <label for="materialize.kubernetes.memory.capacity.all_containers-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>container_spec_memory_limit_bytes{<span style="color:#960050;background-color:#1e0010">${cAdvisorFilter</span>}<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">container</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.kubernetes.cpu.usage.percent">materialize.kubernetes.cpu.usage.percent
  <a class="anchor" href="#materialize.kubernetes.cpu.usage.percent">#</a>
</h4>
Current CPU usage per container type as a fraction of its limit,
averaged over the last 5 minutes — shows the worst-loaded container
types.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.kubernetes.cpu.usage.percent-tabs" id="materialize.kubernetes.cpu.usage.percent-tab-0" checked>
  <label for="materialize.kubernetes.cpu.usage.percent-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, container<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>container_cpu_usage_seconds_total{<span contenteditable='true' class='replaceable' data-replace='cAdvisorFilter' title='cAdvisorFilter'>container!="POD", container!=""</span><span style="color:#960050;background-color:#1e0010">}</span>[<span style="color:#e6db74">5m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">/</span> <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, container<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  kube_pod_container_resource_limits{resource<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">cpu</span>&#34;, namespace<span style="color:#f92672">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzNamespaceList' title='mzNamespaceList'>materialize-environment</span>&#34;}
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.kubernetes.cpu.usage.percent-tabs" id="materialize.kubernetes.cpu.usage.percent-tab-1">
  <label for="materialize.kubernetes.cpu.usage.percent-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>container_cpu_usage_seconds_total{<span style="color:#960050;background-color:#1e0010">${cAdvisorFilter</span>}<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">namespace</span>,<span style="color:#960050;background-color:#1e0010">container</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">/</span> <span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>kube_pod_container_resource_limits{<span style="color:#960050;background-color:#1e0010">resource:cpu</span>, <span style="color:#960050;background-color:#1e0010">namespace:${mzNamespaceList</span>}<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">namespace</span>,<span style="color:#960050;background-color:#1e0010">container</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.kubernetes.cpu.usage.absolute">materialize.kubernetes.cpu.usage.absolute
  <a class="anchor" href="#materialize.kubernetes.cpu.usage.absolute">#</a>
</h4>
Current CPU usage per container type in cores (rate over 5 minutes), for
deployments whose metrics source doesn&rsquo;t expose CPU limits — read it
against the replica sizes you configured.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.kubernetes.cpu.usage.absolute-tabs" id="materialize.kubernetes.cpu.usage.absolute-tab-0" checked>
  <label for="materialize.kubernetes.cpu.usage.absolute-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, container<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>container_cpu_usage_seconds_total{<span contenteditable='true' class='replaceable' data-replace='cAdvisorFilter' title='cAdvisorFilter'>container!="POD", container!=""</span><span style="color:#960050;background-color:#1e0010">}</span>[<span style="color:#e6db74">5m</span>]<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.kubernetes.cpu.usage.absolute-tabs" id="materialize.kubernetes.cpu.usage.absolute-tab-1">
  <label for="materialize.kubernetes.cpu.usage.absolute-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>container_cpu_usage_seconds_total{<span style="color:#960050;background-color:#1e0010">${cAdvisorFilter</span>}<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">namespace</span>,<span style="color:#960050;background-color:#1e0010">container</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.kubernetes.memory.usage.percent">materialize.kubernetes.memory.usage.percent
  <a class="anchor" href="#materialize.kubernetes.memory.usage.percent">#</a>
</h4>
Current memory usage per container type as a fraction of its limit —
shows the worst-loaded container types.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.kubernetes.memory.usage.percent-tabs" id="materialize.kubernetes.memory.usage.percent-tab-0" checked>
  <label for="materialize.kubernetes.memory.usage.percent-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, container<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">avg</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod, container<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    container_memory_working_set_bytes{<span contenteditable='true' class='replaceable' data-replace='cAdvisorFilter' title='cAdvisorFilter'>container!="POD", container!=""</span>, container<span style="color:#f92672">!=</span>&#34;<span style="color:#e6db74">new-promsql-exporter</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">/</span> <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, container<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">avg</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod, container<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    container_spec_memory_limit_bytes{<span contenteditable='true' class='replaceable' data-replace='cAdvisorFilter' title='cAdvisorFilter'>container!="POD", container!=""</span>, container<span style="color:#f92672">!=</span>&#34;<span style="color:#e6db74">new-promsql-exporter</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.kubernetes.memory.usage.percent-tabs" id="materialize.kubernetes.memory.usage.percent-tab-1">
  <label for="materialize.kubernetes.memory.usage.percent-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>container_memory_working_set_bytes{<span style="color:#960050;background-color:#1e0010">${cAdvisorFilter</span>}, <span style="color:#960050;background-color:#1e0010">!</span>container<span style="color:#960050;background-color:#1e0010">:</span>new<span style="color:#f92672">-</span>promsql<span style="color:#f92672">-</span>exporter<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">namespace</span>,<span style="color:#960050;background-color:#1e0010">container</span>}
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">/</span> <span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>container_spec_memory_limit_bytes{<span style="color:#960050;background-color:#1e0010">${cAdvisorFilter</span>}, <span style="color:#960050;background-color:#1e0010">!</span>container<span style="color:#960050;background-color:#1e0010">:</span>new<span style="color:#f92672">-</span>promsql<span style="color:#f92672">-</span>exporter<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">namespace</span>,<span style="color:#960050;background-color:#1e0010">container</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.kubernetes.memory.usage.absolute">materialize.kubernetes.memory.usage.absolute
  <a class="anchor" href="#materialize.kubernetes.memory.usage.absolute">#</a>
</h4>
Current memory (working set) per container type in bytes, for
deployments whose metrics source doesn&rsquo;t expose memory limits.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.kubernetes.memory.usage.absolute-tabs" id="materialize.kubernetes.memory.usage.absolute-tab-0" checked>
  <label for="materialize.kubernetes.memory.usage.absolute-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, container<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  container_memory_working_set_bytes{<span contenteditable='true' class='replaceable' data-replace='cAdvisorFilter' title='cAdvisorFilter'>container!="POD", container!=""</span>, container<span style="color:#f92672">!=</span>&#34;<span style="color:#e6db74">new-promsql-exporter</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.kubernetes.memory.usage.absolute-tabs" id="materialize.kubernetes.memory.usage.absolute-tab-1">
  <label for="materialize.kubernetes.memory.usage.absolute-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>container_memory_working_set_bytes{<span style="color:#960050;background-color:#1e0010">${cAdvisorFilter</span>}, <span style="color:#960050;background-color:#1e0010">!</span>container<span style="color:#960050;background-color:#1e0010">:</span>new<span style="color:#f92672">-</span>promsql<span style="color:#f92672">-</span>exporter<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">namespace</span>,<span style="color:#960050;background-color:#1e0010">container</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.kubernetes.last_restart">materialize.kubernetes.last_restart
  <a class="anchor" href="#materialize.kubernetes.last_restart">#</a>
</h4>
Seconds since the most recent container restart in the environment.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.kubernetes.last_restart-tabs" id="materialize.kubernetes.last_restart-tab-0" checked>
  <label for="materialize.kubernetes.last_restart-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">time</span><span style="color:#f92672">()</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">-</span> <span style="color:#66d9ef">topk</span><span style="color:#f92672">(</span><span style="color:#ae81ff">1</span>,
</span></span><span style="display:flex;"><span>    container_start_time_seconds{<span contenteditable='true' class='replaceable' data-replace='cAdvisorFilter' title='cAdvisorFilter'>container!="POD", container!=""</span>, container<span style="color:#f92672">!=</span>&#34;<span style="color:#e6db74">new-promsql-exporter</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.kubernetes.last_restart-tabs" id="materialize.kubernetes.last_restart-tab-1">
  <label for="materialize.kubernetes.last_restart-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span>top<span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>container_start_time_seconds{<span style="color:#960050;background-color:#1e0010">${cAdvisorFilter</span>}, <span style="color:#960050;background-color:#1e0010">!</span>container<span style="color:#960050;background-color:#1e0010">:</span>new<span style="color:#f92672">-</span>promsql<span style="color:#f92672">-</span>exporter<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">namespace</span>,<span style="color:#960050;background-color:#1e0010">pod</span>,<span style="color:#960050;background-color:#1e0010">container</span>},
</span></span><span style="display:flex;"><span>  <span style="color:#ae81ff">1</span>, &#39;<span style="color:#e6db74">max</span>&#39;, &#39;<span style="color:#e6db74">desc</span>&#39;
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.kubernetes.pods.readiness">materialize.kubernetes.pods.readiness
  <a class="anchor" href="#materialize.kubernetes.pods.readiness">#</a>
</h4>
Pods in the Materialize namespace grouped by phase (Running, Pending,
Failed, …).
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.kubernetes.pods.readiness-tabs" id="materialize.kubernetes.pods.readiness-tab-0" checked>
  <label for="materialize.kubernetes.pods.readiness-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>phase, namespace<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>phase, namespace, instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    kube_pod_status_phase{namespace<span style="color:#f92672">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzNamespaceList' title='mzNamespaceList'>materialize-environment</span>&#34;}
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.kubernetes.pods.readiness-tabs" id="materialize.kubernetes.pods.readiness-tab-1">
  <label for="materialize.kubernetes.pods.readiness-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>kube_pod_status_phase{<span style="color:#960050;background-color:#1e0010">namespace:${mzNamespaceList</span>}<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">phase</span>,<span style="color:#960050;background-color:#1e0010">namespace</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.kubernetes.statefulsets.ready">materialize.kubernetes.statefulsets.ready
  <a class="anchor" href="#materialize.kubernetes.statefulsets.ready">#</a>
</h4>
StatefulSet replicas reporting Ready. environmentd and the cluster pods
are StatefulSets.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.kubernetes.statefulsets.ready-tabs" id="materialize.kubernetes.statefulsets.ready-tab-0" checked>
  <label for="materialize.kubernetes.statefulsets.ready-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    kube_statefulset_status_replicas_ready{namespace<span style="color:#f92672">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzNamespaceList' title='mzNamespaceList'>materialize-environment</span>&#34;}
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.kubernetes.statefulsets.ready-tabs" id="materialize.kubernetes.statefulsets.ready-tab-1">
  <label for="materialize.kubernetes.statefulsets.ready-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>kube_statefulset_status_replicas_ready{<span style="color:#960050;background-color:#1e0010">namespace:${mzNamespaceList</span>}<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">namespace</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.kubernetes.deployments.readiness">materialize.kubernetes.deployments.readiness
  <a class="anchor" href="#materialize.kubernetes.deployments.readiness">#</a>
</h4>
Deployment replica health — Ready vs Unavailable. Deployments back
stateless services (e.g. the promsql exporter).
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.kubernetes.deployments.readiness-tabs" id="materialize.kubernetes.deployments.readiness-tab-0" checked>
  <label for="materialize.kubernetes.deployments.readiness-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    kube_deployment_status_replicas_ready{namespace<span style="color:#f92672">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzNamespaceList' title='mzNamespaceList'>materialize-environment</span>&#34;}
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    kube_deployment_status_replicas_unavailable{namespace<span style="color:#f92672">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzNamespaceList' title='mzNamespaceList'>materialize-environment</span>&#34;}
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.kubernetes.deployments.readiness-tabs" id="materialize.kubernetes.deployments.readiness-tab-1">
  <label for="materialize.kubernetes.deployments.readiness-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>kube_deployment_status_replicas_ready{<span style="color:#960050;background-color:#1e0010">namespace:${mzNamespaceList</span>}<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">namespace</span>}
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>kube_deployment_status_replicas_unavailable{<span style="color:#960050;background-color:#1e0010">namespace:${mzNamespaceList</span>}<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">namespace</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.kubernetes.pods.cpu_usage">materialize.kubernetes.pods.cpu_usage
  <a class="anchor" href="#materialize.kubernetes.pods.cpu_usage">#</a>
</h4>
CPU utilization per pod as a fraction of the pod&rsquo;s limit. Split so the
cluster/replica selectors filter the cluster pods while envd/balancer/
exporter stay visible.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.kubernetes.pods.cpu_usage-tabs" id="materialize.kubernetes.pods.cpu_usage-tab-0" checked>
  <label for="materialize.kubernetes.pods.cpu_usage-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod, container<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>container_cpu_usage_seconds_total{<span contenteditable='true' class='replaceable' data-replace='cAdvisorFilter' title='cAdvisorFilter'>container!="POD", container!=""</span>, pod<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span style="color:#e6db74">.*-cluster-${mzClusterListRegex}-replica-${mzReplicaListRegex}-.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">/</span> <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod, container<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  kube_pod_container_resource_limits{resource<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">cpu</span>&#34;, namespace<span style="color:#f92672">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzNamespaceList' title='mzNamespaceList'>materialize-environment</span>&#34;, pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">.*-cluster-${mzClusterListRegex}-replica-${mzReplicaListRegex}-.*</span>&#34;}
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod, container<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>container_cpu_usage_seconds_total{<span contenteditable='true' class='replaceable' data-replace='cAdvisorFilter' title='cAdvisorFilter'>container!="POD", container!=""</span>, pod<span style="color:#960050;background-color:#1e0010">!~</span>&#34;<span style="color:#e6db74">.*-cluster-.*-replica-.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">/</span> <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod, container<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  kube_pod_container_resource_limits{resource<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">cpu</span>&#34;, namespace<span style="color:#f92672">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzNamespaceList' title='mzNamespaceList'>materialize-environment</span>&#34;, pod<span style="color:#f92672">!~</span>&#34;<span style="color:#e6db74">.*-cluster-.*-replica-.*</span>&#34;}
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.kubernetes.pods.cpu_usage-tabs" id="materialize.kubernetes.pods.cpu_usage-tab-1">
  <label for="materialize.kubernetes.pods.cpu_usage-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>container_cpu_usage_seconds_total{<span style="color:#960050;background-color:#1e0010">${cAdvisorFilter</span>}, pod<span style="color:#960050;background-color:#1e0010">:</span><span style="color:#f92672">*-</span>cluster<span style="color:#f92672">-</span><span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}<span style="color:#f92672">-</span>replica<span style="color:#f92672">-</span><span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">mzReplicaList</span>}<span style="color:#f92672">-*</span><span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">namespace</span>,<span style="color:#960050;background-color:#1e0010">pod</span>,<span style="color:#960050;background-color:#1e0010">container</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">/</span> <span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>kube_pod_container_resource_limits{<span style="color:#960050;background-color:#1e0010">resource:cpu</span>, <span style="color:#960050;background-color:#1e0010">namespace:${mzNamespaceList</span>}, pod<span style="color:#960050;background-color:#1e0010">:</span><span style="color:#f92672">*-</span>cluster<span style="color:#f92672">-</span><span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}<span style="color:#f92672">-</span>replica<span style="color:#f92672">-</span><span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">mzReplicaList</span>}<span style="color:#f92672">-*</span><span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">namespace</span>,<span style="color:#960050;background-color:#1e0010">pod</span>,<span style="color:#960050;background-color:#1e0010">container</span>}
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>container_cpu_usage_seconds_total{<span style="color:#960050;background-color:#1e0010">${cAdvisorFilter</span>}, <span style="color:#960050;background-color:#1e0010">!</span>pod<span style="color:#960050;background-color:#1e0010">:</span><span style="color:#f92672">*-</span>cluster<span style="color:#f92672">-*-</span>replica<span style="color:#f92672">-*</span><span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">namespace</span>,<span style="color:#960050;background-color:#1e0010">pod</span>,<span style="color:#960050;background-color:#1e0010">container</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">/</span> <span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>kube_pod_container_resource_limits{<span style="color:#960050;background-color:#1e0010">resource:cpu</span>, <span style="color:#960050;background-color:#1e0010">namespace:${mzNamespaceList</span>}, <span style="color:#960050;background-color:#1e0010">!</span>pod<span style="color:#960050;background-color:#1e0010">:</span><span style="color:#f92672">*-</span>cluster<span style="color:#f92672">-*-</span>replica<span style="color:#f92672">-*</span><span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">namespace</span>,<span style="color:#960050;background-color:#1e0010">pod</span>,<span style="color:#960050;background-color:#1e0010">container</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.kubernetes.pods.memory_usage">materialize.kubernetes.pods.memory_usage
  <a class="anchor" href="#materialize.kubernetes.pods.memory_usage">#</a>
</h4>
Memory usage per pod as a fraction of the pod&rsquo;s limit (working-set
basis), same cluster/non-cluster split as pod CPU.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.kubernetes.pods.memory_usage-tabs" id="materialize.kubernetes.pods.memory_usage-tab-0" checked>
  <label for="materialize.kubernetes.pods.memory_usage-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">avg</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod, container<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  container_memory_working_set_bytes{<span contenteditable='true' class='replaceable' data-replace='cAdvisorFilter' title='cAdvisorFilter'>container!="POD", container!=""</span>, container<span style="color:#f92672">!=</span>&#34;<span style="color:#e6db74">new-promsql-exporter</span>&#34;, pod<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span style="color:#e6db74">.*-cluster-${mzClusterListRegex}-replica-${mzReplicaListRegex}-.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">/</span> <span style="color:#66d9ef">avg</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod, container<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  container_spec_memory_limit_bytes{<span contenteditable='true' class='replaceable' data-replace='cAdvisorFilter' title='cAdvisorFilter'>container!="POD", container!=""</span>, container<span style="color:#f92672">!=</span>&#34;<span style="color:#e6db74">new-promsql-exporter</span>&#34;, pod<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span style="color:#e6db74">.*-cluster-${mzClusterListRegex}-replica-${mzReplicaListRegex}-.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">avg</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod, container<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  container_memory_working_set_bytes{<span contenteditable='true' class='replaceable' data-replace='cAdvisorFilter' title='cAdvisorFilter'>container!="POD", container!=""</span>, container<span style="color:#f92672">!=</span>&#34;<span style="color:#e6db74">new-promsql-exporter</span>&#34;, pod<span style="color:#960050;background-color:#1e0010">!~</span>&#34;<span style="color:#e6db74">.*-cluster-.*-replica-.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">/</span> <span style="color:#66d9ef">avg</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod, container<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  container_spec_memory_limit_bytes{<span contenteditable='true' class='replaceable' data-replace='cAdvisorFilter' title='cAdvisorFilter'>container!="POD", container!=""</span>, container<span style="color:#f92672">!=</span>&#34;<span style="color:#e6db74">new-promsql-exporter</span>&#34;, pod<span style="color:#960050;background-color:#1e0010">!~</span>&#34;<span style="color:#e6db74">.*-cluster-.*-replica-.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.kubernetes.pods.memory_usage-tabs" id="materialize.kubernetes.pods.memory_usage-tab-1">
  <label for="materialize.kubernetes.pods.memory_usage-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">avg</span><span style="color:#960050;background-color:#1e0010">:</span>container_memory_working_set_bytes{<span style="color:#960050;background-color:#1e0010">${cAdvisorFilter</span>}, <span style="color:#960050;background-color:#1e0010">!</span>container<span style="color:#960050;background-color:#1e0010">:</span>new<span style="color:#f92672">-</span>promsql<span style="color:#f92672">-</span>exporter, pod<span style="color:#960050;background-color:#1e0010">:</span><span style="color:#f92672">*-</span>cluster<span style="color:#f92672">-</span><span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}<span style="color:#f92672">-</span>replica<span style="color:#f92672">-</span><span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">mzReplicaList</span>}<span style="color:#f92672">-*</span><span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">namespace</span>,<span style="color:#960050;background-color:#1e0010">pod</span>,<span style="color:#960050;background-color:#1e0010">container</span>}
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">/</span> <span style="color:#66d9ef">avg</span><span style="color:#960050;background-color:#1e0010">:</span>container_spec_memory_limit_bytes{<span style="color:#960050;background-color:#1e0010">${cAdvisorFilter</span>}, <span style="color:#960050;background-color:#1e0010">!</span>container<span style="color:#960050;background-color:#1e0010">:</span>new<span style="color:#f92672">-</span>promsql<span style="color:#f92672">-</span>exporter, pod<span style="color:#960050;background-color:#1e0010">:</span><span style="color:#f92672">*-</span>cluster<span style="color:#f92672">-</span><span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}<span style="color:#f92672">-</span>replica<span style="color:#f92672">-</span><span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">mzReplicaList</span>}<span style="color:#f92672">-*</span><span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">namespace</span>,<span style="color:#960050;background-color:#1e0010">pod</span>,<span style="color:#960050;background-color:#1e0010">container</span>}
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">avg</span><span style="color:#960050;background-color:#1e0010">:</span>container_memory_working_set_bytes{<span style="color:#960050;background-color:#1e0010">${cAdvisorFilter</span>}, <span style="color:#960050;background-color:#1e0010">!</span>container<span style="color:#960050;background-color:#1e0010">:</span>new<span style="color:#f92672">-</span>promsql<span style="color:#f92672">-</span>exporter, <span style="color:#960050;background-color:#1e0010">!</span>pod<span style="color:#960050;background-color:#1e0010">:</span><span style="color:#f92672">*-</span>cluster<span style="color:#f92672">-*-</span>replica<span style="color:#f92672">-*</span><span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">namespace</span>,<span style="color:#960050;background-color:#1e0010">pod</span>,<span style="color:#960050;background-color:#1e0010">container</span>}
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">/</span> <span style="color:#66d9ef">avg</span><span style="color:#960050;background-color:#1e0010">:</span>container_spec_memory_limit_bytes{<span style="color:#960050;background-color:#1e0010">${cAdvisorFilter</span>}, <span style="color:#960050;background-color:#1e0010">!</span>container<span style="color:#960050;background-color:#1e0010">:</span>new<span style="color:#f92672">-</span>promsql<span style="color:#f92672">-</span>exporter, <span style="color:#960050;background-color:#1e0010">!</span>pod<span style="color:#960050;background-color:#1e0010">:</span><span style="color:#f92672">*-</span>cluster<span style="color:#f92672">-*-</span>replica<span style="color:#f92672">-*</span><span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">namespace</span>,<span style="color:#960050;background-color:#1e0010">pod</span>,<span style="color:#960050;background-color:#1e0010">container</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.kubernetes.pods.network_rx">materialize.kubernetes.pods.network_rx
  <a class="anchor" href="#materialize.kubernetes.pods.network_rx">#</a>
</h4>
Network bytes/sec received per pod. For cluster pods, Rx tracks ingest
from upstream and inter-pod replication; for envd/balancer it&rsquo;s client
SQL traffic. Surges alongside hydration are normal catchup.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.kubernetes.pods.network_rx-tabs" id="materialize.kubernetes.pods.network_rx-tab-0" checked>
  <label for="materialize.kubernetes.pods.network_rx-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>container_network_receive_bytes_total{namespace<span style="color:#f92672">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzNamespaceList' title='mzNamespaceList'>materialize-environment</span>&#34;, pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">.*-cluster-${mzClusterListRegex}-replica-${mzReplicaListRegex}-.*</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>container_network_receive_bytes_total{namespace<span style="color:#f92672">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzNamespaceList' title='mzNamespaceList'>materialize-environment</span>&#34;, pod<span style="color:#f92672">!~</span>&#34;<span style="color:#e6db74">.*-cluster-.*-replica-.*</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.kubernetes.pods.network_rx-tabs" id="materialize.kubernetes.pods.network_rx-tab-1">
  <label for="materialize.kubernetes.pods.network_rx-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>container_network_receive_bytes_total{<span style="color:#960050;background-color:#1e0010">namespace:${mzNamespaceList</span>}, pod<span style="color:#960050;background-color:#1e0010">:</span><span style="color:#f92672">*-</span>cluster<span style="color:#f92672">-</span><span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}<span style="color:#f92672">-</span>replica<span style="color:#f92672">-</span><span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">mzReplicaList</span>}<span style="color:#f92672">-*</span><span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">namespace</span>,<span style="color:#960050;background-color:#1e0010">pod</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>container_network_receive_bytes_total{<span style="color:#960050;background-color:#1e0010">namespace:${mzNamespaceList</span>}, <span style="color:#960050;background-color:#1e0010">!</span>pod<span style="color:#960050;background-color:#1e0010">:</span><span style="color:#f92672">*-</span>cluster<span style="color:#f92672">-*-</span>replica<span style="color:#f92672">-*</span><span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">namespace</span>,<span style="color:#960050;background-color:#1e0010">pod</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.kubernetes.pods.network_tx">materialize.kubernetes.pods.network_tx
  <a class="anchor" href="#materialize.kubernetes.pods.network_tx">#</a>
</h4>
Network bytes/sec transmitted per pod. For cluster pods Tx covers sink
output, inter-pod replication, and query results returning to envd; for
envd it&rsquo;s client query responses.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.kubernetes.pods.network_tx-tabs" id="materialize.kubernetes.pods.network_tx-tab-0" checked>
  <label for="materialize.kubernetes.pods.network_tx-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>container_network_transmit_bytes_total{namespace<span style="color:#f92672">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzNamespaceList' title='mzNamespaceList'>materialize-environment</span>&#34;, pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">.*-cluster-${mzClusterListRegex}-replica-${mzReplicaListRegex}-.*</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>container_network_transmit_bytes_total{namespace<span style="color:#f92672">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzNamespaceList' title='mzNamespaceList'>materialize-environment</span>&#34;, pod<span style="color:#f92672">!~</span>&#34;<span style="color:#e6db74">.*-cluster-.*-replica-.*</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.kubernetes.pods.network_tx-tabs" id="materialize.kubernetes.pods.network_tx-tab-1">
  <label for="materialize.kubernetes.pods.network_tx-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>container_network_transmit_bytes_total{<span style="color:#960050;background-color:#1e0010">namespace:${mzNamespaceList</span>}, pod<span style="color:#960050;background-color:#1e0010">:</span><span style="color:#f92672">*-</span>cluster<span style="color:#f92672">-</span><span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}<span style="color:#f92672">-</span>replica<span style="color:#f92672">-</span><span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">mzReplicaList</span>}<span style="color:#f92672">-*</span><span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">namespace</span>,<span style="color:#960050;background-color:#1e0010">pod</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>container_network_transmit_bytes_total{<span style="color:#960050;background-color:#1e0010">namespace:${mzNamespaceList</span>}, <span style="color:#960050;background-color:#1e0010">!</span>pod<span style="color:#960050;background-color:#1e0010">:</span><span style="color:#f92672">*-</span>cluster<span style="color:#f92672">-*-</span>replica<span style="color:#f92672">-*</span><span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">namespace</span>,<span style="color:#960050;background-color:#1e0010">pod</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.kubernetes.pods.network_errors">materialize.kubernetes.pods.network_errors
  <a class="anchor" href="#materialize.kubernetes.pods.network_errors">#</a>
</h4>
Network rx + tx errors per pod per second (counted at the NIC/kernel
level).
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.kubernetes.pods.network_errors-tabs" id="materialize.kubernetes.pods.network_errors-tab-0" checked>
  <label for="materialize.kubernetes.pods.network_errors-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>container_network_receive_errors_total{namespace<span style="color:#f92672">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzNamespaceList' title='mzNamespaceList'>materialize-environment</span>&#34;, pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">.*-cluster-${mzClusterListRegex}-replica-${mzReplicaListRegex}-.*</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>container_network_receive_errors_total{namespace<span style="color:#f92672">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzNamespaceList' title='mzNamespaceList'>materialize-environment</span>&#34;, pod<span style="color:#f92672">!~</span>&#34;<span style="color:#e6db74">.*-cluster-.*-replica-.*</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>container_network_transmit_errors_total{namespace<span style="color:#f92672">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzNamespaceList' title='mzNamespaceList'>materialize-environment</span>&#34;, pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">.*-cluster-${mzClusterListRegex}-replica-${mzReplicaListRegex}-.*</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>container_network_transmit_errors_total{namespace<span style="color:#f92672">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzNamespaceList' title='mzNamespaceList'>materialize-environment</span>&#34;, pod<span style="color:#f92672">!~</span>&#34;<span style="color:#e6db74">.*-cluster-.*-replica-.*</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.kubernetes.pods.network_errors-tabs" id="materialize.kubernetes.pods.network_errors-tab-1">
  <label for="materialize.kubernetes.pods.network_errors-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>container_network_receive_errors_total{<span style="color:#960050;background-color:#1e0010">namespace:${mzNamespaceList</span>}, pod<span style="color:#960050;background-color:#1e0010">:</span><span style="color:#f92672">*-</span>cluster<span style="color:#f92672">-</span><span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}<span style="color:#f92672">-</span>replica<span style="color:#f92672">-</span><span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">mzReplicaList</span>}<span style="color:#f92672">-*</span><span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">namespace</span>,<span style="color:#960050;background-color:#1e0010">pod</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>container_network_receive_errors_total{<span style="color:#960050;background-color:#1e0010">namespace:${mzNamespaceList</span>}, <span style="color:#960050;background-color:#1e0010">!</span>pod<span style="color:#960050;background-color:#1e0010">:</span><span style="color:#f92672">*-</span>cluster<span style="color:#f92672">-*-</span>replica<span style="color:#f92672">-*</span><span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">namespace</span>,<span style="color:#960050;background-color:#1e0010">pod</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>container_network_transmit_errors_total{<span style="color:#960050;background-color:#1e0010">namespace:${mzNamespaceList</span>}, pod<span style="color:#960050;background-color:#1e0010">:</span><span style="color:#f92672">*-</span>cluster<span style="color:#f92672">-</span><span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}<span style="color:#f92672">-</span>replica<span style="color:#f92672">-</span><span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">mzReplicaList</span>}<span style="color:#f92672">-*</span><span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">namespace</span>,<span style="color:#960050;background-color:#1e0010">pod</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>container_network_transmit_errors_total{<span style="color:#960050;background-color:#1e0010">namespace:${mzNamespaceList</span>}, <span style="color:#960050;background-color:#1e0010">!</span>pod<span style="color:#960050;background-color:#1e0010">:</span><span style="color:#f92672">*-</span>cluster<span style="color:#f92672">-*-</span>replica<span style="color:#f92672">-*</span><span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">namespace</span>,<span style="color:#960050;background-color:#1e0010">pod</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.kubernetes.pods.network_drops">materialize.kubernetes.pods.network_drops
  <a class="anchor" href="#materialize.kubernetes.pods.network_drops">#</a>
</h4>
Network packets dropped (rx + tx) per pod per second — when kernel
buffers fill faster than the app reads (rx) or egress rate-limiting
kicks in (tx).
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.kubernetes.pods.network_drops-tabs" id="materialize.kubernetes.pods.network_drops-tab-0" checked>
  <label for="materialize.kubernetes.pods.network_drops-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>container_network_receive_packets_dropped_total{namespace<span style="color:#f92672">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzNamespaceList' title='mzNamespaceList'>materialize-environment</span>&#34;, pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">.*-cluster-${mzClusterListRegex}-replica-${mzReplicaListRegex}-.*</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>container_network_receive_packets_dropped_total{namespace<span style="color:#f92672">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzNamespaceList' title='mzNamespaceList'>materialize-environment</span>&#34;, pod<span style="color:#f92672">!~</span>&#34;<span style="color:#e6db74">.*-cluster-.*-replica-.*</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>container_network_transmit_packets_dropped_total{namespace<span style="color:#f92672">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzNamespaceList' title='mzNamespaceList'>materialize-environment</span>&#34;, pod<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">.*-cluster-${mzClusterListRegex}-replica-${mzReplicaListRegex}-.*</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, pod<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>container_network_transmit_packets_dropped_total{namespace<span style="color:#f92672">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzNamespaceList' title='mzNamespaceList'>materialize-environment</span>&#34;, pod<span style="color:#f92672">!~</span>&#34;<span style="color:#e6db74">.*-cluster-.*-replica-.*</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.kubernetes.pods.network_drops-tabs" id="materialize.kubernetes.pods.network_drops-tab-1">
  <label for="materialize.kubernetes.pods.network_drops-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>container_network_receive_packets_dropped_total{<span style="color:#960050;background-color:#1e0010">namespace:${mzNamespaceList</span>}, pod<span style="color:#960050;background-color:#1e0010">:</span><span style="color:#f92672">*-</span>cluster<span style="color:#f92672">-</span><span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}<span style="color:#f92672">-</span>replica<span style="color:#f92672">-</span><span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">mzReplicaList</span>}<span style="color:#f92672">-*</span><span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">namespace</span>,<span style="color:#960050;background-color:#1e0010">pod</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>container_network_receive_packets_dropped_total{<span style="color:#960050;background-color:#1e0010">namespace:${mzNamespaceList</span>}, <span style="color:#960050;background-color:#1e0010">!</span>pod<span style="color:#960050;background-color:#1e0010">:</span><span style="color:#f92672">*-</span>cluster<span style="color:#f92672">-*-</span>replica<span style="color:#f92672">-*</span><span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">namespace</span>,<span style="color:#960050;background-color:#1e0010">pod</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>container_network_transmit_packets_dropped_total{<span style="color:#960050;background-color:#1e0010">namespace:${mzNamespaceList</span>}, pod<span style="color:#960050;background-color:#1e0010">:</span><span style="color:#f92672">*-</span>cluster<span style="color:#f92672">-</span><span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}<span style="color:#f92672">-</span>replica<span style="color:#f92672">-</span><span style="color:#960050;background-color:#1e0010">$</span>{<span style="color:#960050;background-color:#1e0010">mzReplicaList</span>}<span style="color:#f92672">-*</span><span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">namespace</span>,<span style="color:#960050;background-color:#1e0010">pod</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>container_network_transmit_packets_dropped_total{<span style="color:#960050;background-color:#1e0010">namespace:${mzNamespaceList</span>}, <span style="color:#960050;background-color:#1e0010">!</span>pod<span style="color:#960050;background-color:#1e0010">:</span><span style="color:#f92672">*-</span>cluster<span style="color:#f92672">-*-</span>replica<span style="color:#f92672">-*</span><span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">namespace</span>,<span style="color:#960050;background-color:#1e0010">pod</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
  </div>
</div>

## materialize-logs

<p>Logs, as collected by the monitoring stack and stored in Loki.</p>
<p>Every query here is LogQL, and the scope is <strong>Loki-discovered end to end</strong>:
namespace, app and level come from Loki&rsquo;s own label values rather than from the
metrics pipeline. That is deliberate. Reading logs is frequently how an operator
works out why the <em>metrics</em> pipeline is broken, and a logs dashboard that
derived its scope from Prometheus would go blind at exactly the moment it is
most needed.</p>
<p>The label contract the agent and gateway produce is documented under
<a href="../../../logs-and-events/querying/">Logs and Events</a>. What matters here:
<code>namespace</code>, <code>app</code>, <code>level</code> and <code>container</code> are stream labels and belong in the
selector; <code>pod</code>, <code>node</code>, <code>organization_name</code> and the rest are structured
metadata and are filtered after a <code>|</code>. Narrowing the selector before the line
filters is the single biggest speedup.</p>
<p>Every selector here carries <code>%%{mzLogJobFilter}</code>, and it is not only a filter.
LogQL rejects a stream selector whose every matcher can match the empty string —
<em>&ldquo;queries require at least one regexp or equality matcher that does not have an
empty-compatible value&rdquo;</em> — and a dashboard built from <code>=~</code> pickers is exactly
that shape. The job picker&rsquo;s &ldquo;All&rdquo; is <code>.+</code> rather than the discovered values, so
it always contributes a non-empty matcher and the selector parses whatever the
other pickers are set to. Without it, &ldquo;All&rdquo; everywhere is a query error rather
than a wide result.</p>
<p>The event queries in <code>materialize-events.yaml</code> need no such anchor: they pin
<code>job=&quot;loki.source.kubernetes_events&quot;</code>, which is already a non-empty equality
matcher, and a second <code>job</code> matcher would AND with it and zero the panel.</p>
<p><code>level</code> is normalized by the pipeline where it can be and falls back to
<code>UNKNOWN</code>, so the levels present are a property of the workloads running rather
than a fixed vocabulary — which is why the dashboard discovers them instead of
hard-coding a list.</p>

<h4 id="materialize.logs.stream">materialize.logs.stream
  <a class="anchor" href="#materialize.logs.stream">#</a>
</h4>
The log feed for the selected namespaces, apps and levels, newest first.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.logs.stream-tabs" id="materialize.logs.stream-tab-0" checked>
  <label for="materialize.logs.stream-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="materialize.logs.rate.by_app">materialize.logs.rate.by_app
  <a class="anchor" href="#materialize.logs.rate.by_app">#</a>
</h4>
Log lines per second by application — which component is doing the
talking.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.logs.rate.by_app-tabs" id="materialize.logs.rate.by_app-tab-0" checked>
  <label for="materialize.logs.rate.by_app-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="materialize.logs.rate.by_level">materialize.logs.rate.by_level
  <a class="anchor" href="#materialize.logs.rate.by_level">#</a>
</h4>
Log lines per second by severity — the shape of how much of the volume is
something going wrong.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.logs.rate.by_level-tabs" id="materialize.logs.rate.by_level-tab-0" checked>
  <label for="materialize.logs.rate.by_level-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="materialize.logs.rate.total">materialize.logs.rate.total
  <a class="anchor" href="#materialize.logs.rate.total">#</a>
</h4>
Total log lines per second reaching Loki for the current selection,
averaged over each interval.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.logs.rate.total-tabs" id="materialize.logs.rate.total-tab-0" checked>
  <label for="materialize.logs.rate.total-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="materialize.logs.warnings.rate">materialize.logs.warnings.rate
  <a class="anchor" href="#materialize.logs.warnings.rate">#</a>
</h4>
Warning-and-worse log lines per minute, as one series — the at-a-glance
answer to whether anything is complaining.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.logs.warnings.rate-tabs" id="materialize.logs.warnings.rate-tab-0" checked>
  <label for="materialize.logs.warnings.rate-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="materialize.logs.warnings.stream">materialize.logs.warnings.stream
  <a class="anchor" href="#materialize.logs.warnings.stream">#</a>
</h4>
The warning-and-worse feed, newest first — what the components are
actually complaining about.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.logs.warnings.stream-tabs" id="materialize.logs.warnings.stream-tab-0" checked>
  <label for="materialize.logs.warnings.stream-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>

## materialize-operator

<p>How the Materialize operator&rsquo;s reconciliation loop is behaving.</p>
<p>orchestratord watches the <code>Materialize</code>, <code>Balancer</code> and <code>Console</code> resources
and drives each toward the state its spec asks for. One trip through that
work is a <em>pass</em>, and a pass moves through named <em>steps</em>. Both are counted by
outcome, and both are timed, which is what lets a stuck rollout say not just
that it is stuck but which phase it is stuck in.</p>
<p>These are the operator&rsquo;s own metrics, scraped from its pods in the operator
namespace, so they are scoped by <code>%%{mzOperatorNamespaceFilter}</code> and by
nothing else. <strong>They carry no organization label</strong>, so the environment picker
does not narrow them: one operator reconciles every environment in the
cluster, and its loop is a single shared thing rather than a per-environment
one.</p>
<p>Only the replica holding the leadership lease reconciles. The others export
the same metric families sitting at zero, which is why every query here sums
across replicas rather than picking one out.</p>

<h4 id="materialize.operator.reconciling.replicas">materialize.operator.reconciling.replicas
  <a class="anchor" href="#materialize.operator.reconciling.replicas">#</a>
</h4>
How many operator replicas hold the leadership lease and are therefore
reconciling. This should be exactly one.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.operator.reconciling.replicas-tabs" id="materialize.operator.reconciling.replicas-tab-0" checked>
  <label for="materialize.operator.reconciling.replicas-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">or</span>chestratord_is_leader{<span contenteditable='true' class='replaceable' data-replace='mzOperatorNamespaceFilter' title='mzOperatorNamespaceFilter'>namespace=~"materialize"</span><span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.operator.environments.needing_update">materialize.operator.environments.needing_update
  <a class="anchor" href="#materialize.operator.environments.needing_update">#</a>
</h4>
How many environments in this cluster are still running an outdated pod
template — the count an upgrade is working to bring to zero.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.operator.environments.needing_update-tabs" id="materialize.operator.environments.needing_update-tab-0" checked>
  <label for="materialize.operator.environments.needing_update-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  environmentd_needs_update{<span contenteditable='true' class='replaceable' data-replace='mzOperatorNamespaceFilter' title='mzOperatorNamespaceFilter'>namespace=~"materialize"</span><span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.operator.reconciliation.rate">materialize.operator.reconciliation.rate
  <a class="anchor" href="#materialize.operator.reconciliation.rate">#</a>
</h4>
Reconciliation passes per second across every controller — whether the
loop is turning at all.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.operator.reconciliation.rate-tabs" id="materialize.operator.reconciliation.rate-tab-0" checked>
  <label for="materialize.operator.reconciliation.rate-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">or</span>chestratord_reconciliations_total{<span contenteditable='true' class='replaceable' data-replace='mzOperatorNamespaceFilter' title='mzOperatorNamespaceFilter'>namespace=~"materialize"</span><span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.operator.reconciliation.failures.total">materialize.operator.reconciliation.failures.total
  <a class="anchor" href="#materialize.operator.reconciliation.failures.total">#</a>
</h4>
Reconciliation passes that returned an error over the selected time
range.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.operator.reconciliation.failures.total-tabs" id="materialize.operator.reconciliation.failures.total-tab-0" checked>
  <label for="materialize.operator.reconciliation.failures.total-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">increase</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">or</span>chestratord_reconciliations_total{
</span></span><span style="display:flex;"><span>      <span contenteditable='true' class='replaceable' data-replace='mzOperatorNamespaceFilter' title='mzOperatorNamespaceFilter'>namespace=~"materialize"</span>, outcome<span style="color:#960050;background-color:#1e0010">=</span>&#34;<span style="color:#e6db74">failed</span>&#34;
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='range' title='range'>[1h]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.operator.reconciliation.outcomes">materialize.operator.reconciliation.outcomes
  <a class="anchor" href="#materialize.operator.reconciliation.outcomes">#</a>
</h4>
What reconciliation passes concluded, by outcome. The shape of a
rollout: <code>waiting</code> climbs while the new generation&rsquo;s pods come up, then
gives way to <code>applied</code> when they are ready.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.operator.reconciliation.outcomes-tabs" id="materialize.operator.reconciliation.outcomes-tab-0" checked>
  <label for="materialize.operator.reconciliation.outcomes-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>outcome<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">or</span>chestratord_reconciliations_total{<span contenteditable='true' class='replaceable' data-replace='mzOperatorNamespaceFilter' title='mzOperatorNamespaceFilter'>namespace=~"materialize"</span><span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.operator.reconciliation.failures.by_controller">materialize.operator.reconciliation.failures.by_controller
  <a class="anchor" href="#materialize.operator.reconciliation.failures.by_controller">#</a>
</h4>
Failing passes broken out by which controller failed and which of its
entry points was running — the first question after &ldquo;something is
failing&rdquo;.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.operator.reconciliation.failures.by_controller-tabs" id="materialize.operator.reconciliation.failures.by_controller-tab-0" checked>
  <label for="materialize.operator.reconciliation.failures.by_controller-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>controller, event_type<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">or</span>chestratord_reconciliations_total{
</span></span><span style="display:flex;"><span>      <span contenteditable='true' class='replaceable' data-replace='mzOperatorNamespaceFilter' title='mzOperatorNamespaceFilter'>namespace=~"materialize"</span>, outcome<span style="color:#960050;background-color:#1e0010">=</span>&#34;<span style="color:#e6db74">failed</span>&#34;
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.operator.reconciliation.duration">materialize.operator.reconciliation.duration
  <a class="anchor" href="#materialize.operator.reconciliation.duration">#</a>
</h4>
How long one reconciliation pass takes, at the 50th, 90th and 99th
percentiles.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.operator.reconciliation.duration-tabs" id="materialize.operator.reconciliation.duration-tab-0" checked>
  <label for="materialize.operator.reconciliation.duration-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span><span style="color:#ae81ff">0.5</span>, <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">or</span>chestratord_reconciliation_duration_seconds_bucket{
</span></span><span style="display:flex;"><span>      <span contenteditable='true' class='replaceable' data-replace='mzOperatorNamespaceFilter' title='mzOperatorNamespaceFilter'>namespace=~"materialize"</span>
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span><span style="color:#ae81ff">0.9</span>, <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">or</span>chestratord_reconciliation_duration_seconds_bucket{
</span></span><span style="display:flex;"><span>      <span contenteditable='true' class='replaceable' data-replace='mzOperatorNamespaceFilter' title='mzOperatorNamespaceFilter'>namespace=~"materialize"</span>
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span><span style="color:#ae81ff">0.99</span>, <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">or</span>chestratord_reconciliation_duration_seconds_bucket{
</span></span><span style="display:flex;"><span>      <span contenteditable='true' class='replaceable' data-replace='mzOperatorNamespaceFilter' title='mzOperatorNamespaceFilter'>namespace=~"materialize"</span>
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.operator.reconciliation.step.duration.p99">materialize.operator.reconciliation.step.duration.p99
  <a class="anchor" href="#materialize.operator.reconciliation.step.duration.p99">#</a>
</h4>
The slowest phase of a reconciliation pass, at the 99th percentile per
step — where the time in a pass actually goes.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.operator.reconciliation.step.duration.p99-tabs" id="materialize.operator.reconciliation.step.duration.p99-tab-0" checked>
  <label for="materialize.operator.reconciliation.step.duration.p99-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span><span style="color:#ae81ff">0.99</span>, <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le, step<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">or</span>chestratord_reconciliation_step_duration_seconds_bucket{
</span></span><span style="display:flex;"><span>      <span contenteditable='true' class='replaceable' data-replace='mzOperatorNamespaceFilter' title='mzOperatorNamespaceFilter'>namespace=~"materialize"</span>
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.operator.reconciliation.steps.rate">materialize.operator.reconciliation.steps.rate
  <a class="anchor" href="#materialize.operator.reconciliation.steps.rate">#</a>
</h4>
Which phases of reconciliation are running, and how often. A rollout
moves through these in order, so the set that is active says where the
operator has got to.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.operator.reconciliation.steps.rate-tabs" id="materialize.operator.reconciliation.steps.rate-tab-0" checked>
  <label for="materialize.operator.reconciliation.steps.rate-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>step<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">or</span>chestratord_reconciliation_steps_total{<span contenteditable='true' class='replaceable' data-replace='mzOperatorNamespaceFilter' title='mzOperatorNamespaceFilter'>namespace=~"materialize"</span><span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.operator.reconciliation.steps.incomplete">materialize.operator.reconciliation.steps.incomplete
  <a class="anchor" href="#materialize.operator.reconciliation.steps.incomplete">#</a>
</h4>
Steps that did not complete, by step and by how they ended — the panel
that turns &ldquo;reconciliation is failing&rdquo; into &ldquo;reconciliation is failing
<em>here</em>&rdquo;.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.operator.reconciliation.steps.incomplete-tabs" id="materialize.operator.reconciliation.steps.incomplete-tab-0" checked>
  <label for="materialize.operator.reconciliation.steps.incomplete-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>step, outcome<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">or</span>chestratord_reconciliation_steps_total{
</span></span><span style="display:flex;"><span>      <span contenteditable='true' class='replaceable' data-replace='mzOperatorNamespaceFilter' title='mzOperatorNamespaceFilter'>namespace=~"materialize"</span>, outcome<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span style="color:#e6db74">failed|abandoned</span>&#34;
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>

## materialize-persist

<p>Object storage (the persist bucket), from the vantage point of the
Materialize processes that use it.</p>
<p>Persist is Materialize&rsquo;s storage layer. Every durable collection — a table, a
source, a materialized view, the catalog itself — is a persist <em>shard</em>: data
files in object storage, plus a small record of the shard&rsquo;s current state in
the metadata database. That second half is <code>materialize-consensus.yaml</code>; this
file is the first. Writers upload new data as immutable parts, compaction
merges small parts into larger ones and deletes what it replaced, and readers
fetch parts — through an in-memory cache — to hydrate and to serve queries.</p>
<p>Everything here is the <strong>client&rsquo;s</strong> measurement: what a Materialize process
experienced, including the network between it and the store. It is identical
on S3, GCS (which Materialize reaches through GCS&rsquo;s S3-compatible API), Azure
Blob and any S3-compatible on-premise store, and needs no cloud credentials.
What the bucket itself reports — its size, its object count, reclaimable
waste — is on <code>infra-cloud</code>.</p>
<h2 id="label-families">Label families<a class="anchor" href="#label-families">#</a></h2>
<p><code>op</code> on <code>mz_persist_external_*</code> is the operation: <code>blob_get</code>, <code>blob_set</code>,
<code>blob_delete</code>, <code>blob_list_keys</code> and <code>restore</code>. The <code>consensus_*</code> values of
the same label are the metadata database. <code>mz_persist_external_op_latency</code> is
a histogram for <code>blob_get</code> and <code>blob_set</code> only; the rest have a mean from
<code>_seconds / _started_count</code>.</p>
<p><code>mz_persist_s3_*</code> is the S3 client beneath persist, used on S3, GCS and
S3-compatible stores but not on Azure Blob, which Materialize reaches with
Azure&rsquo;s own client. The counters are registered on every install, though, so
on Azure they exist and read zero; queries on them gate on the client making
calls. It is the only family carrying the store&rsquo;s error <em>code</em> (created on
first error, so absent until then), and its <code>op</code> values are raw API calls
(<code>get_part</code>, <code>set_single</code>, <code>delete_object</code>, …) rather than persist
operations.</p>
<p><code>op</code> on <code>mz_persist_retry_*</code> is a retry loop named after the work. The ones
in <code>materialize.persist.retries.by_operation</code> wrap object-storage calls; the
consensus file owns the rest, and <code>next_listen_batch</code> and <code>snapshot</code> are
polling loops that must never be drawn as retries.</p>
<p>The <code>mz_persist_shard_usage_*</code> families are per shard, and each process
reports every shard it has open, so any total over them takes a <code>max by (shard)</code> first. environmentd has every shard open, so the deduplicated total
is the environment&rsquo;s.</p>
<p>Every mean and share here is a ratio of two rates wrapped in <code>(…) &gt;= 0</code>, for
the reason <code>materialize-consensus.yaml</code> gives: a window with no calls divides
zero by zero.</p>

<h4 id="materialize.persist.health.failed_ops">materialize.persist.health.failed_ops
  <a class="anchor" href="#materialize.persist.health.failed_ops">#</a>
</h4>
Object storage calls that failed, per second, across every Materialize
process in this environment.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.persist.health.failed_ops-tabs" id="materialize.persist.health.failed_ops-tab-0" checked>
  <label for="materialize.persist.health.failed_ops-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_external_failed_count{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, op<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span style="color:#e6db74">blob_.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.persist.health.read_latency_p99">materialize.persist.health.read_latency_p99
  <a class="anchor" href="#materialize.persist.health.read_latency_p99">#</a>
</h4>
How long the slowest 1% of reads from object storage take.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.persist.health.read_latency_p99-tabs" id="materialize.persist.health.read_latency_p99-tab-0" checked>
  <label for="materialize.persist.health.read_latency_p99-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span><span style="color:#ae81ff">0.99</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_external_op_latency_bucket{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, op<span style="color:#960050;background-color:#1e0010">=</span>&#34;<span style="color:#e6db74">blob_get</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.persist.health.write_latency_p99">materialize.persist.health.write_latency_p99
  <a class="anchor" href="#materialize.persist.health.write_latency_p99">#</a>
</h4>
How long the slowest 1% of writes to object storage take.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.persist.health.write_latency_p99-tabs" id="materialize.persist.health.write_latency_p99-tab-0" checked>
  <label for="materialize.persist.health.write_latency_p99-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span><span style="color:#ae81ff">0.99</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_external_op_latency_bucket{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, op<span style="color:#960050;background-color:#1e0010">=</span>&#34;<span style="color:#e6db74">blob_set</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.persist.health.write_stalls">materialize.persist.health.write_stalls
  <a class="anchor" href="#materialize.persist.health.write_stalls">#</a>
</h4>
Writes that had to wait because too many uploads were already in
flight, per second.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.persist.health.write_stalls-tabs" id="materialize.persist.health.write_stalls-tab-0" checked>
  <label for="materialize.persist.health.write_stalls-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_user_write_stall_count{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">+</span> <span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_compaction_write_stall_count{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.persist.health.compaction_failures">materialize.persist.health.compaction_failures
  <a class="anchor" href="#materialize.persist.health.compaction_failures">#</a>
</h4>
Compactions that failed or timed out, per second.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.persist.health.compaction_failures-tabs" id="materialize.persist.health.compaction_failures-tab-0" checked>
  <label for="materialize.persist.health.compaction_failures-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_compaction_failed{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">+</span> <span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_compaction_timed_out{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.persist.health.stored">materialize.persist.health.stored
  <a class="anchor" href="#materialize.persist.health.stored">#</a>
</h4>
Data this environment&rsquo;s current state refers to in object storage.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.persist.health.stored-tabs" id="materialize.persist.health.stored-tab-0" checked>
  <label for="materialize.persist.health.stored-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>shard<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>mz_persist_shard_usage_current_state_batches_bytes{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span style="color:#f92672">))</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">+</span> <span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>shard<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>mz_persist_shard_usage_current_state_rollups_bytes{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.persist.latency.read_write">materialize.persist.latency.read_write
  <a class="anchor" href="#materialize.persist.latency.read_write">#</a>
</h4>
Read and write latency to object storage: the median and the slowest
1% of each.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.persist.latency.read_write-tabs" id="materialize.persist.latency.read_write-tab-0" checked>
  <label for="materialize.persist.latency.read_write-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span><span style="color:#ae81ff">0.50</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_external_op_latency_bucket{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, op<span style="color:#960050;background-color:#1e0010">=</span>&#34;<span style="color:#e6db74">blob_get</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span><span style="color:#ae81ff">0.99</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_external_op_latency_bucket{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, op<span style="color:#960050;background-color:#1e0010">=</span>&#34;<span style="color:#e6db74">blob_get</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span><span style="color:#ae81ff">0.50</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_external_op_latency_bucket{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, op<span style="color:#960050;background-color:#1e0010">=</span>&#34;<span style="color:#e6db74">blob_set</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span><span style="color:#ae81ff">0.99</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_external_op_latency_bucket{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, op<span style="color:#960050;background-color:#1e0010">=</span>&#34;<span style="color:#e6db74">blob_set</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.persist.latency.round_trip">materialize.persist.latency.round_trip
  <a class="anchor" href="#materialize.persist.latency.round_trip">#</a>
</h4>
The round trip from each Materialize process to object storage, as
that process last measured it.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.persist.latency.round_trip-tabs" id="materialize.persist.latency.round_trip-tab-0" checked>
  <label for="materialize.persist.latency.round_trip-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>app, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  mz_persist_external_rtt_latency{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, external<span style="color:#960050;background-color:#1e0010">=</span>&#34;<span style="color:#e6db74">blob</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.persist.failures.by_operation">materialize.persist.failures.by_operation
  <a class="anchor" href="#materialize.persist.failures.by_operation">#</a>
</h4>
Failed object storage calls per second, by operation.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.persist.failures.by_operation-tabs" id="materialize.persist.failures.by_operation-tab-0" checked>
  <label for="materialize.persist.failures.by_operation-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>op<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_external_failed_count{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, op<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span style="color:#e6db74">blob_.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.persist.failures.store_errors">materialize.persist.failures.store_errors
  <a class="anchor" href="#materialize.persist.failures.store_errors">#</a>
</h4>
Errors the object store returned, per second, by API call and error
code.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.persist.failures.store_errors-tabs" id="materialize.persist.failures.store_errors-tab-0" checked>
  <label for="materialize.persist.failures.store_errors-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>op, code<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_s3_errors{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.persist.failures.timeouts">materialize.persist.failures.timeouts
  <a class="anchor" href="#materialize.persist.failures.timeouts">#</a>
</h4>
Object storage requests that timed out, per second, by where they
timed out.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.persist.failures.timeouts-tabs" id="materialize.persist.failures.timeouts-tab-0" checked>
  <label for="materialize.persist.failures.timeouts-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_s3_connect_timeouts{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">and</span> <span style="color:#66d9ef">on</span> <span style="color:#f92672">()</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_s3_operations{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span> <span style="color:#f92672">&gt;</span> <span style="color:#ae81ff">0</span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_s3_read_timeouts{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">and</span> <span style="color:#66d9ef">on</span> <span style="color:#f92672">()</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_s3_operations{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span> <span style="color:#f92672">&gt;</span> <span style="color:#ae81ff">0</span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_s3_operation_attempt_timeouts{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">and</span> <span style="color:#66d9ef">on</span> <span style="color:#f92672">()</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_s3_operations{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span> <span style="color:#f92672">&gt;</span> <span style="color:#ae81ff">0</span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_s3_operation_timeouts{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">and</span> <span style="color:#66d9ef">on</span> <span style="color:#f92672">()</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_s3_operations{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span> <span style="color:#f92672">&gt;</span> <span style="color:#ae81ff">0</span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.persist.logs.retries">materialize.persist.logs.retries
  <a class="anchor" href="#materialize.persist.logs.retries">#</a>
</h4>
What Materialize logged while retrying calls to object storage, with
the store&rsquo;s own error text.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.persist.logs.retries-tabs" id="materialize.persist.logs.retries-tab-0" checked>
  <label for="materialize.persist.logs.retries-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"></code></pre></div>
  </div>
</div>
<h4 id="materialize.persist.ops.by_type">materialize.persist.ops.by_type
  <a class="anchor" href="#materialize.persist.ops.by_type">#</a>
</h4>
Object storage calls per second, by operation.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.persist.ops.by_type-tabs" id="materialize.persist.ops.by_type-tab-0" checked>
  <label for="materialize.persist.ops.by_type-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>op<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_external_started_count{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, op<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span style="color:#e6db74">blob_.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.persist.ops.throughput">materialize.persist.ops.throughput
  <a class="anchor" href="#materialize.persist.ops.throughput">#</a>
</h4>
Bytes per second read from and written to object storage, by
operation.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.persist.ops.throughput-tabs" id="materialize.persist.ops.throughput-tab-0" checked>
  <label for="materialize.persist.ops.throughput-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>op<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_external_bytes_count{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, op<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span style="color:#e6db74">blob_.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.persist.ops.requests">materialize.persist.ops.requests
  <a class="anchor" href="#materialize.persist.ops.requests">#</a>
</h4>
Requests sent to the object store&rsquo;s API per second, by call — the
count a cloud provider bills.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.persist.ops.requests-tabs" id="materialize.persist.ops.requests-tab-0" checked>
  <label for="materialize.persist.ops.requests-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>op<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_s3_operations{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">and</span> <span style="color:#66d9ef">on</span> <span style="color:#f92672">()</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_s3_operations{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span> <span style="color:#f92672">&gt;</span> <span style="color:#ae81ff">0</span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.persist.latency.mean_by_operation">materialize.persist.latency.mean_by_operation
  <a class="anchor" href="#materialize.persist.latency.mean_by_operation">#</a>
</h4>
Average time per object storage call, by operation.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.persist.latency.mean_by_operation-tabs" id="materialize.persist.latency.mean_by_operation-tab-0" checked>
  <label for="materialize.persist.latency.mean_by_operation-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>op<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_external_seconds{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, op<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span style="color:#e6db74">blob_.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">/</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>op<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_external_started_count{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, op<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span style="color:#e6db74">blob_.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">&gt;=</span> <span style="color:#ae81ff">0</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.persist.latency.read_by_process">materialize.persist.latency.read_by_process
  <a class="anchor" href="#materialize.persist.latency.read_by_process">#</a>
</h4>
Slowest 1% of reads from object storage, by the process making them.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.persist.latency.read_by_process-tabs" id="materialize.persist.latency.read_by_process-tab-0" checked>
  <label for="materialize.persist.latency.read_by_process-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span><span style="color:#ae81ff">0.99</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le, app, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_external_op_latency_bucket{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, op<span style="color:#960050;background-color:#1e0010">=</span>&#34;<span style="color:#e6db74">blob_get</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.persist.retries.by_operation">materialize.persist.retries.by_operation
  <a class="anchor" href="#materialize.persist.retries.by_operation">#</a>
</h4>
Object storage calls retried after a failure, per second, by the work
that was retrying.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.persist.retries.by_operation-tabs" id="materialize.persist.retries.by_operation-tab-0" checked>
  <label for="materialize.persist.retries.by_operation-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>op<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_retry_retries_count{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, op<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span style="color:#e6db74">batch::set|batch::delete|fetch_batch::get|rollup::get|rollup::set|rollup::delete|hollow_run::get|hollow_run::set|blob::open|compaction_noop::delete|storage_usage::shard_size</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.persist.cache.hits">materialize.persist.cache.hits
  <a class="anchor" href="#materialize.persist.cache.hits">#</a>
</h4>
Share of bytes read that the in-memory cache served, rather than
object storage.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.persist.cache.hits-tabs" id="materialize.persist.cache.hits-tab-0" checked>
  <label for="materialize.persist.cache.hits-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_blob_cache_hits_bytes{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">/</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_blob_cache_hits_bytes{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">+</span> <span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_external_bytes_count{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, op<span style="color:#960050;background-color:#1e0010">=</span>&#34;<span style="color:#e6db74">blob_get</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">&gt;=</span> <span style="color:#ae81ff">0</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.persist.hedging">materialize.persist.hedging
  <a class="anchor" href="#materialize.persist.hedging">#</a>
</h4>
Reads that were slow enough to send a second, duplicate request, and
how many of those the duplicate won, per second.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.persist.hedging-tabs" id="materialize.persist.hedging-tab-0" checked>
  <label for="materialize.persist.hedging-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_blob_hedges_fired{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_blob_hedges_won{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.persist.compaction.outcomes">materialize.persist.compaction.outcomes
  <a class="anchor" href="#materialize.persist.compaction.outcomes">#</a>
</h4>
What happened to compaction requests, per second.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.persist.compaction.outcomes-tabs" id="materialize.persist.compaction.outcomes-tab-0" checked>
  <label for="materialize.persist.compaction.outcomes-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_compaction_requested{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_compaction_started{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_compaction_applied{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_compaction_failed{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_compaction_timed_out{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_compaction_dropped{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.persist.compaction.queue_wait">materialize.persist.compaction.queue_wait
  <a class="anchor" href="#materialize.persist.compaction.queue_wait">#</a>
</h4>
Average time a compaction request waits in the queue before it starts.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.persist.compaction.queue_wait-tabs" id="materialize.persist.compaction.queue_wait-tab-0" checked>
  <label for="materialize.persist.compaction.queue_wait-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_compaction_queued_seconds{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">/</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_compaction_started{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">&gt;=</span> <span style="color:#ae81ff">0</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.persist.compaction.busy">materialize.persist.compaction.busy
  <a class="anchor" href="#materialize.persist.compaction.busy">#</a>
</h4>
Compactions running at once, on average, by process.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.persist.compaction.busy-tabs" id="materialize.persist.compaction.busy-tab-0" checked>
  <label for="materialize.persist.compaction.busy-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>app, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_compaction_seconds{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.persist.writes.amplification">materialize.persist.writes.amplification
  <a class="anchor" href="#materialize.persist.writes.amplification">#</a>
</h4>
Bytes per second of new data written to object storage, beside the
bytes compaction rewrites.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.persist.writes.amplification-tabs" id="materialize.persist.writes.amplification-tab-0" checked>
  <label for="materialize.persist.writes.amplification-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_user_bytes{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_compaction_bytes{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.persist.writes.stalls_by_process">materialize.persist.writes.stalls_by_process
  <a class="anchor" href="#materialize.persist.writes.stalls_by_process">#</a>
</h4>
Writes that waited for in-flight uploads to finish, per second, by
process.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.persist.writes.stalls_by_process-tabs" id="materialize.persist.writes.stalls_by_process-tab-0" checked>
  <label for="materialize.persist.writes.stalls_by_process-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>app, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_user_write_stall_count{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">+</span> <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_persist_compaction_write_stall_count{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.persist.usage.by_state">materialize.persist.usage.by_state
  <a class="anchor" href="#materialize.persist.usage.by_state">#</a>
</h4>
What this environment&rsquo;s data in object storage is for.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.persist.usage.by_state-tabs" id="materialize.persist.usage.by_state-tab-0" checked>
  <label for="materialize.persist.usage.by_state-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>shard<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>mz_persist_shard_usage_current_state_batches_bytes{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>shard<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>mz_persist_shard_usage_current_state_rollups_bytes{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>shard<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>mz_persist_shard_usage_referenced_not_current_state_bytes{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>shard<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>mz_persist_shard_usage_not_leaked_not_referenced_bytes{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>shard<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>mz_persist_shard_usage_leaked_bytes{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.persist.usage.leaked">materialize.persist.usage.leaked
  <a class="anchor" href="#materialize.persist.usage.leaked">#</a>
</h4>
Data in object storage that nothing refers to and that cleanup did not
remove.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.persist.usage.leaked-tabs" id="materialize.persist.usage.leaked-tab-0" checked>
  <label for="materialize.persist.usage.leaked-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>shard<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>mz_persist_shard_usage_leaked_bytes{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.persist.usage.largest">materialize.persist.usage.largest
  <a class="anchor" href="#materialize.persist.usage.largest">#</a>
</h4>
The ten objects using the most object storage, now.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.persist.usage.largest-tabs" id="materialize.persist.usage.largest-tab-0" checked>
  <label for="materialize.persist.usage.largest-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">topk</span><span style="color:#f92672">(</span><span style="color:#ae81ff">10</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>shard<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>mz_persist_shard_usage_current_state_batches_bytes{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">+</span> <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>shard<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>mz_persist_shard_usage_current_state_rollups_bytes{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.persist.usage.held">materialize.persist.usage.held
  <a class="anchor" href="#materialize.persist.usage.held">#</a>
</h4>
The ten objects keeping the most data only because a reader still
needs an older version of it.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.persist.usage.held-tabs" id="materialize.persist.usage.held-tab-0" checked>
  <label for="materialize.persist.usage.held-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">topk</span><span style="color:#f92672">(</span><span style="color:#ae81ff">10</span>, <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>shard<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>mz_persist_shard_usage_referenced_not_current_state_bytes{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>

## materialize-storage

<p>Sources and sinks for a Materialize deployment — catalog shape, throughput,
lag, and upstream/downstream health. Adapted from the Overview dashboard&rsquo;s
&ldquo;Sources and Sinks&rdquo; tab.</p>
<p>The clusterd-side throughput/lag/error metrics (mz_source_* / mz_sink_<em>) carry
the long-form cluster_environmentd_materialize_cloud_</em> id labels. These queries
assume one Prometheus job per clusterd endpoint; if the same endpoint is
scraped by several jobs, a plain sum-rate reads N× — dedupe the job at the
deployment (fix the scrape config, or wrap the inner rate in <code>max without (job)</code>) rather than baking it into the canonical query.</p>

<h4 id="materialize.storage.sources.count">materialize.storage.sources.count
  <a class="anchor" href="#materialize.storage.sources.count">#</a>
</h4>
Active sources in the catalog — each is a continuous ingestion
connection from an external system (Kafka, Postgres, MySQL, S3, …), so
this is roughly how many upstream feeds the environment maintains.
Counts distinct source objects (the hidden per-source <code>_progress</code>
subsources are excluded), matching <code>mz_sources</code>.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.storage.sources.count-tabs" id="materialize.storage.sources.count-tab-0" checked>
  <label for="materialize.storage.sources.count-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">count</span><span style="color:#f92672">(</span><span style="color:#66d9ef">group</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='mzSqlPrefix' title='mzSqlPrefix'>mz_</span>storage_objects{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, type<span style="color:#960050;background-color:#1e0010">=</span>&#34;<span style="color:#e6db74">source</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.storage.sources.count-tabs" id="materialize.storage.sources.count-tab-1">
  <label for="materialize.storage.sources.count-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span>default_zero<span style="color:#f92672">(</span>count_not_null<span style="color:#f92672">(</span><span style="color:#66d9ef">avg</span><span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzSqlPrefix</span>}storage_objects{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, type<span style="color:#960050;background-color:#1e0010">:</span>source<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">id</span>}<span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.storage.sinks.count">materialize.storage.sinks.count
  <a class="anchor" href="#materialize.storage.sinks.count">#</a>
</h4>
Active sinks in the catalog — each emits the results of a materialized
view or query to an external system (Kafka, Iceberg, …). Counts distinct
sink objects (excluding <code>_progress</code> subsources), matching <code>mz_sinks</code>.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.storage.sinks.count-tabs" id="materialize.storage.sinks.count-tab-0" checked>
  <label for="materialize.storage.sinks.count-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">count</span><span style="color:#f92672">(</span><span style="color:#66d9ef">group</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='mzSqlPrefix' title='mzSqlPrefix'>mz_</span>storage_objects{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, type<span style="color:#960050;background-color:#1e0010">=</span>&#34;<span style="color:#e6db74">sink</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.storage.sinks.count-tabs" id="materialize.storage.sinks.count-tab-1">
  <label for="materialize.storage.sinks.count-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span>default_zero<span style="color:#f92672">(</span>count_not_null<span style="color:#f92672">(</span><span style="color:#66d9ef">avg</span><span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzSqlPrefix</span>}storage_objects{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, type<span style="color:#960050;background-color:#1e0010">:</span>sink<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">id</span>}<span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.storage.tables.count">materialize.storage.tables.count
  <a class="anchor" href="#materialize.storage.tables.count">#</a>
</h4>
User-created tables in the catalog. Tables are write-once-read-many;
<code>INSERT</code>s feed dataflows downstream. Mostly a catalog-shape signal — for
actual ingest activity look at source throughput.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.storage.tables.count-tabs" id="materialize.storage.tables.count-tab-0" checked>
  <label for="materialize.storage.tables.count-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#f92672">(</span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='mzSqlPrefix' title='mzSqlPrefix'>mz_</span>tables_count{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.storage.tables.count-tabs" id="materialize.storage.tables.count-tab-1">
  <label for="materialize.storage.tables.count-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span>default_zero<span style="color:#f92672">(</span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzSqlPrefix</span>}tables_count{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.storage.sources.by_type">materialize.storage.sources.by_type
  <a class="anchor" href="#materialize.storage.sources.by_type">#</a>
</h4>
Sources by connector type (kafka / postgres / mysql / …) — what flavors
of upstream feed make up the ingest workload. Most environments
concentrate on one or two.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.storage.sources.by_type-tabs" id="materialize.storage.sources.by_type-tab-0" checked>
  <label for="materialize.storage.sources.by_type-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">count</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>object_type<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">group</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>id, object_type<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='mzSqlPrefix' title='mzSqlPrefix'>mz_</span>storage_objects{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, type<span style="color:#960050;background-color:#1e0010">=</span>&#34;<span style="color:#e6db74">source</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">&gt;</span> <span style="color:#ae81ff">0</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.storage.sources.by_type-tabs" id="materialize.storage.sources.by_type-tab-1">
  <label for="materialize.storage.sources.by_type-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzSqlPrefix</span>}storage_objects{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, type<span style="color:#960050;background-color:#1e0010">:</span>source<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">object_type</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.storage.sources.catalog">materialize.storage.sources.catalog
  <a class="anchor" href="#materialize.storage.sources.catalog">#</a>
</h4>
A catalog of sources — one row per source (by name) with its connector
type, envelope, and the cluster it ingests on. The metric-side &ldquo;what
sources do I have&rdquo; reference.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.storage.sources.catalog-tabs" id="materialize.storage.sources.catalog-tab-0" checked>
  <label for="materialize.storage.sources.catalog-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">group</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>id, object_type, connection_type, envelope_type, cluster_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='mzSqlPrefix' title='mzSqlPrefix'>mz_</span>storage_objects{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, type<span style="color:#960050;background-color:#1e0010">=</span>&#34;<span style="color:#e6db74">source</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.storage.sources.catalog-tabs" id="materialize.storage.sources.catalog-tab-1">
  <label for="materialize.storage.sources.catalog-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">avg</span><span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzSqlPrefix</span>}storage_objects{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, type<span style="color:#960050;background-color:#1e0010">:</span>source<span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">id</span>,<span style="color:#960050;background-color:#1e0010">object_type</span>,<span style="color:#960050;background-color:#1e0010">connection_type</span>,<span style="color:#960050;background-color:#1e0010">envelope_type</span>,<span style="color:#960050;background-color:#1e0010">cluster_id</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.storage.sources.bytes_received">materialize.storage.sources.bytes_received
  <a class="anchor" href="#materialize.storage.sources.bytes_received">#</a>
</h4>
Inbound throughput per primary source — bytes/second pulled from
upstream. Subsources (e.g. per-table Postgres replication) roll up to
their primary, so each line is one logical source.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.storage.sources.bytes_received-tabs" id="materialize.storage.sources.bytes_received-tab-0" checked>
  <label for="materialize.storage.sources.bytes_received-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>parent_source_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">without</span> <span style="color:#f92672">(</span>job<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_source_bytes_received{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzReplicaList' title='mzReplicaList'>.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">&gt;</span> <span style="color:#ae81ff">0</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.storage.sources.bytes_received-tabs" id="materialize.storage.sources.bytes_received-tab-1">
  <label for="materialize.storage.sources.bytes_received-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>mz_source_bytes_received{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzReplicaList</span>}<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">parent_source_id</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.storage.sources.ingestion_by_replica">materialize.storage.sources.ingestion_by_replica
  <a class="anchor" href="#materialize.storage.sources.ingestion_by_replica">#</a>
</h4>
Messages ingested per second, split per source AND replica. Replicas
read their upstream independently and should track together.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.storage.sources.ingestion_by_replica-tabs" id="materialize.storage.sources.ingestion_by_replica-tab-0" checked>
  <label for="materialize.storage.sources.ingestion_by_replica-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>parent_source_id, cluster_environmentd_materialize_cloud_replica_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">without</span> <span style="color:#f92672">(</span>job<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_source_messages_received{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzReplicaList' title='mzReplicaList'>.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.storage.sources.ingestion_by_replica-tabs" id="materialize.storage.sources.ingestion_by_replica-tab-1">
  <label for="materialize.storage.sources.ingestion_by_replica-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>mz_source_messages_received{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzReplicaList</span>}<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">parent_source_id</span>,<span style="color:#960050;background-color:#1e0010">cluster_environmentd_materialize_cloud_replica_id</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.storage.sources.upstream_errors">materialize.storage.sources.upstream_errors
  <a class="anchor" href="#materialize.storage.sources.upstream_errors">#</a>
</h4>
Per-source upstream health, with two complementary signals — both
nominal at 0, so an empty panel is healthy and any series means a source
needs attention.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.storage.sources.upstream_errors-tabs" id="materialize.storage.sources.upstream_errors-tab-0" checked>
  <label for="materialize.storage.sources.upstream_errors-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>source_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">without</span> <span style="color:#f92672">(</span>job<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_source_offset_commit_failures{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzReplicaList' title='mzReplicaList'>.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">&gt;</span> <span style="color:#ae81ff">0</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>source_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>mz_source_offset_committed{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzReplicaList' title='mzReplicaList'>.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">&gt;</span> <span style="color:#66d9ef">bool</span> <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>source_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>mz_source_offset_known{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzReplicaList' title='mzReplicaList'>.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">&gt;</span> <span style="color:#ae81ff">0</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.storage.sources.upstream_errors-tabs" id="materialize.storage.sources.upstream_errors-tab-1">
  <label for="materialize.storage.sources.upstream_errors-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>mz_source_offset_commit_failures{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzReplicaList</span>}<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">source_id</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>mz_source_offset_committed{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzReplicaList</span>}<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">source_id</span>}
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">-</span> <span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>mz_source_offset_known{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzReplicaList</span>}<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">source_id</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.storage.sinks.by_type">materialize.storage.sinks.by_type
  <a class="anchor" href="#materialize.storage.sinks.by_type">#</a>
</h4>
Sinks by (type, envelope) — e.g. <code>kafka / upsert</code>, <code>kafka / debezium</code>,
<code>iceberg / upsert</code>. The envelope is how Materialize encodes changes:
<code>upsert</code> writes the latest value per key, <code>debezium</code> writes change
events with old+new values.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.storage.sinks.by_type-tabs" id="materialize.storage.sinks.by_type-tab-0" checked>
  <label for="materialize.storage.sinks.by_type-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">count</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>object_type, envelope_type<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">group</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>id, object_type, envelope_type<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='mzSqlPrefix' title='mzSqlPrefix'>mz_</span>storage_objects{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, type<span style="color:#960050;background-color:#1e0010">=</span>&#34;<span style="color:#e6db74">sink</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">&gt;</span> <span style="color:#ae81ff">0</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.storage.sinks.by_type-tabs" id="materialize.storage.sinks.by_type-tab-1">
  <label for="materialize.storage.sinks.by_type-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzSqlPrefix</span>}storage_objects{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, type<span style="color:#960050;background-color:#1e0010">:</span>sink<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">object_type</span>,<span style="color:#960050;background-color:#1e0010">envelope_type</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.storage.sinks.throughput">materialize.storage.sinks.throughput
  <a class="anchor" href="#materialize.storage.sinks.throughput">#</a>
</h4>
Outbound throughput per sink — bytes/second successfully committed to
the downstream system (Kafka broker, Iceberg catalog, …).
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.storage.sinks.throughput-tabs" id="materialize.storage.sinks.throughput-tab-0" checked>
  <label for="materialize.storage.sinks.throughput-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>sink_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">without</span> <span style="color:#f92672">(</span>job<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_sink_bytes_committed{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzReplicaList' title='mzReplicaList'>.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span> <span style="color:#f92672">&gt;</span> <span style="color:#ae81ff">0</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.storage.sinks.throughput-tabs" id="materialize.storage.sinks.throughput-tab-1">
  <label for="materialize.storage.sinks.throughput-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>mz_sink_bytes_committed{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzReplicaList</span>}<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">sink_id</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.storage.sinks.lag">materialize.storage.sinks.lag
  <a class="anchor" href="#materialize.storage.sinks.lag">#</a>
</h4>
Bytes staged for a sink but not yet committed downstream — an in-flight
queue depth in bytes. Oscillates around a small value in normal
operation as commits happen periodically.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.storage.sinks.lag-tabs" id="materialize.storage.sinks.lag-tab-0" checked>
  <label for="materialize.storage.sinks.lag-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">clamp_min</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>sink_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">without</span> <span style="color:#f92672">(</span>job<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>mz_sink_bytes_staged{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzReplicaList' title='mzReplicaList'>.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span style="color:#f92672">))</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">-</span> <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>sink_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">without</span> <span style="color:#f92672">(</span>job<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>mz_sink_bytes_committed{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzReplicaList' title='mzReplicaList'>.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span style="color:#f92672">))</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#ae81ff">0</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.storage.sinks.lag-tabs" id="materialize.storage.sinks.lag-tab-1">
  <label for="materialize.storage.sinks.lag-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">clamp_min</span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>mz_sink_bytes_staged{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzReplicaList</span>}<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">sink_id</span>}
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">-</span> <span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>mz_sink_bytes_committed{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzReplicaList</span>}<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">sink_id</span>},
</span></span><span style="display:flex;"><span>  <span style="color:#ae81ff">0</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.storage.sinks.iceberg.commit_latency">materialize.storage.sinks.iceberg.commit_latency
  <a class="anchor" href="#materialize.storage.sinks.iceberg.commit_latency">#</a>
</h4>
Iceberg commit-duration percentiles (p50/p90/p99) — how long each
<code>COMMIT</code> against the Iceberg catalog takes (write a snapshot manifest,
ask the catalog to atomically swap it in).
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.storage.sinks.iceberg.commit_latency-tabs" id="materialize.storage.sinks.iceberg.commit_latency-tab-0" checked>
  <label for="materialize.storage.sinks.iceberg.commit_latency-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span><span style="color:#ae81ff">0.50</span>, <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">without</span> <span style="color:#f92672">(</span>job<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_sink_iceberg_commit_duration_seconds_bucket{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzReplicaList' title='mzReplicaList'>.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))))</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span><span style="color:#ae81ff">0.90</span>, <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">without</span> <span style="color:#f92672">(</span>job<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_sink_iceberg_commit_duration_seconds_bucket{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzReplicaList' title='mzReplicaList'>.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))))</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">histogram_quantile</span><span style="color:#f92672">(</span><span style="color:#ae81ff">0.99</span>, <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>le<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">without</span> <span style="color:#f92672">(</span>job<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_sink_iceberg_commit_duration_seconds_bucket{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzReplicaList' title='mzReplicaList'>.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">))))</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.storage.sinks.iceberg.commit_latency-tabs" id="materialize.storage.sinks.iceberg.commit_latency-tab-1">
  <label for="materialize.storage.sinks.iceberg.commit_latency-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span>p50<span style="color:#960050;background-color:#1e0010">:</span>mz_sink_iceberg_commit_duration_seconds{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzReplicaList</span>}<span style="color:#960050;background-color:#1e0010">}</span>
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span>p90<span style="color:#960050;background-color:#1e0010">:</span>mz_sink_iceberg_commit_duration_seconds{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzReplicaList</span>}<span style="color:#960050;background-color:#1e0010">}</span>
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span>p99<span style="color:#960050;background-color:#1e0010">:</span>mz_sink_iceberg_commit_duration_seconds{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzReplicaList</span>}<span style="color:#960050;background-color:#1e0010">}</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.storage.sinks.iceberg.commit_failures">materialize.storage.sinks.iceberg.commit_failures
  <a class="anchor" href="#materialize.storage.sinks.iceberg.commit_failures">#</a>
</h4>
Per-sink rate of failed and conflicting Iceberg commits. Conflicts
(concurrent-writer races on the snapshot pointer) are recoverable —
Materialize retries — but a high rate means something else is writing
the same Iceberg table; failures are commit-side errors (network, auth,
schema).
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.storage.sinks.iceberg.commit_failures-tabs" id="materialize.storage.sinks.iceberg.commit_failures-tab-0" checked>
  <label for="materialize.storage.sinks.iceberg.commit_failures-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>sink_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">without</span> <span style="color:#f92672">(</span>job<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_sink_iceberg_commit_failures{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzReplicaList' title='mzReplicaList'>.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)))</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>sink_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">without</span> <span style="color:#f92672">(</span>job<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_sink_iceberg_commit_conflicts{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzReplicaList' title='mzReplicaList'>.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)))</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.storage.sinks.iceberg.commit_failures-tabs" id="materialize.storage.sinks.iceberg.commit_failures-tab-1">
  <label for="materialize.storage.sinks.iceberg.commit_failures-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>mz_sink_iceberg_commit_failures{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzReplicaList</span>}<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">sink_id</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>mz_sink_iceberg_commit_conflicts{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzReplicaList</span>}<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">sink_id</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.storage.sinks.iceberg.file_rate">materialize.storage.sinks.iceberg.file_rate
  <a class="anchor" href="#materialize.storage.sinks.iceberg.file_rate">#</a>
</h4>
Per-sink rate of files and snapshots written to Iceberg. Each commit
produces one snapshot with data files (new rows) and delete files
(tombstones for upserts). The data:delete ratio reflects your workload —
pure-insert sinks produce ~0 deletes; upsert-heavy ones roughly 1:1.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.storage.sinks.iceberg.file_rate-tabs" id="materialize.storage.sinks.iceberg.file_rate-tab-0" checked>
  <label for="materialize.storage.sinks.iceberg.file_rate-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>sink_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">without</span> <span style="color:#f92672">(</span>job<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_sink_iceberg_data_files_written{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzReplicaList' title='mzReplicaList'>.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)))</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>sink_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">without</span> <span style="color:#f92672">(</span>job<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_sink_iceberg_delete_files_written{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzReplicaList' title='mzReplicaList'>.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)))</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>sink_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">without</span> <span style="color:#f92672">(</span>job<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_sink_iceberg_snapshots_committed{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzReplicaList' title='mzReplicaList'>.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)))</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.storage.sinks.iceberg.file_rate-tabs" id="materialize.storage.sinks.iceberg.file_rate-tab-1">
  <label for="materialize.storage.sinks.iceberg.file_rate-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>mz_sink_iceberg_data_files_written{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzReplicaList</span>}<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">sink_id</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>mz_sink_iceberg_delete_files_written{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzReplicaList</span>}<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">sink_id</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>mz_sink_iceberg_snapshots_committed{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzReplicaList</span>}<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">sink_id</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.storage.sinks.kafka.tx_errors">materialize.storage.sinks.kafka.tx_errors
  <a class="anchor" href="#materialize.storage.sinks.kafka.tx_errors">#</a>
</h4>
Per-sink rate of TX errors from the librdkafka client — each is one
failed produce-request against the broker.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.storage.sinks.kafka.tx_errors-tabs" id="materialize.storage.sinks.kafka.tx_errors-tab-0" checked>
  <label for="materialize.storage.sinks.kafka.tx_errors-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>sink_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">without</span> <span style="color:#f92672">(</span>job<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_sink_rdkafka_txerrs{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzReplicaList' title='mzReplicaList'>.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)))</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.storage.sinks.kafka.tx_errors-tabs" id="materialize.storage.sinks.kafka.tx_errors-tab-1">
  <label for="materialize.storage.sinks.kafka.tx_errors-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>mz_sink_rdkafka_txerrs{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzReplicaList</span>}<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">sink_id</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.storage.sinks.kafka.output_buffer">materialize.storage.sinks.kafka.output_buffer
  <a class="anchor" href="#materialize.storage.sinks.kafka.output_buffer">#</a>
</h4>
Messages sitting in the librdkafka output buffer, waiting to be sent to
the broker. Normal buffer fluctuates briefly as messages flow through.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.storage.sinks.kafka.output_buffer-tabs" id="materialize.storage.sinks.kafka.output_buffer-tab-0" checked>
  <label for="materialize.storage.sinks.kafka.output_buffer-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>sink_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">without</span> <span style="color:#f92672">(</span>job<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>mz_sink_rdkafka_outbuf_msg_cnt{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzReplicaList' title='mzReplicaList'>.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span style="color:#f92672">))</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.storage.sinks.kafka.output_buffer-tabs" id="materialize.storage.sinks.kafka.output_buffer-tab-1">
  <label for="materialize.storage.sinks.kafka.output_buffer-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>mz_sink_rdkafka_outbuf_msg_cnt{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzReplicaList</span>}<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">sink_id</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="materialize.storage.sinks.kafka.connect_rate">materialize.storage.sinks.kafka.connect_rate
  <a class="anchor" href="#materialize.storage.sinks.kafka.connect_rate">#</a>
</h4>
Connect and disconnect events per sink against the Kafka broker. Healthy
connections are persistent — a couple of connects at startup and zero
disconnects afterward.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.storage.sinks.kafka.connect_rate-tabs" id="materialize.storage.sinks.kafka.connect_rate-tab-0" checked>
  <label for="materialize.storage.sinks.kafka.connect_rate-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>sink_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">without</span> <span style="color:#f92672">(</span>job<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_sink_rdkafka_connects{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzReplicaList' title='mzReplicaList'>.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)))</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>sink_id<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">without</span> <span style="color:#f92672">(</span>job<span style="color:#f92672">)</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>mz_sink_rdkafka_disconnects{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span>, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzClusterList' title='mzClusterList'>.*</span>&#34;, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">=~</span>&#34;<span contenteditable='true' class='replaceable' data-replace='mzReplicaList' title='mzReplicaList'>.*</span>&#34;<span style="color:#960050;background-color:#1e0010">}</span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)))</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.storage.sinks.kafka.connect_rate-tabs" id="materialize.storage.sinks.kafka.connect_rate-tab-1">
  <label for="materialize.storage.sinks.kafka.connect_rate-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>mz_sink_rdkafka_connects{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzReplicaList</span>}<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">sink_id</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span><span style="color:#960050;background-color:#1e0010">:</span>mz_sink_rdkafka_disconnects{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}, cluster_environmentd_materialize_cloud_cluster_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzClusterList</span>}, cluster_environmentd_materialize_cloud_replica_id<span style="color:#960050;background-color:#1e0010">:$</span>{<span style="color:#960050;background-color:#1e0010">mzReplicaList</span>}<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">sink_id</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
  </div>
</div>

## materialize-workload-alerts

<p>Alerting rules for the workloads running on Materialize.</p>
<p>Every alert here carries <code>audience: workload</code>, so a route can send them to
the people who own the clusters rather than to whoever runs the deployment.
Each is scoped to user clusters (<code>u*</code>); the same condition on a system
cluster is a platform alert.</p>

<h4 id="materialize.clusters.names">materialize.clusters.names
  <a class="anchor" href="#materialize.clusters.names">#</a>
</h4>
Each cluster&rsquo;s name, by namespace and cluster id; the map the alerts join through to name a cluster.
<div class="book-tabs">
  <input type="radio" class="toggle" name="materialize.clusters.names-tabs" id="materialize.clusters.names-tab-0" checked>
  <label for="materialize.clusters.names-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">group</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>namespace, cluster_id, name<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>mz_cluster_info{<span contenteditable='true' class='replaceable' data-replace='mzEnvironmentFilter' title='mzEnvironmentFilter'>materialize_cloud_organization_name=~".*"</span><span style="color:#960050;background-color:#1e0010">}</span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="materialize.clusters.names-tabs" id="materialize.clusters.names-tab-1">
  <label for="materialize.clusters.names-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>mz_cluster_info{<span style="color:#960050;background-color:#1e0010">${mzEnvironmentFilter</span>}<span style="color:#960050;background-color:#1e0010">}</span> <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">namespace</span>,<span style="color:#960050;background-color:#1e0010">cluster_id</span>,<span style="color:#960050;background-color:#1e0010">name</span>}
</span></span></code></pre></div>
  </div>
</div>

## node-debug

<p>The breakdowns you reach for once <code>node-health.yaml</code> has told you a node is in
trouble: which mode the CPU is in, where the memory went, which device is
slow, and where the packets are being lost. Adapted from the Node Exporter
Full dashboard (<a href="https://grafana.com/grafana/dashboards/1860" rel="external" class="external-link">https://grafana.com/grafana/dashboards/1860</a>, revision 45).</p>
<p>Split from <code>node-health.yaml</code> on tier rather than on subject. These sit at
<code>recommended</code>, so a deployment collecting only the essential tier still gets
the health surface and pays nothing for the detail. Nothing here should back
an alert — if something here is worth paging on, it belongs in
<code>node-health.yaml</code> instead.</p>
<p>The conventions are the same as <code>node-health.yaml</code>: <code>instance=~&quot;$nodeList&quot;</code> rather
than <code>=</code>, every query wrapped in <code>max by (instance, ...)</code> (or <code>min</code> where low
is the bad direction) so a second scrape job cannot double-count, inner
aggregations carrying <code>by (instance, job)</code> so the outer wrapper is what
collapses <code>job</code>, and <code>%%{interval}</code> as the rate window.</p>
<p>Only collectors this chart&rsquo;s allowlist enables are referenced. Notable
omissions, because the dashboard has panels for them and they will render
empty: <code>node_processes_*</code> (processes collector), <code>node_interrupts_total</code>
(interrupts), <code>node_tcp_connection_states</code> (tcpstat), <code>node_systemd_*</code>
(systemd), and <code>node_textfile_scrape_error</code> (textfile).</p>

<h4 id="node.debug.cpu.by_mode">node.debug.cpu.by_mode
  <a class="anchor" href="#node.debug.cpu.by_mode">#</a>
</h4>
CPU time by mode — system, user, iowait, and the interrupt modes —
averaged across cores.
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.debug.cpu.by_mode-tabs" id="node.debug.cpu.by_mode-tab-0" checked>
  <label for="node.debug.cpu.by_mode-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">avg</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance, job<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_cpu_seconds_total{mode<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">system</span>&#34;, instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">avg</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance, job<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_cpu_seconds_total{mode<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">user</span>&#34;, instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">avg</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance, job<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_cpu_seconds_total{mode<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">iowait</span>&#34;, instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">avg</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance, job<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">without</span> <span style="color:#f92672">(</span>mode<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>      <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_cpu_seconds_total{mode<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">.*irq</span>&#34;, instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">avg</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance, job<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_cpu_seconds_total{mode<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">steal</span>&#34;, instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.debug.cpu.by_mode-tabs" id="node.debug.cpu.by_mode-tab-1">
  <label for="node.debug.cpu.by_mode-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">avg</span><span style="color:#960050;background-color:#1e0010">:</span>node_cpu_seconds_total{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>, <span style="color:#960050;background-color:#1e0010">mode:system</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">avg</span><span style="color:#960050;background-color:#1e0010">:</span>node_cpu_seconds_total{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>, <span style="color:#960050;background-color:#1e0010">mode:user</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">avg</span><span style="color:#960050;background-color:#1e0010">:</span>node_cpu_seconds_total{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>, <span style="color:#960050;background-color:#1e0010">mode:iowait</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">avg</span><span style="color:#960050;background-color:#1e0010">:</span>node_cpu_seconds_total{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>, <span style="color:#960050;background-color:#1e0010">mode:*irq</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">avg</span><span style="color:#960050;background-color:#1e0010">:</span>node_cpu_seconds_total{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>, <span style="color:#960050;background-color:#1e0010">mode:steal</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.debug.cpu.per_core">node.debug.cpu.per_core
  <a class="anchor" href="#node.debug.cpu.per_core">#</a>
</h4>
Non-idle CPU time per core, so a single saturated core is visible.
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.debug.cpu.per_core-tabs" id="node.debug.cpu.per_core-tab-0" checked>
  <label for="node.debug.cpu.per_core-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#ae81ff">1</span> <span style="color:#f92672">-</span> <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance, cpu<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_cpu_seconds_total{mode<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">idle</span>&#34;, instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.debug.cpu.per_core-tabs" id="node.debug.cpu.per_core-tab-1">
  <label for="node.debug.cpu.per_core-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#ae81ff">1</span> <span style="color:#f92672">-</span> <span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_cpu_seconds_total{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>, <span style="color:#960050;background-color:#1e0010">mode:idle</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>,<span style="color:#960050;background-color:#1e0010">cpu</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.debug.schedstat.waiting">node.debug.schedstat.waiting
  <a class="anchor" href="#node.debug.schedstat.waiting">#</a>
</h4>
Time tasks spent runnable but not running, per core, from
<code>/proc/schedstat</code>.
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.debug.schedstat.waiting-tabs" id="node.debug.schedstat.waiting-tab-0" checked>
  <label for="node.debug.schedstat.waiting-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance, cpu<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_schedstat_waiting_seconds_total{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.debug.schedstat.waiting-tabs" id="node.debug.schedstat.waiting-tab-1">
  <label for="node.debug.schedstat.waiting-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_schedstat_waiting_seconds_total{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>,<span style="color:#960050;background-color:#1e0010">cpu</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.debug.context_switches">node.debug.context_switches
  <a class="anchor" href="#node.debug.context_switches">#</a>
</h4>
Context switches and hardware interrupts per second.
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.debug.context_switches-tabs" id="node.debug.context_switches-tab-0" checked>
  <label for="node.debug.context_switches-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_context_switches_total{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_intr_total{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.debug.context_switches-tabs" id="node.debug.context_switches-tab-1">
  <label for="node.debug.context_switches-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_context_switches_total{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_intr_total{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.debug.memory.breakdown">node.debug.memory.breakdown
  <a class="anchor" href="#node.debug.memory.breakdown">#</a>
</h4>
Where RAM went: total, used by processes, reclaimable cache, and free.
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.debug.memory.breakdown-tabs" id="node.debug.memory.breakdown-tab-0" checked>
  <label for="node.debug.memory.breakdown-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>node_memory_MemTotal_bytes{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  node_memory_MemTotal_bytes{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">-</span> node_memory_MemFree_bytes{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">-</span> node_memory_Cached_bytes{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">-</span> node_memory_Buffers_bytes{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">-</span> node_memory_SReclaimable_bytes{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  node_memory_Cached_bytes{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">+</span> node_memory_Buffers_bytes{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">+</span> node_memory_SReclaimable_bytes{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">min</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>node_memory_MemFree_bytes{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.debug.memory.breakdown-tabs" id="node.debug.memory.breakdown-tab-1">
  <label for="node.debug.memory.breakdown-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_memory_MemTotal_bytes{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_memory_MemTotal_bytes{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">-</span> <span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_memory_MemFree_bytes{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">-</span> <span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_memory_Cached_bytes{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">-</span> <span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_memory_Buffers_bytes{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">-</span> <span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_memory_SReclaimable_bytes{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_memory_Cached_bytes{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">+</span> <span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_memory_Buffers_bytes{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">+</span> <span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_memory_SReclaimable_bytes{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">min</span><span style="color:#960050;background-color:#1e0010">:</span>node_memory_MemFree_bytes{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.debug.memory.kernel">node.debug.memory.kernel
  <a class="anchor" href="#node.debug.memory.kernel">#</a>
</h4>
Kernel-side memory: slab total, reclaimable and unreclaimable slab, and
committed address space.
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.debug.memory.kernel-tabs" id="node.debug.memory.kernel-tab-0" checked>
  <label for="node.debug.memory.kernel-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>node_memory_Slab_bytes{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>node_memory_SReclaimable_bytes{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>node_memory_SUnreclaim_bytes{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>node_memory_Committed_AS_bytes{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.debug.memory.kernel-tabs" id="node.debug.memory.kernel-tab-1">
  <label for="node.debug.memory.kernel-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_memory_Slab_bytes{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_memory_SReclaimable_bytes{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_memory_SUnreclaim_bytes{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_memory_Committed_AS_bytes{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.debug.memory.page_faults">node.debug.memory.page_faults
  <a class="anchor" href="#node.debug.memory.page_faults">#</a>
</h4>
Total and major page faults per second.
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.debug.memory.page_faults-tabs" id="node.debug.memory.page_faults-tab-0" checked>
  <label for="node.debug.memory.page_faults-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_vmstat_pgfault{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_vmstat_pgmajfault{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.debug.memory.page_faults-tabs" id="node.debug.memory.page_faults-tab-1">
  <label for="node.debug.memory.page_faults-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_vmstat_pgfault{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_vmstat_pgmajfault{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.debug.memory.reclaim">node.debug.memory.reclaim
  <a class="anchor" href="#node.debug.memory.reclaim">#</a>
</h4>
Pages scanned and reclaimed per second, split by who did the reclaiming:
<code>kswapd</code> (background) or <code>direct</code> (an allocating thread).
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.debug.memory.reclaim-tabs" id="node.debug.memory.reclaim-tab-0" checked>
  <label for="node.debug.memory.reclaim-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_vmstat_pgscan_kswapd{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_vmstat_pgscan_direct{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_vmstat_pgsteal_kswapd{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_vmstat_pgsteal_direct{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.debug.memory.reclaim-tabs" id="node.debug.memory.reclaim-tab-1">
  <label for="node.debug.memory.reclaim-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_vmstat_pgscan_kswapd{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_vmstat_pgscan_direct{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_vmstat_pgsteal_kswapd{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_vmstat_pgsteal_direct{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.debug.disk.iops">node.debug.disk.iops
  <a class="anchor" href="#node.debug.disk.iops">#</a>
</h4>
Completed reads and writes per second, per device.
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.debug.disk.iops-tabs" id="node.debug.disk.iops-tab-0" checked>
  <label for="node.debug.disk.iops-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance, device<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_disk_reads_completed_total{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance, device<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_disk_writes_completed_total{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.debug.disk.iops-tabs" id="node.debug.disk.iops-tab-1">
  <label for="node.debug.disk.iops-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_disk_reads_completed_total{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>,<span style="color:#960050;background-color:#1e0010">device</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_disk_writes_completed_total{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>,<span style="color:#960050;background-color:#1e0010">device</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.debug.disk.throughput">node.debug.disk.throughput
  <a class="anchor" href="#node.debug.disk.throughput">#</a>
</h4>
Bytes read and written per second, per device.
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.debug.disk.throughput-tabs" id="node.debug.disk.throughput-tab-0" checked>
  <label for="node.debug.disk.throughput-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance, device<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_disk_read_bytes_total{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance, device<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_disk_written_bytes_total{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.debug.disk.throughput-tabs" id="node.debug.disk.throughput-tab-1">
  <label for="node.debug.disk.throughput-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_disk_read_bytes_total{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>,<span style="color:#960050;background-color:#1e0010">device</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_disk_written_bytes_total{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>,<span style="color:#960050;background-color:#1e0010">device</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.debug.disk.latency">node.debug.disk.latency
  <a class="anchor" href="#node.debug.disk.latency">#</a>
</h4>
Average time per completed read and per completed write, per device.
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.debug.disk.latency-tabs" id="node.debug.disk.latency-tab-0" checked>
  <label for="node.debug.disk.latency-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance, device<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_disk_reads_completed_total{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span> <span style="color:#f92672">&gt;</span> <span style="color:#66d9ef">bool</span> <span style="color:#ae81ff">0</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">*</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_disk_read_time_seconds_total{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">/</span> <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_disk_reads_completed_total{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance, device<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">(</span><span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_disk_writes_completed_total{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span> <span style="color:#f92672">&gt;</span> <span style="color:#66d9ef">bool</span> <span style="color:#ae81ff">0</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">*</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_disk_write_time_seconds_total{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">/</span> <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_disk_writes_completed_total{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.debug.disk.latency-tabs" id="node.debug.disk.latency-tab-1">
  <label for="node.debug.disk.latency-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_disk_read_time_seconds_total{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>,<span style="color:#960050;background-color:#1e0010">device</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">/</span> <span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_disk_reads_completed_total{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>,<span style="color:#960050;background-color:#1e0010">device</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_disk_write_time_seconds_total{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>,<span style="color:#960050;background-color:#1e0010">device</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">/</span> <span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_disk_writes_completed_total{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>,<span style="color:#960050;background-color:#1e0010">device</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.debug.disk.queue_depth">node.debug.disk.queue_depth
  <a class="anchor" href="#node.debug.disk.queue_depth">#</a>
</h4>
Average I/O queue depth per device.
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.debug.disk.queue_depth-tabs" id="node.debug.disk.queue_depth-tab-0" checked>
  <label for="node.debug.disk.queue_depth-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance, device<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_disk_io_time_weighted_seconds_total{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.debug.disk.queue_depth-tabs" id="node.debug.disk.queue_depth-tab-1">
  <label for="node.debug.disk.queue_depth-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_disk_io_time_weighted_seconds_total{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>,<span style="color:#960050;background-color:#1e0010">device</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.debug.filesystem.inodes.available.ratio">node.debug.filesystem.inodes.available.ratio
  <a class="anchor" href="#node.debug.filesystem.inodes.available.ratio">#</a>
</h4>
Fraction of inodes still free, per mountpoint.
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.debug.filesystem.inodes.available.ratio-tabs" id="node.debug.filesystem.inodes.available.ratio-tab-0" checked>
  <label for="node.debug.filesystem.inodes.available.ratio-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">min</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance, mountpoint<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  node_filesystem_files_free{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;, fstype<span style="color:#f92672">!=</span>&#34;<span style="color:#e6db74">rootfs</span>&#34;}
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">/</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance, mountpoint<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  node_filesystem_files{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;, fstype<span style="color:#f92672">!=</span>&#34;<span style="color:#e6db74">rootfs</span>&#34;}
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.debug.filesystem.inodes.available.ratio-tabs" id="node.debug.filesystem.inodes.available.ratio-tab-1">
  <label for="node.debug.filesystem.inodes.available.ratio-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">min</span><span style="color:#960050;background-color:#1e0010">:</span>node_filesystem_files_free{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>, <span style="color:#960050;background-color:#1e0010">!fstype:rootfs</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>,<span style="color:#960050;background-color:#1e0010">mountpoint</span>}
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">/</span> <span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_filesystem_files{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>, <span style="color:#960050;background-color:#1e0010">!fstype:rootfs</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>,<span style="color:#960050;background-color:#1e0010">mountpoint</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.debug.network.throughput">node.debug.network.throughput
  <a class="anchor" href="#node.debug.network.throughput">#</a>
</h4>
Bytes received and transmitted per second, per interface.
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.debug.network.throughput-tabs" id="node.debug.network.throughput-tab-0" checked>
  <label for="node.debug.network.throughput-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance, device<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_network_receive_bytes_total{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance, device<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_network_transmit_bytes_total{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.debug.network.throughput-tabs" id="node.debug.network.throughput-tab-1">
  <label for="node.debug.network.throughput-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_network_receive_bytes_total{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>,<span style="color:#960050;background-color:#1e0010">device</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_network_transmit_bytes_total{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>,<span style="color:#960050;background-color:#1e0010">device</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.debug.network.saturation">node.debug.network.saturation
  <a class="anchor" href="#node.debug.network.saturation">#</a>
</h4>
Receive and transmit throughput as a fraction of the interface&rsquo;s
reported link speed.
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.debug.network.saturation-tabs" id="node.debug.network.saturation-tab-0" checked>
  <label for="node.debug.network.saturation-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance, device<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">(</span>node_network_speed_bytes{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;} <span style="color:#f92672">&gt;</span> <span style="color:#66d9ef">bool</span> <span style="color:#ae81ff">0</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">*</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_network_receive_bytes_total{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">/</span> node_network_speed_bytes{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance, device<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">(</span>node_network_speed_bytes{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;} <span style="color:#f92672">&gt;</span> <span style="color:#66d9ef">bool</span> <span style="color:#ae81ff">0</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">*</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_network_transmit_bytes_total{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">/</span> node_network_speed_bytes{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.debug.network.saturation-tabs" id="node.debug.network.saturation-tab-1">
  <label for="node.debug.network.saturation-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_network_receive_bytes_total{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>,<span style="color:#960050;background-color:#1e0010">device</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">/</span> <span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_network_speed_bytes{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>,<span style="color:#960050;background-color:#1e0010">device</span>}
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_network_transmit_bytes_total{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>,<span style="color:#960050;background-color:#1e0010">device</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">/</span> <span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_network_speed_bytes{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>,<span style="color:#960050;background-color:#1e0010">device</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.debug.network.operstate">node.debug.network.operstate
  <a class="anchor" href="#node.debug.network.operstate">#</a>
</h4>
Whether each interface is operationally up, and whether it has carrier.
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.debug.network.operstate-tabs" id="node.debug.network.operstate-tab-0" checked>
  <label for="node.debug.network.operstate-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">min</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance, device<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  node_network_up{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">min</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance, device<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  node_network_carrier{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.debug.network.operstate-tabs" id="node.debug.network.operstate-tab-1">
  <label for="node.debug.network.operstate-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">min</span><span style="color:#960050;background-color:#1e0010">:</span>node_network_up{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>,<span style="color:#960050;background-color:#1e0010">device</span>}
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">min</span><span style="color:#960050;background-color:#1e0010">:</span>node_network_carrier{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>,<span style="color:#960050;background-color:#1e0010">device</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.debug.softnet.processed">node.debug.softnet.processed
  <a class="anchor" href="#node.debug.softnet.processed">#</a>
</h4>
Packets processed by the network softirq path, per CPU.
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.debug.softnet.processed-tabs" id="node.debug.softnet.processed-tab-0" checked>
  <label for="node.debug.softnet.processed-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance, cpu<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_softnet_processed_total{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.debug.softnet.processed-tabs" id="node.debug.softnet.processed-tab-1">
  <label for="node.debug.softnet.processed-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_softnet_processed_total{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>,<span style="color:#960050;background-color:#1e0010">cpu</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.debug.softnet.dropped">node.debug.softnet.dropped
  <a class="anchor" href="#node.debug.softnet.dropped">#</a>
</h4>
Packets dropped in the network softirq path because the backlog queue
was full, per CPU.
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.debug.softnet.dropped-tabs" id="node.debug.softnet.dropped-tab-0" checked>
  <label for="node.debug.softnet.dropped-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance, cpu<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_softnet_dropped_total{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.debug.softnet.dropped-tabs" id="node.debug.softnet.dropped-tab-1">
  <label for="node.debug.softnet.dropped-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_softnet_dropped_total{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>,<span style="color:#960050;background-color:#1e0010">cpu</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.debug.softnet.squeezed">node.debug.softnet.squeezed
  <a class="anchor" href="#node.debug.softnet.squeezed">#</a>
</h4>
Times the softirq handler exhausted its budget with work still queued,
per CPU.
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.debug.softnet.squeezed-tabs" id="node.debug.softnet.squeezed-tab-0" checked>
  <label for="node.debug.softnet.squeezed-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance, cpu<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_softnet_times_squeezed_total{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.debug.softnet.squeezed-tabs" id="node.debug.softnet.squeezed-tab-1">
  <label for="node.debug.softnet.squeezed-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_softnet_times_squeezed_total{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>,<span style="color:#960050;background-color:#1e0010">cpu</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.debug.sockets.tcp">node.debug.sockets.tcp
  <a class="anchor" href="#node.debug.sockets.tcp">#</a>
</h4>
TCP sockets by state: in use, allocated, orphaned, and TIME_WAIT.
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.debug.sockets.tcp-tabs" id="node.debug.sockets.tcp-tab-0" checked>
  <label for="node.debug.sockets.tcp-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>node_sockstat_TCP_inuse{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>node_sockstat_TCP_alloc{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>node_sockstat_TCP_orphan{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>node_sockstat_TCP_tw{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.debug.sockets.tcp-tabs" id="node.debug.sockets.tcp-tab-1">
  <label for="node.debug.sockets.tcp-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_sockstat_TCP_inuse{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_sockstat_TCP_alloc{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_sockstat_TCP_orphan{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_sockstat_TCP_tw{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.debug.sockets.memory">node.debug.sockets.memory
  <a class="anchor" href="#node.debug.sockets.memory">#</a>
</h4>
Kernel socket buffer memory held by TCP and UDP.
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.debug.sockets.memory-tabs" id="node.debug.sockets.memory-tab-0" checked>
  <label for="node.debug.sockets.memory-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>node_sockstat_TCP_mem_bytes{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>node_sockstat_UDP_mem_bytes{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.debug.sockets.memory-tabs" id="node.debug.sockets.memory-tab-1">
  <label for="node.debug.sockets.memory-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_sockstat_TCP_mem_bytes{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_sockstat_UDP_mem_bytes{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.debug.tcp.retransmits">node.debug.tcp.retransmits
  <a class="anchor" href="#node.debug.tcp.retransmits">#</a>
</h4>
TCP segment retransmits and SYN retransmits per second, against total
segments out.
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.debug.tcp.retransmits-tabs" id="node.debug.tcp.retransmits-tab-0" checked>
  <label for="node.debug.tcp.retransmits-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_netstat_Tcp_RetransSegs{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_netstat_TcpExt_TCPSynRetrans{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_netstat_Tcp_OutSegs{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.debug.tcp.retransmits-tabs" id="node.debug.tcp.retransmits-tab-1">
  <label for="node.debug.tcp.retransmits-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_netstat_Tcp_RetransSegs{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_netstat_TcpExt_TCPSynRetrans{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_netstat_Tcp_OutSegs{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.debug.tcp.errors">node.debug.tcp.errors
  <a class="anchor" href="#node.debug.tcp.errors">#</a>
</h4>
TCP listen-queue overflows, listen drops, receive-queue drops, and
timeouts per second.
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.debug.tcp.errors-tabs" id="node.debug.tcp.errors-tab-0" checked>
  <label for="node.debug.tcp.errors-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_netstat_TcpExt_ListenOverflows{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_netstat_TcpExt_ListenDrops{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_netstat_TcpExt_TCPRcvQDrop{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_netstat_TcpExt_TCPTimeouts{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.debug.tcp.errors-tabs" id="node.debug.tcp.errors-tab-1">
  <label for="node.debug.tcp.errors-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_netstat_TcpExt_ListenOverflows{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_netstat_TcpExt_ListenDrops{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_netstat_TcpExt_TCPRcvQDrop{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_netstat_TcpExt_TCPTimeouts{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.debug.udp.errors">node.debug.udp.errors
  <a class="anchor" href="#node.debug.udp.errors">#</a>
</h4>
UDP receive errors, receive-buffer errors, and packets to no listening
port, per second.
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.debug.udp.errors-tabs" id="node.debug.udp.errors-tab-0" checked>
  <label for="node.debug.udp.errors-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_netstat_Udp_InErrors{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_netstat_Udp_RcvbufErrors{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_netstat_Udp_NoPorts{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.debug.udp.errors-tabs" id="node.debug.udp.errors-tab-1">
  <label for="node.debug.udp.errors-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_netstat_Udp_InErrors{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_netstat_Udp_RcvbufErrors{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_netstat_Udp_NoPorts{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.debug.udp.queues">node.debug.udp.queues
  <a class="anchor" href="#node.debug.udp.queues">#</a>
</h4>
Bytes queued in UDP receive and transmit buffers.
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.debug.udp.queues-tabs" id="node.debug.udp.queues-tab-0" checked>
  <label for="node.debug.udp.queues-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  node_udp_queues{ip<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">v4</span>&#34;, queue<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">rx</span>&#34;, instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  node_udp_queues{ip<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">v4</span>&#34;, queue<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">tx</span>&#34;, instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.debug.udp.queues-tabs" id="node.debug.udp.queues-tab-1">
  <label for="node.debug.udp.queues-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_udp_queues{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>, <span style="color:#960050;background-color:#1e0010">ip:v4</span>, <span style="color:#960050;background-color:#1e0010">queue:rx</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_udp_queues{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>, <span style="color:#960050;background-color:#1e0010">ip:v4</span>, <span style="color:#960050;background-color:#1e0010">queue:tx</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.debug.arp.entries">node.debug.arp.entries
  <a class="anchor" href="#node.debug.arp.entries">#</a>
</h4>
ARP table entries per interface.
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.debug.arp.entries-tabs" id="node.debug.arp.entries-tab-0" checked>
  <label for="node.debug.arp.entries-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance, device<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  node_arp_entries{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.debug.arp.entries-tabs" id="node.debug.arp.entries-tab-1">
  <label for="node.debug.arp.entries-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_arp_entries{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>,<span style="color:#960050;background-color:#1e0010">device</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.debug.time.sync_status">node.debug.time.sync_status
  <a class="anchor" href="#node.debug.time.sync_status">#</a>
</h4>
Whether the kernel clock is synchronized (1) or NTP has given up (0).
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.debug.time.sync_status-tabs" id="node.debug.time.sync_status-tab-0" checked>
  <label for="node.debug.time.sync_status-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">min</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  node_timex_sync_status{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.debug.time.sync_status-tabs" id="node.debug.time.sync_status-tab-1">
  <label for="node.debug.time.sync_status-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">min</span><span style="color:#960050;background-color:#1e0010">:</span>node_timex_sync_status{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.debug.time.drift">node.debug.time.drift
  <a class="anchor" href="#node.debug.time.drift">#</a>
</h4>
Estimated clock offset, maximum error, and estimated error, in seconds.
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.debug.time.drift-tabs" id="node.debug.time.drift-tab-0" checked>
  <label for="node.debug.time.drift-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>node_timex_offset_seconds{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>node_timex_maxerror_seconds{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>node_timex_estimated_error_seconds{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.debug.time.drift-tabs" id="node.debug.time.drift-tab-1">
  <label for="node.debug.time.drift-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_timex_offset_seconds{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_timex_maxerror_seconds{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_timex_estimated_error_seconds{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.debug.entropy.available">node.debug.entropy.available
  <a class="anchor" href="#node.debug.entropy.available">#</a>
</h4>
Available entropy, against the pool size.
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.debug.entropy.available-tabs" id="node.debug.entropy.available-tab-0" checked>
  <label for="node.debug.entropy.available-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">min</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>node_entropy_available_bits{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>node_entropy_pool_size_bits{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.debug.entropy.available-tabs" id="node.debug.entropy.available-tab-1">
  <label for="node.debug.entropy.available-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">min</span><span style="color:#960050;background-color:#1e0010">:</span>node_entropy_available_bits{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_entropy_pool_size_bits{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.debug.exporter.scrape_duration">node.debug.exporter.scrape_duration
  <a class="anchor" href="#node.debug.exporter.scrape_duration">#</a>
</h4>
How long each node-exporter collector took on the last scrape.
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.debug.exporter.scrape_duration-tabs" id="node.debug.exporter.scrape_duration-tab-0" checked>
  <label for="node.debug.exporter.scrape_duration-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance, collector<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  node_scrape_collector_duration_seconds{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.debug.exporter.scrape_duration-tabs" id="node.debug.exporter.scrape_duration-tab-1">
  <label for="node.debug.exporter.scrape_duration-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_scrape_collector_duration_seconds{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>,<span style="color:#960050;background-color:#1e0010">collector</span>}
</span></span></code></pre></div>
  </div>
</div>

## node-health

<p>Node-level health: the at-a-glance answers to &ldquo;is this machine in trouble&rdquo;,
adapted from the Node Exporter Full dashboard
(<a href="https://grafana.com/grafana/dashboards/1860" rel="external" class="external-link">https://grafana.com/grafana/dashboards/1860</a>, revision 45) and narrowed to
what actually alerts.</p>
<p>These read node-exporter, NOT Materialize metrics. Only collectors this
chart&rsquo;s allowlist enables are referenced — see the Node Exporter section of
the chart&rsquo;s values reference for the list and the reasoning. The deeper
breakdowns live in <code>node-debug.yaml</code> at the <code>recommended</code> tier.</p>
<p>Three conventions apply to every query here:</p>
<ul>
<li>
<p><strong><code>instance=~&quot;$nodeList&quot;</code>, never <code>instance=&quot;$nodeList&quot;</code>.</strong> A regex match makes the
selector work unchanged whether the dashboard variable resolves to one node
or many, so the same query backs a single-node view and a fleet view.</p>
</li>
<li>
<p><strong>Every query is wrapped in <code>max by (instance, ...)</code>, which drops <code>job</code>.</strong>
A node should only ever be scraped by one job. If a second one appears —
a pre-existing node-exporter alongside ours, or a migration with both
running — the same series arrives twice under different <code>job</code> labels, and
every <code>sum()</code> silently doubles while every binary operation between two
metrics loses its match. Aggregating <code>job</code> away makes both failure modes
impossible rather than merely unlikely. <code>max</code> is the default; <strong><code>min</code> where
low is the bad direction</strong> (available memory, free space, collector
success), so the aggregate always reports the worst case rather than hiding
it behind a healthy duplicate.</p>
</li>
<li>
<p>Where an inner aggregation is needed (averaging across CPUs, summing across
devices), it carries <code>by (instance, job)</code> and the outer <code>max</code>/<code>min</code> collapses
<code>job</code> afterwards. Aggregating both in one step would blend two jobs'
readings into one number instead of picking one.</p>
</li>
</ul>
<p><code>%%{interval}</code> is the rate window, including its brackets.</p>

<h4 id="node.cpu.utilization">node.cpu.utilization
  <a class="anchor" href="#node.cpu.utilization">#</a>
</h4>
Fraction of CPU time the node spent doing anything other than idling,
averaged across its cores.
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.cpu.utilization-tabs" id="node.cpu.utilization-tab-0" checked>
  <label for="node.cpu.utilization-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#ae81ff">1</span> <span style="color:#f92672">-</span> <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">avg</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance, job<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_cpu_seconds_total{mode<span style="color:#f92672">=</span>&#34;<span style="color:#e6db74">idle</span>&#34;, instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.cpu.utilization-tabs" id="node.cpu.utilization-tab-1">
  <label for="node.cpu.utilization-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#ae81ff">1</span> <span style="color:#f92672">-</span> <span style="color:#66d9ef">avg</span><span style="color:#960050;background-color:#1e0010">:</span>node_cpu_seconds_total{<span style="color:#960050;background-color:#1e0010">mode:idle</span>, <span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.load.normalized">node.load.normalized
  <a class="anchor" href="#node.load.normalized">#</a>
</h4>
One-minute load average divided by the node&rsquo;s core count, so it is
comparable across instance sizes.
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.load.normalized-tabs" id="node.load.normalized-tab-0" checked>
  <label for="node.load.normalized-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>node_load1{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">/</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">count</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance, job<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">count</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance, job, cpu<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>node_cpu_seconds_total{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.load.normalized-tabs" id="node.load.normalized-tab-1">
  <label for="node.load.normalized-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_load1{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">/</span> count_not_null<span style="color:#f92672">(</span><span style="color:#66d9ef">avg</span><span style="color:#960050;background-color:#1e0010">:</span>node_cpu_seconds_total{<span style="color:#960050;background-color:#1e0010">mode:idle</span>, <span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">cpu</span>}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.cpu.pressure">node.cpu.pressure
  <a class="anchor" href="#node.cpu.pressure">#</a>
</h4>
PSI: the fraction of wall time at least one task was stalled waiting for
CPU.
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.cpu.pressure-tabs" id="node.cpu.pressure-tab-0" checked>
  <label for="node.cpu.pressure-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_pressure_cpu_waiting_seconds_total{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.cpu.pressure-tabs" id="node.cpu.pressure-tab-1">
  <label for="node.cpu.pressure-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_pressure_cpu_waiting_seconds_total{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.memory.available.ratio">node.memory.available.ratio
  <a class="anchor" href="#node.memory.available.ratio">#</a>
</h4>
Fraction of RAM the kernel estimates is available for new allocations
without swapping, from <code>MemAvailable</code>.
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.memory.available.ratio-tabs" id="node.memory.available.ratio-tab-0" checked>
  <label for="node.memory.available.ratio-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">min</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  node_memory_MemAvailable_bytes{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">/</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  node_memory_MemTotal_bytes{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.memory.available.ratio-tabs" id="node.memory.available.ratio-tab-1">
  <label for="node.memory.available.ratio-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">min</span><span style="color:#960050;background-color:#1e0010">:</span>node_memory_MemAvailable_bytes{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">/</span> <span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_memory_MemTotal_bytes{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.memory.pressure">node.memory.pressure
  <a class="anchor" href="#node.memory.pressure">#</a>
</h4>
PSI: the fraction of wall time at least one task was stalled on memory
(<code>waiting</code>), and the fraction where <em>every</em> task was (<code>stalled</code>).
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.memory.pressure-tabs" id="node.memory.pressure-tab-0" checked>
  <label for="node.memory.pressure-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_pressure_memory_waiting_seconds_total{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_pressure_memory_stalled_seconds_total{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.memory.pressure-tabs" id="node.memory.pressure-tab-1">
  <label for="node.memory.pressure-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_pressure_memory_waiting_seconds_total{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_pressure_memory_stalled_seconds_total{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.swap.used.ratio">node.swap.used.ratio
  <a class="anchor" href="#node.swap.used.ratio">#</a>
</h4>
Fraction of configured swap in use. Zero when the node has no swap
configured, rather than returning no data.
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.swap.used.ratio-tabs" id="node.swap.used.ratio-tab-0" checked>
  <label for="node.swap.used.ratio-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>node_memory_SwapTotal_bytes{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">-</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">min</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>node_memory_SwapFree_bytes{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">/</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>node_memory_SwapTotal_bytes{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">and</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">(</span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>node_memory_SwapTotal_bytes{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#f92672">)</span> <span style="color:#f92672">&gt;</span> <span style="color:#ae81ff">0</span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.swap.used.ratio-tabs" id="node.swap.used.ratio-tab-1">
  <label for="node.swap.used.ratio-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_memory_SwapTotal_bytes{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">-</span> <span style="color:#66d9ef">min</span><span style="color:#960050;background-color:#1e0010">:</span>node_memory_SwapFree_bytes{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">/</span> <span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_memory_SwapTotal_bytes{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.swap.activity">node.swap.activity
  <a class="anchor" href="#node.swap.activity">#</a>
</h4>
Pages swapped in and out per second, from <code>vmstat</code>.
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.swap.activity-tabs" id="node.swap.activity-tab-0" checked>
  <label for="node.swap.activity-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_vmstat_pswpin{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_vmstat_pswpout{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.swap.activity-tabs" id="node.swap.activity-tab-1">
  <label for="node.swap.activity-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_vmstat_pswpin{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_vmstat_pswpout{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.memory.oom_kills">node.memory.oom_kills
  <a class="anchor" href="#node.memory.oom_kills">#</a>
</h4>
Rate of OOM-killer invocations on the node.
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.memory.oom_kills-tabs" id="node.memory.oom_kills-tab-0" checked>
  <label for="node.memory.oom_kills-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_vmstat_oom_kill{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.memory.oom_kills-tabs" id="node.memory.oom_kills-tab-1">
  <label for="node.memory.oom_kills-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_vmstat_oom_kill{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.filesystem.available.ratio">node.filesystem.available.ratio
  <a class="anchor" href="#node.filesystem.available.ratio">#</a>
</h4>
Fraction of each mounted filesystem still available, per mountpoint.
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.filesystem.available.ratio-tabs" id="node.filesystem.available.ratio-tab-0" checked>
  <label for="node.filesystem.available.ratio-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">min</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance, mountpoint<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  node_filesystem_avail_bytes{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;, fstype<span style="color:#f92672">!=</span>&#34;<span style="color:#e6db74">rootfs</span>&#34;}
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">/</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance, mountpoint<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  node_filesystem_size_bytes{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;, fstype<span style="color:#f92672">!=</span>&#34;<span style="color:#e6db74">rootfs</span>&#34;}
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.filesystem.available.ratio-tabs" id="node.filesystem.available.ratio-tab-1">
  <label for="node.filesystem.available.ratio-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">min</span><span style="color:#960050;background-color:#1e0010">:</span>node_filesystem_avail_bytes{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>, <span style="color:#960050;background-color:#1e0010">!fstype:rootfs</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>,<span style="color:#960050;background-color:#1e0010">mountpoint</span>}
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">/</span> <span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_filesystem_size_bytes{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>, <span style="color:#960050;background-color:#1e0010">!fstype:rootfs</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>,<span style="color:#960050;background-color:#1e0010">mountpoint</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.filesystem.readonly">node.filesystem.readonly
  <a class="anchor" href="#node.filesystem.readonly">#</a>
</h4>
Whether a filesystem has been remounted read-only, per mountpoint.
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.filesystem.readonly-tabs" id="node.filesystem.readonly-tab-0" checked>
  <label for="node.filesystem.readonly-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance, mountpoint<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  node_filesystem_readonly{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;, fstype<span style="color:#f92672">!=</span>&#34;<span style="color:#e6db74">rootfs</span>&#34;}
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.filesystem.readonly-tabs" id="node.filesystem.readonly-tab-1">
  <label for="node.filesystem.readonly-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_filesystem_readonly{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>, <span style="color:#960050;background-color:#1e0010">!fstype:rootfs</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>,<span style="color:#960050;background-color:#1e0010">mountpoint</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.disk.io_utilization">node.disk.io_utilization
  <a class="anchor" href="#node.disk.io_utilization">#</a>
</h4>
Fraction of wall time each block device had at least one I/O in flight.
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.disk.io_utilization-tabs" id="node.disk.io_utilization-tab-0" checked>
  <label for="node.disk.io_utilization-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance, device<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_disk_io_time_seconds_total{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.disk.io_utilization-tabs" id="node.disk.io_utilization-tab-1">
  <label for="node.disk.io_utilization-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_disk_io_time_seconds_total{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>,<span style="color:#960050;background-color:#1e0010">device</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.filefd.utilization">node.filefd.utilization
  <a class="anchor" href="#node.filefd.utilization">#</a>
</h4>
Allocated file descriptors as a fraction of the system-wide maximum.
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.filefd.utilization-tabs" id="node.filefd.utilization-tab-0" checked>
  <label for="node.filefd.utilization-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>node_filefd_allocated{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">/</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>node_filefd_maximum{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.filefd.utilization-tabs" id="node.filefd.utilization-tab-1">
  <label for="node.filefd.utilization-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_filefd_allocated{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">/</span> <span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_filefd_maximum{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.network.errors">node.network.errors
  <a class="anchor" href="#node.network.errors">#</a>
</h4>
Receive and transmit error rates per interface.
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.network.errors-tabs" id="node.network.errors-tab-0" checked>
  <label for="node.network.errors-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance, device<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_network_receive_errs_total{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance, device<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_network_transmit_errs_total{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.network.errors-tabs" id="node.network.errors-tab-1">
  <label for="node.network.errors-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_network_receive_errs_total{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>,<span style="color:#960050;background-color:#1e0010">device</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_network_transmit_errs_total{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>,<span style="color:#960050;background-color:#1e0010">device</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.network.drops">node.network.drops
  <a class="anchor" href="#node.network.drops">#</a>
</h4>
Receive and transmit packet drop rates per interface.
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.network.drops-tabs" id="node.network.drops-tab-0" checked>
  <label for="node.network.drops-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance, device<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_network_receive_drop_total{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance, device<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_network_transmit_drop_total{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.network.drops-tabs" id="node.network.drops-tab-1">
  <label for="node.network.drops-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_network_receive_drop_total{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>,<span style="color:#960050;background-color:#1e0010">device</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_network_transmit_drop_total{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>,<span style="color:#960050;background-color:#1e0010">device</span>}<span style="color:#960050;background-color:#1e0010">.</span>as_rate<span style="color:#f92672">()</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.network.rx.total">node.network.rx.total
  <a class="anchor" href="#node.network.rx.total">#</a>
</h4>
Bytes per second received across every interface on the node.
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.network.rx.total-tabs" id="node.network.rx.total-tab-0" checked>
  <label for="node.network.rx.total-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance, device<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_network_receive_bytes_total{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.network.tx.total">node.network.tx.total
  <a class="anchor" href="#node.network.tx.total">#</a>
</h4>
Bytes per second transmitted across every interface on the node.
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.network.tx.total-tabs" id="node.network.tx.total-tab-0" checked>
  <label for="node.network.tx.total-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">sum</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance, device<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">rate</span><span style="color:#f92672">(</span>node_network_transmit_bytes_total{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#960050;background-color:#1e0010"></span><span contenteditable='true' class='replaceable' data-replace='interval' title='interval'>[5m]</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.conntrack.utilization">node.conntrack.utilization
  <a class="anchor" href="#node.conntrack.utilization">#</a>
</h4>
Netfilter connection-tracking table occupancy as a fraction of its
limit.
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.conntrack.utilization-tabs" id="node.conntrack.utilization-tab-0" checked>
  <label for="node.conntrack.utilization-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>node_nf_conntrack_entries{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">/</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">max</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>node_nf_conntrack_entries_limit{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}<span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.conntrack.utilization-tabs" id="node.conntrack.utilization-tab-1">
  <label for="node.conntrack.utilization-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_nf_conntrack_entries{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">/</span> <span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_nf_conntrack_entries_limit{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.uptime">node.uptime
  <a class="anchor" href="#node.uptime">#</a>
</h4>
Seconds since the node booted.
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.uptime-tabs" id="node.uptime-tab-0" checked>
  <label for="node.uptime-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">min</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  node_time_seconds{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;} <span style="color:#f92672">-</span> node_boot_time_seconds{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.uptime-tabs" id="node.uptime-tab-1">
  <label for="node.uptime-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">min</span><span style="color:#960050;background-color:#1e0010">:</span>node_time_seconds{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">-</span> <span style="color:#66d9ef">max</span><span style="color:#960050;background-color:#1e0010">:</span>node_boot_time_seconds{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>}
</span></span></code></pre></div>
  </div>
</div>
<h4 id="node.collector.success">node.collector.success
  <a class="anchor" href="#node.collector.success">#</a>
</h4>
Whether each enabled node-exporter collector returned data on the last
scrape, per collector.
<div class="book-tabs">
  <input type="radio" class="toggle" name="node.collector.success-tabs" id="node.collector.success-tab-0" checked>
  <label for="node.collector.success-tab-0">PromQL</label>
  <div class="book-tabs-content markdown-inner">
          
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">min</span> <span style="color:#66d9ef">by</span> <span style="color:#f92672">(</span>instance, collector<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span>  node_scrape_collector_success{instance<span style="color:#f92672">=~</span>&#34;<span style="color:#e6db74">$nodeList</span>&#34;}
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>
</span></span></code></pre></div>
  </div>
  <input type="radio" class="toggle" name="node.collector.success-tabs" id="node.collector.success-tab-1">
  <label for="node.collector.success-tab-1">Datadog</label>
  <div class="book-tabs-content markdown-inner">
            
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-promql" data-lang="promql"><span style="display:flex;"><span><span style="color:#66d9ef">min</span><span style="color:#960050;background-color:#1e0010">:</span>node_scrape_collector_success{<span style="color:#960050;background-color:#1e0010">instance:$nodeList</span>} <span style="color:#66d9ef">by</span> {<span style="color:#960050;background-color:#1e0010">instance</span>,<span style="color:#960050;background-color:#1e0010">collector</span>}
</span></span></code></pre></div>
  </div>
</div>


