<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Remote configuration on Grafana Labs</title><link>https://grafana.com/docs/learning-hub/intro-to-fleet-management/02-remote-configuration/</link><description>Recent content in Remote configuration on Grafana Labs</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="/docs/learning-hub/intro-to-fleet-management/02-remote-configuration/index.xml" rel="self" type="application/rss+xml"/><item><title>Scaling with remote configuration</title><link>https://grafana.com/docs/learning-hub/intro-to-fleet-management/02-remote-configuration/16-module-2-transition/</link><pubDate>Thu, 09 Apr 2026 06:03:04 +0000</pubDate><guid>https://grafana.com/docs/learning-hub/intro-to-fleet-management/02-remote-configuration/16-module-2-transition/</guid><content><![CDATA[&lt;h2 id=&#34;what-you-learned-in-module-2&#34;&gt;What you learned in Module 2&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;How Fleet Management works — collectors register, poll for config, send health data&lt;/li&gt;
&lt;li&gt;Access tokens authenticate collectors with Fleet Management&lt;/li&gt;
&lt;li&gt;Attributes organize your fleet using key-value pairs&lt;/li&gt;
&lt;li&gt;Health monitoring provides centralized visibility into fleet health&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p&gt;In this module, you&amp;rsquo;ll learn to configure collectors remotely at scale:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;The scaling challenge&lt;/strong&gt; — Why manual configuration doesn&amp;rsquo;t work&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Configuration pipelines&lt;/strong&gt; — Creating and managing remote configs&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Attribute matching&lt;/strong&gt; — Targeting pipelines to specific collectors&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Configuration strategies&lt;/strong&gt; — Balancing local and remote config&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Safety safeguards&lt;/strong&gt; — Experimenting with confidence&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hands-on practice&lt;/strong&gt; — Categorize your fleet with remote attributes&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;estimated-time&#34;&gt;Estimated time&lt;/h2&gt;
&lt;p&gt;20-25 minutes&lt;/p&gt;
]]></content><description>&lt;h2 id="what-you-learned-in-module-2">What you learned in Module 2&lt;/h2>
&lt;ul>
&lt;li>How Fleet Management works — collectors register, poll for config, send health data&lt;/li>
&lt;li>Access tokens authenticate collectors with Fleet Management&lt;/li>
&lt;li>Attributes organize your fleet using key-value pairs&lt;/li>
&lt;li>Health monitoring provides centralized visibility into fleet health&lt;/li>
&lt;/ul>
&lt;hr />
&lt;p>In this module, you&amp;rsquo;ll learn to configure collectors remotely at scale:&lt;/p></description></item><item><title>The scaling challenge</title><link>https://grafana.com/docs/learning-hub/intro-to-fleet-management/02-remote-configuration/17-scaling-challenge/</link><pubDate>Thu, 09 Apr 2026 06:03:04 +0000</pubDate><guid>https://grafana.com/docs/learning-hub/intro-to-fleet-management/02-remote-configuration/17-scaling-challenge/</guid><content><![CDATA[&lt;h2 id=&#34;the-scaling-challenge&#34;&gt;The scaling challenge&lt;/h2&gt;
&lt;p&gt;As your fleet grows, manual configuration doesn&amp;rsquo;t scale.&lt;/p&gt;
&lt;p&gt;
&lt;div class=&#34;learning-hub-image&#34;&gt;
  &lt;a href=&#34;fleet-management-scaling-challenge.svg&#34; title=&#34;The scaling challenge: manual approach vs remote configuration&#34;&gt;
    &lt;img
      class=&#34;lazyload d-inline-block&#34;
      data-src=&#34;fleet-management-scaling-challenge.svg&#34;
      alt=&#34;The scaling challenge: manual approach vs remote configuration&#34;/&gt;
    &lt;div class=&#34;learning-hub-image__zoom&#34;&gt;
      &lt;svg width=&#34;24&#34; height=&#34;24&#34; viewBox=&#34;0 0 24 24&#34; fill=&#34;none&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
        &lt;path d=&#34;M21 21L15 15M17 10C17 13.866 13.866 17 10 17C6.13401 17 3 13.866 3 10C3 6.13401 6.13401 3 10 3C13.866 3 17 6.13401 17 10Z&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
        &lt;path d=&#34;M10 7V13M7 10H13&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34; stroke-linecap=&#34;round&#34;/&gt;
      &lt;/svg&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;h2 id=&#34;the-math&#34;&gt;The math&lt;/h2&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Approach&lt;/th&gt;
              &lt;th&gt;5 collectors&lt;/th&gt;
              &lt;th&gt;50 collectors&lt;/th&gt;
              &lt;th&gt;500 collectors&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Manual&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;5 updates&lt;/td&gt;
              &lt;td&gt;50 updates&lt;/td&gt;
              &lt;td&gt;500 updates&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Remote config&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;1 update&lt;/td&gt;
              &lt;td&gt;1 update&lt;/td&gt;
              &lt;td&gt;1 update&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Configure once, deploy everywhere.&lt;/strong&gt; One update reaches your entire fleet.&lt;/p&gt;&lt;/blockquote&gt;
]]></content><description>&lt;h2 id="the-scaling-challenge">The scaling challenge&lt;/h2>
&lt;p>As your fleet grows, manual configuration doesn&amp;rsquo;t scale.&lt;/p>
&lt;p>
&lt;div class="learning-hub-image">
&lt;a href="fleet-management-scaling-challenge.svg" title="The scaling challenge: manual approach vs remote configuration">
&lt;img
class="lazyload d-inline-block"
data-src="fleet-management-scaling-challenge.svg"
alt="The scaling challenge: manual approach vs remote configuration"/>
&lt;div class="learning-hub-image__zoom">
&lt;svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
&lt;path d="M21 21L15 15M17 10C17 13.866 13.866 17 10 17C6.13401 17 3 13.866 3 10C3 6.13401 6.13401 3 10 3C13.866 3 17 6.13401 17 10Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
&lt;path d="M10 7V13M7 10H13" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
&lt;/svg>
&lt;/div>
&lt;/a>
&lt;/div>
&lt;/p></description></item><item><title>Configuration pipelines</title><link>https://grafana.com/docs/learning-hub/intro-to-fleet-management/02-remote-configuration/18-configuration-pipelines/</link><pubDate>Thu, 09 Apr 2026 06:03:04 +0000</pubDate><guid>https://grafana.com/docs/learning-hub/intro-to-fleet-management/02-remote-configuration/18-configuration-pipelines/</guid><content><![CDATA[&lt;h2 id=&#34;configuration-pipelines&#34;&gt;Configuration pipelines&lt;/h2&gt;
&lt;p&gt;A configuration pipeline is the unit of remote configuration in Fleet Management. It&amp;rsquo;s configuration to perform one operation, such as monitoring MySQL. You can match multiple pipelines to a single collector and multiple collectors to a single pipeline.&lt;/p&gt;
&lt;p&gt;Each pipeline has a name, configuration content, and matching attributes.&lt;/p&gt;
&lt;p&gt;
&lt;div class=&#34;learning-hub-image&#34;&gt;
  &lt;a href=&#34;fleet-management-pipeline-anatomy.svg&#34; title=&#34;Anatomy of a configuration pipeline&#34;&gt;
    &lt;img
      class=&#34;lazyload d-inline-block&#34;
      data-src=&#34;fleet-management-pipeline-anatomy.svg&#34;
      alt=&#34;Anatomy of a configuration pipeline&#34;/&gt;
    &lt;div class=&#34;learning-hub-image__zoom&#34;&gt;
      &lt;svg width=&#34;24&#34; height=&#34;24&#34; viewBox=&#34;0 0 24 24&#34; fill=&#34;none&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
        &lt;path d=&#34;M21 21L15 15M17 10C17 13.866 13.866 17 10 17C6.13401 17 3 13.866 3 10C3 6.13401 6.13401 3 10 3C13.866 3 17 6.13401 17 10Z&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
        &lt;path d=&#34;M10 7V13M7 10H13&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34; stroke-linecap=&#34;round&#34;/&gt;
      &lt;/svg&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;h2 id=&#34;key-terms&#34;&gt;Key terms&lt;/h2&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Term&lt;/th&gt;
              &lt;th&gt;What it means&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Remote configuration&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;All the configuration pipelines matched to a collector&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Configuration pipeline&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;The pieces of config you create and assign, usually representing one monitoring operation&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;pipeline-components&#34;&gt;Pipeline components&lt;/h2&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Component&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Name&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Unique identifier for the pipeline&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Content&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Standard configuration for one operation&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Matching attributes&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Rules that assign the pipeline to collectors&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Pipelines are reusable.&lt;/strong&gt; Create once, assign to many collectors using attribute matching.&lt;/p&gt;&lt;/blockquote&gt;
]]></content><description>&lt;h2 id="configuration-pipelines">Configuration pipelines&lt;/h2>
&lt;p>A configuration pipeline is the unit of remote configuration in Fleet Management. It&amp;rsquo;s configuration to perform one operation, such as monitoring MySQL. You can match multiple pipelines to a single collector and multiple collectors to a single pipeline.&lt;/p></description></item><item><title>Working with pipelines</title><link>https://grafana.com/docs/learning-hub/intro-to-fleet-management/02-remote-configuration/19-working-with-pipelines/</link><pubDate>Thu, 09 Apr 2026 06:03:04 +0000</pubDate><guid>https://grafana.com/docs/learning-hub/intro-to-fleet-management/02-remote-configuration/19-working-with-pipelines/</guid><content><![CDATA[&lt;h2 id=&#34;creating-pipelines&#34;&gt;Creating pipelines&lt;/h2&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Approach&lt;/th&gt;
              &lt;th&gt;Best for&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Integration templates&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Common use cases (Linux, MySQL, PostgreSQL)&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Custom configuration&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Specific requirements, custom scrapes&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;pipeline-operations&#34;&gt;Pipeline operations&lt;/h2&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Action&lt;/th&gt;
              &lt;th&gt;What it does&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Activate/Deactivate&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Toggle collection on/off instantly&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Edit&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Update configuration content&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;View history&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;See what changed and when&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;why-this-matters&#34;&gt;Why this matters&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Instant changes&lt;/strong&gt; — No deployments, no restarts&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Safe experimentation&lt;/strong&gt; — Toggle off if something goes wrong&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Audit trail&lt;/strong&gt; — History shows what changed and when&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h2 id="creating-pipelines">Creating pipelines&lt;/h2>
&lt;section class="expand-table-wrapper">&lt;div class="responsive-table-wrapper">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Approach&lt;/th>
&lt;th>Best for&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>Integration templates&lt;/strong>&lt;/td>
&lt;td>Common use cases (Linux, MySQL, PostgreSQL)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Custom configuration&lt;/strong>&lt;/td>
&lt;td>Specific requirements, custom scrapes&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;/section>&lt;h2 id="pipeline-operations">Pipeline operations&lt;/h2>
&lt;section class="expand-table-wrapper">&lt;div class="responsive-table-wrapper">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Action&lt;/th>
&lt;th>What it does&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>Activate/Deactivate&lt;/strong>&lt;/td>
&lt;td>Toggle collection on/off instantly&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Edit&lt;/strong>&lt;/td>
&lt;td>Update configuration content&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>View history&lt;/strong>&lt;/td>
&lt;td>See what changed and when&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;/section>&lt;h2 id="why-this-matters">Why this matters&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Instant changes&lt;/strong> — No deployments, no restarts&lt;/li>
&lt;li>&lt;strong>Safe experimentation&lt;/strong> — Toggle off if something goes wrong&lt;/li>
&lt;li>&lt;strong>Audit trail&lt;/strong> — History shows what changed and when&lt;/li>
&lt;/ul></description></item><item><title>Designing your attribute schema</title><link>https://grafana.com/docs/learning-hub/intro-to-fleet-management/02-remote-configuration/20-designing-attributes/</link><pubDate>Thu, 09 Apr 2026 06:03:04 +0000</pubDate><guid>https://grafana.com/docs/learning-hub/intro-to-fleet-management/02-remote-configuration/20-designing-attributes/</guid><content><![CDATA[&lt;h2 id=&#34;how-to-choose-your-attributes&#34;&gt;How to choose your attributes&lt;/h2&gt;
&lt;p&gt;Ask yourself: &lt;strong&gt;&amp;ldquo;What groups of collectors should receive the same configuration?&amp;rdquo;&lt;/strong&gt;&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;If you want to target&amp;hellip;&lt;/th&gt;
              &lt;th&gt;You need an attribute like&amp;hellip;&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;All production servers&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;env=production&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Collectors in specific regions&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;region=us-east&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Collectors owned by a team&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;team=platform&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Collectors for a specific service&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;service=api-gateway&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;
&lt;div class=&#34;learning-hub-image&#34;&gt;
  &lt;a href=&#34;fleet-management-attribute-schema.svg&#34; title=&#34;Start with one question&#34;&gt;
    &lt;img
      class=&#34;lazyload d-inline-block&#34;
      data-src=&#34;fleet-management-attribute-schema.svg&#34;
      alt=&#34;Start with one question&#34;/&gt;
    &lt;div class=&#34;learning-hub-image__zoom&#34;&gt;
      &lt;svg width=&#34;24&#34; height=&#34;24&#34; viewBox=&#34;0 0 24 24&#34; fill=&#34;none&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
        &lt;path d=&#34;M21 21L15 15M17 10C17 13.866 13.866 17 10 17C6.13401 17 3 13.866 3 10C3 6.13401 6.13401 3 10 3C13.866 3 17 6.13401 17 10Z&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
        &lt;path d=&#34;M10 7V13M7 10H13&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34; stroke-linecap=&#34;round&#34;/&gt;
      &lt;/svg&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;h2 id=&#34;common-attribute-patterns&#34;&gt;Common attribute patterns&lt;/h2&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Attribute&lt;/th&gt;
              &lt;th&gt;Example values&lt;/th&gt;
              &lt;th&gt;Use case&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;env&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;production&lt;/code&gt;, &lt;code&gt;staging&lt;/code&gt;, &lt;code&gt;dev&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Environment-specific configs&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;region&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;us-east&lt;/code&gt;, &lt;code&gt;eu-west&lt;/code&gt;, &lt;code&gt;ap-south&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Region-specific collection&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;team&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;platform&lt;/code&gt;, &lt;code&gt;backend&lt;/code&gt;, &lt;code&gt;data&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Team ownership&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;service&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;api&lt;/code&gt;, &lt;code&gt;web&lt;/code&gt;, &lt;code&gt;worker&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Service-specific monitoring&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Start simple.&lt;/strong&gt; Begin with &lt;code&gt;env&lt;/code&gt; and one or two others. Add more as needed.&lt;/p&gt;&lt;/blockquote&gt;
]]></content><description>&lt;h2 id="how-to-choose-your-attributes">How to choose your attributes&lt;/h2>
&lt;p>Ask yourself: &lt;strong>&amp;ldquo;What groups of collectors should receive the same configuration?&amp;rdquo;&lt;/strong>&lt;/p>
&lt;section class="expand-table-wrapper">&lt;div class="responsive-table-wrapper">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>If you want to target&amp;hellip;&lt;/th>
&lt;th>You need an attribute like&amp;hellip;&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>All production servers&lt;/td>
&lt;td>&lt;code>env=production&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Collectors in specific regions&lt;/td>
&lt;td>&lt;code>region=us-east&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Collectors owned by a team&lt;/td>
&lt;td>&lt;code>team=platform&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Collectors for a specific service&lt;/td>
&lt;td>&lt;code>service=api-gateway&lt;/code>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;/section>&lt;p>
&lt;div class="learning-hub-image">
&lt;a href="fleet-management-attribute-schema.svg" title="Start with one question">
&lt;img
class="lazyload d-inline-block"
data-src="fleet-management-attribute-schema.svg"
alt="Start with one question"/>
&lt;div class="learning-hub-image__zoom">
&lt;svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
&lt;path d="M21 21L15 15M17 10C17 13.866 13.866 17 10 17C6.13401 17 3 13.866 3 10C3 6.13401 6.13401 3 10 3C13.866 3 17 6.13401 17 10Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
&lt;path d="M10 7V13M7 10H13" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
&lt;/svg>
&lt;/div>
&lt;/a>
&lt;/div>
&lt;/p></description></item><item><title>Attribute anti-patterns</title><link>https://grafana.com/docs/learning-hub/intro-to-fleet-management/02-remote-configuration/21-attribute-anti-patterns/</link><pubDate>Thu, 09 Apr 2026 06:03:04 +0000</pubDate><guid>https://grafana.com/docs/learning-hub/intro-to-fleet-management/02-remote-configuration/21-attribute-anti-patterns/</guid><content><![CDATA[&lt;h2 id=&#34;what-not-to-do&#34;&gt;What &lt;em&gt;not&lt;/em&gt; to do&lt;/h2&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Anti-pattern&lt;/th&gt;
              &lt;th&gt;Why it&amp;rsquo;s a problem&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;Too many attributes&lt;/td&gt;
              &lt;td&gt;Hard to manage, attribute limits per collector or API call&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Frequently changing values&lt;/td&gt;
              &lt;td&gt;Use remote attributes in UI instead&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Sensitive information&lt;/td&gt;
              &lt;td&gt;Attributes are visible in the Fleet Management UI&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Duplicating reserved attributes&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;collector.os&lt;/code&gt;, &lt;code&gt;collector.version&lt;/code&gt;, and &lt;code&gt;collector.ID&lt;/code&gt; already exist&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Inconsistent naming&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;myEnv&lt;/code&gt; vs &lt;code&gt;my_env&lt;/code&gt; vs &lt;code&gt;my-env&lt;/code&gt; causes confusion&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Overly specific values&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;hostname=server-123&lt;/code&gt; — use &lt;code&gt;collector.ID&lt;/code&gt; instead&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;tips-for-beginners&#34;&gt;Tips for beginners&lt;/h2&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Tip&lt;/th&gt;
              &lt;th&gt;Why it helps&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Start simple&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Begin with &lt;code&gt;env&lt;/code&gt; and maybe one or two others&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Be consistent&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Pick a naming convention and stick to it&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Document your schema&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Note down what each attribute means&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Think about targeting&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Every attribute should help you target pipelines&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;]]></content><description>&lt;h2 id="what-not-to-do">What &lt;em>not&lt;/em> to do&lt;/h2>
&lt;section class="expand-table-wrapper">&lt;div class="responsive-table-wrapper">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Anti-pattern&lt;/th>
&lt;th>Why it&amp;rsquo;s a problem&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Too many attributes&lt;/td>
&lt;td>Hard to manage, attribute limits per collector or API call&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Frequently changing values&lt;/td>
&lt;td>Use remote attributes in UI instead&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Sensitive information&lt;/td>
&lt;td>Attributes are visible in the Fleet Management UI&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Duplicating reserved attributes&lt;/td>
&lt;td>&lt;code>collector.os&lt;/code>, &lt;code>collector.version&lt;/code>, and &lt;code>collector.ID&lt;/code> already exist&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Inconsistent naming&lt;/td>
&lt;td>&lt;code>myEnv&lt;/code> vs &lt;code>my_env&lt;/code> vs &lt;code>my-env&lt;/code> causes confusion&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Overly specific values&lt;/td>
&lt;td>&lt;code>hostname=server-123&lt;/code> — use &lt;code>collector.ID&lt;/code> instead&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;/section>&lt;h2 id="tips-for-beginners">Tips for beginners&lt;/h2>
&lt;section class="expand-table-wrapper">&lt;div class="responsive-table-wrapper">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Tip&lt;/th>
&lt;th>Why it helps&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>Start simple&lt;/strong>&lt;/td>
&lt;td>Begin with &lt;code>env&lt;/code> and maybe one or two others&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Be consistent&lt;/strong>&lt;/td>
&lt;td>Pick a naming convention and stick to it&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Document your schema&lt;/strong>&lt;/td>
&lt;td>Note down what each attribute means&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Think about targeting&lt;/strong>&lt;/td>
&lt;td>Every attribute should help you target pipelines&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;/section></description></item><item><title>Attribute examples</title><link>https://grafana.com/docs/learning-hub/intro-to-fleet-management/02-remote-configuration/22-attribute-examples/</link><pubDate>Thu, 09 Apr 2026 06:03:04 +0000</pubDate><guid>https://grafana.com/docs/learning-hub/intro-to-fleet-management/02-remote-configuration/22-attribute-examples/</guid><content><![CDATA[&lt;h2 id=&#34;example-1-minimal-starting-schema&#34;&gt;Example 1: Minimal starting schema&lt;/h2&gt;
&lt;p&gt;This example shows the recommended starting point for new Fleet Management users: just two attributes:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Alloy&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-alloy&#34;&gt;remotecfg {
    // ... other configuration ...
    
    attributes = {
        &amp;#34;env&amp;#34;  = &amp;#34;production&amp;#34;,   // Which environment: production, staging, or dev
        &amp;#34;team&amp;#34; = &amp;#34;platform&amp;#34;      // Who owns this collector
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Attribute&lt;/th&gt;
              &lt;th&gt;Value&lt;/th&gt;
              &lt;th&gt;What it means&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;env&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;production&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;This collector monitors production infrastructure&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;team&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;platform&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The platform team owns and manages this collector&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;what-you-can-target-with-this-schema&#34;&gt;What you can target with this schema&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;All production collectors → &lt;code&gt;env=production&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;All collectors owned by platform team → &lt;code&gt;team=platform&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Production collectors owned by platform → &lt;code&gt;env=production, team=platform&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2 id=&#34;example-2-expanded-schema-for-larger-deployments&#34;&gt;Example 2: Expanded schema for larger deployments&lt;/h2&gt;
&lt;p&gt;As your fleet grows, you may need more precise targeting. This example adds a region attribute:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Alloy&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-alloy&#34;&gt;remotecfg {
    // ... other configuration ...
    
    attributes = {
        &amp;#34;env&amp;#34;    = &amp;#34;production&amp;#34;,
        &amp;#34;region&amp;#34; = &amp;#34;us-east-1&amp;#34;,
        &amp;#34;team&amp;#34;   = &amp;#34;platform&amp;#34;
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Attribute&lt;/th&gt;
              &lt;th&gt;Value&lt;/th&gt;
              &lt;th&gt;What it means&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;env&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;production&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;This collector monitors production infrastructure&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;region&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;us-east-1&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;This collector is located in the US East region&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;team&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;platform&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The platform team owns and manages this collector&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;what-you-can-target-with-this-schema-1&#34;&gt;What you can target with this schema&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;All US East collectors → &lt;code&gt;region=us-east-1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Production collectors in US East → &lt;code&gt;env=production, region=us-east-1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Platform team&amp;rsquo;s US East production collectors → all three attributes&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Start simple, expand as needed.&lt;/strong&gt; Begin with Example 1. Add more attributes when you need that level of targeting precision.&lt;/p&gt;&lt;/blockquote&gt;
]]></content><description>&lt;h2 id="example-1-minimal-starting-schema">Example 1: Minimal starting schema&lt;/h2>
&lt;p>This example shows the recommended starting point for new Fleet Management users: just two attributes:&lt;/p>
&lt;div class="code-snippet ">&lt;div class="lang-toolbar">
&lt;span class="lang-toolbar__item lang-toolbar__item-active">Alloy&lt;/span>
&lt;span class="code-clipboard">
&lt;button x-data="app_code_snippet()" x-init="init()" @click="copy()">
&lt;img class="code-clipboard__icon" src="/media/images/icons/icon-copy-small-2.svg" alt="Copy code to clipboard" width="14" height="13">
&lt;span>Copy&lt;/span>
&lt;/button>
&lt;/span>
&lt;div class="lang-toolbar__border">&lt;/div>
&lt;/div>&lt;div class="code-snippet ">
&lt;pre data-expanded="false">&lt;code class="language-alloy">remotecfg {
// ... other configuration ...
attributes = {
&amp;#34;env&amp;#34; = &amp;#34;production&amp;#34;, // Which environment: production, staging, or dev
&amp;#34;team&amp;#34; = &amp;#34;platform&amp;#34; // Who owns this collector
}
}&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;section class="expand-table-wrapper">&lt;div class="responsive-table-wrapper">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Attribute&lt;/th>
&lt;th>Value&lt;/th>
&lt;th>What it means&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;code>env&lt;/code>&lt;/td>
&lt;td>&lt;code>production&lt;/code>&lt;/td>
&lt;td>This collector monitors production infrastructure&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>team&lt;/code>&lt;/td>
&lt;td>&lt;code>platform&lt;/code>&lt;/td>
&lt;td>The platform team owns and manages this collector&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;/section>&lt;h2 id="what-you-can-target-with-this-schema">What you can target with this schema&lt;/h2>
&lt;ul>
&lt;li>All production collectors → &lt;code>env=production&lt;/code>&lt;/li>
&lt;li>All collectors owned by platform team → &lt;code>team=platform&lt;/code>&lt;/li>
&lt;li>Production collectors owned by platform → &lt;code>env=production, team=platform&lt;/code>&lt;/li>
&lt;/ul>
&lt;hr />
&lt;h2 id="example-2-expanded-schema-for-larger-deployments">Example 2: Expanded schema for larger deployments&lt;/h2>
&lt;p>As your fleet grows, you may need more precise targeting. This example adds a region attribute:&lt;/p></description></item><item><title>Attribute matching</title><link>https://grafana.com/docs/learning-hub/intro-to-fleet-management/02-remote-configuration/23-attribute-matching/</link><pubDate>Thu, 09 Apr 2026 06:03:04 +0000</pubDate><guid>https://grafana.com/docs/learning-hub/intro-to-fleet-management/02-remote-configuration/23-attribute-matching/</guid><content><![CDATA[&lt;h2 id=&#34;attribute-matching&#34;&gt;Attribute matching&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Attribute matching&lt;/strong&gt; is the mechanism that connects pipelines to collectors. When you create a pipeline, you define matchers, which are rules that specify which collectors should receive that pipeline based on their attributes.&lt;/p&gt;
&lt;p&gt;Matchers determine which collectors receive a pipeline.&lt;/p&gt;
&lt;p&gt;
&lt;div class=&#34;learning-hub-image&#34;&gt;
  &lt;a href=&#34;fleet-management-attribute-matching.svg&#34; title=&#34;Attribute matching connects pipelines to collectors&#34;&gt;
    &lt;img
      class=&#34;lazyload d-inline-block&#34;
      data-src=&#34;fleet-management-attribute-matching.svg&#34;
      alt=&#34;Attribute matching connects pipelines to collectors&#34;/&gt;
    &lt;div class=&#34;learning-hub-image__zoom&#34;&gt;
      &lt;svg width=&#34;24&#34; height=&#34;24&#34; viewBox=&#34;0 0 24 24&#34; fill=&#34;none&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
        &lt;path d=&#34;M21 21L15 15M17 10C17 13.866 13.866 17 10 17C6.13401 17 3 13.866 3 10C3 6.13401 6.13401 3 10 3C13.866 3 17 6.13401 17 10Z&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
        &lt;path d=&#34;M10 7V13M7 10H13&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34; stroke-linecap=&#34;round&#34;/&gt;
      &lt;/svg&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;h2 id=&#34;how-matchers-work&#34;&gt;How matchers work&lt;/h2&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;You define&amp;hellip;&lt;/th&gt;
              &lt;th&gt;To target&amp;hellip;&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;env=production&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;All collectors with &lt;code&gt;env&lt;/code&gt; attribute set to &lt;code&gt;production&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;region=~&amp;quot;us-.*&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;All collectors in any US region&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;matcher-syntax&#34;&gt;Matcher syntax&lt;/h2&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Operator&lt;/th&gt;
              &lt;th&gt;Meaning&lt;/th&gt;
              &lt;th&gt;Example&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;=&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Equals&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;env=production&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;!=&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Not equals&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;env!=development&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;=~&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Regex match&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;region=~&amp;quot;us-.*&amp;quot;&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;!~&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Regex not match&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;team!~&amp;quot;test-.*&amp;quot;&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;matching-rule-and-logic&#34;&gt;Matching rule: AND logic&lt;/h2&gt;
&lt;p&gt;All matchers must match for a collector to receive a pipeline.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Matchers defined&lt;/th&gt;
              &lt;th&gt;Collector receives pipeline if&amp;hellip;&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;env=prod&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;env&lt;/code&gt; is &lt;code&gt;prod&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;env=prod&lt;/code&gt;, &lt;code&gt;region=us-east&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;env&lt;/code&gt; is &lt;code&gt;prod&lt;/code&gt; &lt;strong&gt;AND&lt;/strong&gt; &lt;code&gt;region&lt;/code&gt; is &lt;code&gt;us-east&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;]]></content><description>&lt;h2 id="attribute-matching">Attribute matching&lt;/h2>
&lt;p>&lt;strong>Attribute matching&lt;/strong> is the mechanism that connects pipelines to collectors. When you create a pipeline, you define matchers, which are rules that specify which collectors should receive that pipeline based on their attributes.&lt;/p></description></item><item><title>Matching in practice</title><link>https://grafana.com/docs/learning-hub/intro-to-fleet-management/02-remote-configuration/24-matching-patterns/</link><pubDate>Thu, 09 Apr 2026 06:03:04 +0000</pubDate><guid>https://grafana.com/docs/learning-hub/intro-to-fleet-management/02-remote-configuration/24-matching-patterns/</guid><content><![CDATA[&lt;h2 id=&#34;common-patterns&#34;&gt;Common patterns&lt;/h2&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Pattern&lt;/th&gt;
              &lt;th&gt;Matcher examples&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Environment-based&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;env=&amp;quot;production&amp;quot;&lt;/code&gt;, &lt;code&gt;env=&amp;quot;staging&amp;quot;&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Region-based&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;region=&amp;quot;us-east&amp;quot;&lt;/code&gt;, &lt;code&gt;region=&amp;quot;eu-west&amp;quot;&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Team-based&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;team=&amp;quot;platform&amp;quot;&lt;/code&gt;, &lt;code&gt;team=&amp;quot;backend&amp;quot;&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Catch-all&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;collector.os=~&amp;quot;.&#43;&amp;quot;&lt;/code&gt; (matches all collectors)&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;example-production-platform-pipeline&#34;&gt;Example: Production platform pipeline&lt;/h2&gt;

&lt;div class=&#34;code-snippet code-snippet__mini&#34;&gt;&lt;div class=&#34;lang-toolbar__mini&#34;&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet code-snippet__border&#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;Matchers: env=~&amp;#34;prod-.*&amp;#34;, team=&amp;#34;platform&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;This pipeline applies to collectors where:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;env&lt;/code&gt; matches the regex &lt;code&gt;prod-.*&lt;/code&gt; &lt;strong&gt;AND&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;team&lt;/code&gt; equals &lt;code&gt;platform&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;limits-to-know&#34;&gt;Limits to know&lt;/h2&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Limit&lt;/th&gt;
              &lt;th&gt;Value&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;Matcher length&lt;/td&gt;
              &lt;td&gt;200 characters max (key &#43; operator &#43; value)&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Local attributes per collector&lt;/td&gt;
              &lt;td&gt;22 max when polling&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;]]></content><description>&lt;h2 id="common-patterns">Common patterns&lt;/h2>
&lt;section class="expand-table-wrapper">&lt;div class="responsive-table-wrapper">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Pattern&lt;/th>
&lt;th>Matcher examples&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>Environment-based&lt;/strong>&lt;/td>
&lt;td>&lt;code>env=&amp;quot;production&amp;quot;&lt;/code>, &lt;code>env=&amp;quot;staging&amp;quot;&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Region-based&lt;/strong>&lt;/td>
&lt;td>&lt;code>region=&amp;quot;us-east&amp;quot;&lt;/code>, &lt;code>region=&amp;quot;eu-west&amp;quot;&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Team-based&lt;/strong>&lt;/td>
&lt;td>&lt;code>team=&amp;quot;platform&amp;quot;&lt;/code>, &lt;code>team=&amp;quot;backend&amp;quot;&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Catch-all&lt;/strong>&lt;/td>
&lt;td>&lt;code>collector.os=~&amp;quot;.+&amp;quot;&lt;/code> (matches all collectors)&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;/section>&lt;h2 id="example-production-platform-pipeline">Example: Production platform pipeline&lt;/h2>
&lt;div class="code-snippet code-snippet__mini">&lt;div class="lang-toolbar__mini">
&lt;span class="code-clipboard">
&lt;button x-data="app_code_snippet()" x-init="init()" @click="copy()">
&lt;img class="code-clipboard__icon" src="/media/images/icons/icon-copy-small-2.svg" alt="Copy code to clipboard" width="14" height="13">
&lt;span>Copy&lt;/span>
&lt;/button>
&lt;/span>
&lt;/div>&lt;div class="code-snippet code-snippet__border">
&lt;pre data-expanded="false">&lt;code class="language-none">Matchers: env=~&amp;#34;prod-.*&amp;#34;, team=&amp;#34;platform&amp;#34;&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;p>This pipeline applies to collectors where:&lt;/p></description></item><item><title>Configuration strategies</title><link>https://grafana.com/docs/learning-hub/intro-to-fleet-management/02-remote-configuration/25-configuration-strategies/</link><pubDate>Thu, 09 Apr 2026 06:03:04 +0000</pubDate><guid>https://grafana.com/docs/learning-hub/intro-to-fleet-management/02-remote-configuration/25-configuration-strategies/</guid><content><![CDATA[&lt;h2 id=&#34;configuration-strategies&#34;&gt;Configuration strategies&lt;/h2&gt;
&lt;p&gt;Fleet Management gives you flexibility in how you balance local and remote configuration. You don&amp;rsquo;t have to go all-in on either approach. Choose the strategy that fits your situation.&lt;/p&gt;
&lt;p&gt;
&lt;div class=&#34;learning-hub-image&#34;&gt;
  &lt;a href=&#34;fleet-management-strategies.svg&#34; title=&#34;Three strategies for balancing local and remote configuration&#34;&gt;
    &lt;img
      class=&#34;lazyload d-inline-block&#34;
      data-src=&#34;fleet-management-strategies.svg&#34;
      alt=&#34;Three strategies for balancing local and remote configuration&#34;/&gt;
    &lt;div class=&#34;learning-hub-image__zoom&#34;&gt;
      &lt;svg width=&#34;24&#34; height=&#34;24&#34; viewBox=&#34;0 0 24 24&#34; fill=&#34;none&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
        &lt;path d=&#34;M21 21L15 15M17 10C17 13.866 13.866 17 10 17C6.13401 17 3 13.866 3 10C3 6.13401 6.13401 3 10 3C13.866 3 17 6.13401 17 10Z&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
        &lt;path d=&#34;M10 7V13M7 10H13&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34; stroke-linecap=&#34;round&#34;/&gt;
      &lt;/svg&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;h2 id=&#34;remote-first&#34;&gt;Remote-first&lt;/h2&gt;
&lt;p&gt;Minimal local config, everything else managed remotely.&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Alloy&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-alloy&#34;&gt;remotecfg {
    url = &amp;#34;https://...&amp;#34;
    // ... auth config
    id = constants.hostname
    attributes = {&amp;#34;env&amp;#34; = &amp;#34;prod&amp;#34;}
}

// Everything else comes from Fleet Management&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;local-first&#34;&gt;Local-first&lt;/h2&gt;
&lt;p&gt;Primary config stays local, Fleet Management for self-monitoring.&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Alloy&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-alloy&#34;&gt;// Local config: full configuration
remotecfg {
    url = &amp;#34;https://...&amp;#34;
    id = constants.hostname
    attributes = {&amp;#34;env&amp;#34; = &amp;#34;prod&amp;#34;}
}

// All your standard collection is here
prometheus.scrape &amp;#34;node&amp;#34; { /* ... */ }
prometheus.scrape &amp;#34;app&amp;#34; { /* ... */ }
loki.source.file &amp;#34;logs&amp;#34; { /* ... */ }

// Fleet Management used only for collector self-monitoring&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;hybrid&#34;&gt;Hybrid&lt;/h2&gt;
&lt;p&gt;Top-level config blocks stay local. Everything else is remote.&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Alloy&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-alloy&#34;&gt;// Local config: top-level blocks
logging { level = &amp;#34;info&amp;#34; }

livedebugging { enabled = true }

remotecfg {
    url = &amp;#34;https://...&amp;#34;
    id = constants.hostname
    attributes = {&amp;#34;env&amp;#34; = &amp;#34;prod&amp;#34;}
}

// All other config managed remotely in Fleet Management&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
]]></content><description>&lt;h2 id="configuration-strategies">Configuration strategies&lt;/h2>
&lt;p>Fleet Management gives you flexibility in how you balance local and remote configuration. You don&amp;rsquo;t have to go all-in on either approach. Choose the strategy that fits your situation.&lt;/p></description></item><item><title>Why it's safe to experiment</title><link>https://grafana.com/docs/learning-hub/intro-to-fleet-management/02-remote-configuration/26-safeguards/</link><pubDate>Thu, 09 Apr 2026 06:03:04 +0000</pubDate><guid>https://grafana.com/docs/learning-hub/intro-to-fleet-management/02-remote-configuration/26-safeguards/</guid><content><![CDATA[&lt;h2 id=&#34;safeguards&#34;&gt;Safeguards&lt;/h2&gt;
&lt;p&gt;Fleet Management is designed with safety in mind.&lt;/p&gt;
&lt;p&gt;
&lt;div class=&#34;learning-hub-image&#34;&gt;
  &lt;a href=&#34;fleet-management-safeguards.svg&#34; title=&#34;Experiment with confidence&#34;&gt;
    &lt;img
      class=&#34;lazyload d-inline-block&#34;
      data-src=&#34;fleet-management-safeguards.svg&#34;
      alt=&#34;Experiment with confidence&#34;/&gt;
    &lt;div class=&#34;learning-hub-image__zoom&#34;&gt;
      &lt;svg width=&#34;24&#34; height=&#34;24&#34; viewBox=&#34;0 0 24 24&#34; fill=&#34;none&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
        &lt;path d=&#34;M21 21L15 15M17 10C17 13.866 13.866 17 10 17C6.13401 17 3 13.866 3 10C3 6.13401 6.13401 3 10 3C13.866 3 17 6.13401 17 10Z&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
        &lt;path d=&#34;M10 7V13M7 10H13&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34; stroke-linecap=&#34;round&#34;/&gt;
      &lt;/svg&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;h2 id=&#34;four-safeguards&#34;&gt;Four safeguards&lt;/h2&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Safeguard&lt;/th&gt;
              &lt;th&gt;What it means&lt;/th&gt;
              &lt;th&gt;Why it matters&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Isolation&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Local and remote configs run independently&lt;/td&gt;
              &lt;td&gt;Remote errors don&amp;rsquo;t break local collection&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Fallback&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Invalid configs aren&amp;rsquo;t applied&lt;/td&gt;
              &lt;td&gt;Bad syntax doesn&amp;rsquo;t stop your collector&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Instant rollback&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Deactivate pipelines with one click&lt;/td&gt;
              &lt;td&gt;Fast recovery from any problem&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Targeted testing&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Use matchers to limit blast radius&lt;/td&gt;
              &lt;td&gt;Test on one collector before fleet-wide&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;what-happens-when-things-go-wrong&#34;&gt;What happens when things go wrong&lt;/h2&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Scenario&lt;/th&gt;
              &lt;th&gt;What Alloy does&lt;/th&gt;
              &lt;th&gt;Your action&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Syntax error in pipeline&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Rejects config, keeps last known good&lt;/td&gt;
              &lt;td&gt;Fix syntax, re-save pipeline&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Pipeline causes high load&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Runs but collector health dashboards show warning&lt;/td&gt;
              &lt;td&gt;Deactivate pipeline, investigate&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Wrong collectors matched&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Pipeline runs on unintended collectors&lt;/td&gt;
              &lt;td&gt;Update matchers, deactivate if needed&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;]]></content><description>&lt;h2 id="safeguards">Safeguards&lt;/h2>
&lt;p>Fleet Management is designed with safety in mind.&lt;/p>
&lt;p>
&lt;div class="learning-hub-image">
&lt;a href="fleet-management-safeguards.svg" title="Experiment with confidence">
&lt;img
class="lazyload d-inline-block"
data-src="fleet-management-safeguards.svg"
alt="Experiment with confidence"/>
&lt;div class="learning-hub-image__zoom">
&lt;svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
&lt;path d="M21 21L15 15M17 10C17 13.866 13.866 17 10 17C6.13401 17 3 13.866 3 10C3 6.13401 6.13401 3 10 3C13.866 3 17 6.13401 17 10Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
&lt;path d="M10 7V13M7 10H13" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
&lt;/svg>
&lt;/div>
&lt;/a>
&lt;/div>
&lt;/p></description></item><item><title>Safe experimentation workflow</title><link>https://grafana.com/docs/learning-hub/intro-to-fleet-management/02-remote-configuration/27-safe-experimentation/</link><pubDate>Thu, 09 Apr 2026 06:03:04 +0000</pubDate><guid>https://grafana.com/docs/learning-hub/intro-to-fleet-management/02-remote-configuration/27-safe-experimentation/</guid><content><![CDATA[&lt;h2 id=&#34;safe-experimentation-workflow&#34;&gt;Safe experimentation workflow&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Create pipeline&lt;/li&gt;
&lt;li&gt;Set matcher for ONE test collector (e.g., collector.ID=&amp;ldquo;test-collector-01&amp;rdquo;)&lt;/li&gt;
&lt;li&gt;Activate and verify&lt;/li&gt;
&lt;li&gt;Expand matcher to small group (e.g., env=&amp;ldquo;staging&amp;rdquo;)&lt;/li&gt;
&lt;li&gt;Verify at scale&lt;/li&gt;
&lt;li&gt;Expand to full target (e.g., env=&amp;ldquo;production&amp;rdquo;)&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;the-confidence-equation&#34;&gt;The confidence equation&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Isolation &#43; Fallback &#43; Instant rollback &#43; Targeted testing = Safe to experiment&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;You&amp;rsquo;re not gambling with production. You&amp;rsquo;re making controlled changes with multiple safety nets. Start small, verify, expand.&lt;/p&gt;
&lt;h2 id=&#34;coming-up-next&#34;&gt;Coming up next&lt;/h2&gt;
&lt;p&gt;You&amp;rsquo;ll categorize your collector fleet in the learning path. You&amp;rsquo;ll assign attributes like &lt;code&gt;team&lt;/code&gt;, &lt;code&gt;service.name&lt;/code&gt;, and &lt;code&gt;env&lt;/code&gt;—the foundation that makes targeted configuration and safe rollouts possible.&lt;/p&gt;
]]></content><description>&lt;h2 id="safe-experimentation-workflow">Safe experimentation workflow&lt;/h2>
&lt;ol>
&lt;li>Create pipeline&lt;/li>
&lt;li>Set matcher for ONE test collector (e.g., collector.ID=&amp;ldquo;test-collector-01&amp;rdquo;)&lt;/li>
&lt;li>Activate and verify&lt;/li>
&lt;li>Expand matcher to small group (e.g., env=&amp;ldquo;staging&amp;rdquo;)&lt;/li>
&lt;li>Verify at scale&lt;/li>
&lt;li>Expand to full target (e.g., env=&amp;ldquo;production&amp;rdquo;)&lt;/li>
&lt;/ol>
&lt;h2 id="the-confidence-equation">The confidence equation&lt;/h2>
&lt;blockquote>
&lt;p>&lt;strong>Isolation + Fallback + Instant rollback + Targeted testing = Safe to experiment&lt;/strong>&lt;/p></description></item><item><title>Categorize your collector fleet</title><link>https://grafana.com/docs/learning-hub/intro-to-fleet-management/02-remote-configuration/28-categorize-fleet-journey/</link><pubDate>Thu, 09 Apr 2026 06:03:04 +0000</pubDate><guid>https://grafana.com/docs/learning-hub/intro-to-fleet-management/02-remote-configuration/28-categorize-fleet-journey/</guid><content><![CDATA[







&lt;div class=&#34;learning-path-card&#34;&gt;
  



&lt;div class=&#34;pathway-row__label mb-1&#34;&gt;
  
  &lt;svg width=&#34;40&#34; height=&#34;40&#34; viewBox=&#34;0 0 40 40&#34; fill=&#34;none&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;&lt;rect x=&#34;0.5&#34; y=&#34;0.5&#34; width=&#34;39&#34; height=&#34;39&#34; rx=&#34;3.5&#34; fill=&#34;white&#34; stroke=&#34;#D8D8DF&#34;&gt;&lt;/rect&gt;&lt;path d=&#34;M8 20H14C16.5 20 18.5 18 18.5 15.5V12&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;2&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;&gt;&lt;/path&gt;&lt;path d=&#34;M8 20H14C16.5 20 18.5 22 18.5 24.5V28&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;2&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;&gt;&lt;/path&gt;&lt;path d=&#34;M14 20H32&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;2&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;&gt;&lt;/path&gt;&lt;circle cx=&#34;18.5&#34; cy=&#34;12&#34; r=&#34;2&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;2&#34; fill=&#34;white&#34;&gt;&lt;/circle&gt;&lt;circle cx=&#34;18.5&#34; cy=&#34;28&#34; r=&#34;2&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;2&#34; fill=&#34;white&#34;&gt;&lt;/circle&gt;&lt;path d=&#34;M29 17L32 20L29 23&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;2&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;&gt;&lt;/path&gt;&lt;/svg&gt;

  Learning path
&lt;/div&gt;

&lt;h4&gt;Categorize a collector fleet&lt;/h4&gt;
&lt;p&gt;Welcome to the Grafana Fleet Management learning journey that shows you how to organize and categorize your collector fleet using custom attributes for remote configuration. Learn to categorize your infrastructure with meaningful attributes that answer critical questions such as who owns this collector, which service does it support, and where is it running.&lt;/p&gt;

&lt;div class=&#34;d-sm-flex gap-half mb-2&#34;&gt;
  &lt;div class=&#34;d-flex align-items-center gap-half text-gray-12 mt-half body-small&#34;&gt;
    &lt;div class=&#34;journey-list__icon&#34;&gt;
  &lt;svg width=&#34;24&#34; height=&#34;24&#34; viewBox=&#34;0 0 24 24&#34; fill=&#34;none&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
  &lt;path fill-rule=&#34;evenodd&#34; clip-rule=&#34;evenodd&#34; d=&#34;M11.9995 22.5039C17.7985 22.5039 22.4995 17.8029 22.4995 12.0039C22.4995 6.20492 17.7985 1.50391 11.9995 1.50391C6.20052 1.50391 1.49951 6.20492 1.49951 12.0039C1.49951 17.8029 6.20052 22.5039 11.9995 22.5039Z&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
  &lt;path d=&#34;M11.9995 12.0039V8.25391&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
  &lt;path d=&#34;M11.9995 12.0078L16.6865 16.6958&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;/svg&gt;
&lt;/div&gt;
    &lt;span&gt;9 min&lt;/span&gt;
  &lt;/div&gt;
  
  &lt;div class=&#34;d-flex align-items-center gap-half text-gray-12 mt-half body-small&#34;&gt;
    &lt;div class=&#34;journey-list__icon&#34;&gt;
  &lt;svg width=&#34;24&#34; height=&#34;25&#34; viewBox=&#34;0 0 24 25&#34; fill=&#34;none&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
  &lt;path fill-rule=&#34;evenodd&#34; clip-rule=&#34;evenodd&#34; d=&#34;M0.75 9.83984C0.75 7.6307 2.54086 5.83984 4.75 5.83984H19.25C21.4591 5.83984 23.25 7.6307 23.25 9.83984V19.1198C23.25 21.329 21.4591 23.1198 19.25 23.1198H4.75C2.54086 23.1198 0.75 21.329 0.75 19.1198V9.83984Z&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
  &lt;path fill-rule=&#34;evenodd&#34; clip-rule=&#34;evenodd&#34; d=&#34;M14.25 1.52344H9.75C8.92157 1.52344 8.25 2.16815 8.25 2.96344V5.84344H15.75V2.96344C15.75 2.16815 15.0784 1.52344 14.25 1.52344Z&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
  &lt;path fill-rule=&#34;evenodd&#34; clip-rule=&#34;evenodd&#34; d=&#34;M12 15.923C12.8284 15.923 13.5 15.2783 13.5 14.483C13.5 13.6877 12.8284 13.043 12 13.043C11.1716 13.043 10.5 13.6877 10.5 14.483C10.5 15.2783 11.1716 15.923 12 15.923Z&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
  &lt;path fill-rule=&#34;evenodd&#34; clip-rule=&#34;evenodd&#34; d=&#34;M13.2742 8.91315L13.7162 10.309C13.8671 10.7897 14.3806 11.0756 14.8902 10.9628L16.3622 10.6354C16.9349 10.5115 17.5249 10.7602 17.8175 11.2488C18.11 11.7374 18.037 12.3519 17.6372 12.7647L16.6062 13.8312C16.2493 14.1997 16.2493 14.7703 16.6062 15.1388L17.6372 16.2053C18.0379 16.6179 18.1115 17.2331 17.8188 17.7222C17.526 18.2113 16.9353 18.4601 16.3622 18.3356L14.8902 18.0082C14.3806 17.8953 13.8671 18.1812 13.7162 18.662L13.2742 20.0559C13.1055 20.5961 12.5877 20.9661 12.0002 20.9661C11.4128 20.9661 10.8949 20.5961 10.7262 20.0559L10.2842 18.661C10.1333 18.1803 9.61982 17.8944 9.11021 18.0072L7.63821 18.3346C7.06469 18.4597 6.47325 18.2109 6.18034 17.7213C5.88742 17.2317 5.96161 16.6159 6.36321 16.2034L7.39421 15.1368C7.75116 14.7684 7.75116 14.1978 7.39421 13.8293L6.36321 12.7628C5.96346 12.35 5.89039 11.7354 6.18296 11.2468C6.47553 10.7582 7.06551 10.5096 7.63821 10.6335L9.11021 10.9608C9.61923 11.0739 10.1324 10.7889 10.2842 10.309L10.7262 8.91507C10.8944 8.37473 11.412 8.00435 11.9995 8.00391C12.5869 8.00346 13.1051 8.37307 13.2742 8.91315V8.91315Z&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;/svg&gt;
&lt;/div&gt;
    &lt;span&gt;Intermediate&lt;/span&gt;
  &lt;/div&gt;
  
  
  &lt;div class=&#34;d-flex align-items-center gap-half text-gray-12 mt-half body-small&#34;&gt;
    &lt;div class=&#34;journey-list__icon&#34;&gt;
  &lt;svg width=&#34;24&#34; height=&#34;24&#34; viewBox=&#34;0 0 24 24&#34; fill=&#34;none&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
  &lt;path fill-rule=&#34;evenodd&#34; clip-rule=&#34;evenodd&#34; d=&#34;M0.75 2.75C0.75 1.64543 1.64543 0.75 2.75 0.75H21.25C22.3546 0.75 23.25 1.64543 23.25 2.75V21.25C23.25 22.3546 22.3546 23.25 21.25 23.25H2.75C1.64543 23.25 0.75 22.3546 0.75 21.25V2.75Z&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
  &lt;path d=&#34;M12 4.5L7.5 10.5L4.5 7.5&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
  &lt;path d=&#34;M14.25 8.25H18.75&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
  &lt;path d=&#34;M12 13.5L7.5 19.5L4.5 16.5&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
  &lt;path d=&#34;M14.25 17.25H18.75&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;/svg&gt;
&lt;/div&gt;
    &lt;span&gt;Docs&lt;/span&gt;
  &lt;/div&gt;
  
&lt;/div&gt;





&lt;div class=&#34;orange-outline-list br-12 border-color-orange-flat border-width-2 p-1-5 pb-1&#34; x3-data=&#34;selectStack(&#39;/docs/learning-paths/categorize-collector-fleet&#39;)&#34;&gt;
  &lt;div class=&#34;icon-heading d-flex&#34;&gt;
    &lt;div class=&#34;icon-heading__container&#34;&gt;
  &lt;svg width=&#34;30&#34; height=&#34;30&#34; viewBox=&#34;0 0 25 26&#34; fill=&#34;none&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
  &lt;path d=&#34;M16.1401 14.4402C16.2141 14.4402 16.2852 14.4101 16.3373 14.3581C16.5355 14.1569 21.1904 9.39886 21.1904 5.0513C21.1904 2.26537 18.924 0 16.1391 0C13.3541 0 11.0878 2.26537 11.0878 5.0513C11.0878 9.39886 15.7427 14.1569 15.9419 14.3581C15.9939 14.4111 16.065 14.4402 16.1401 14.4402ZM13.5814 5.0513C13.5814 3.63882 14.7266 2.49262 16.1401 2.49262C17.5536 2.49262 18.6978 3.63781 18.6978 5.0513C18.6978 6.46478 17.5526 7.60999 16.1401 7.60999C14.7276 7.60999 13.5814 6.46478 13.5814 5.0513Z&#34; fill=&#34;#FF671D&#34;/&gt;
  &lt;path d=&#34;M24.9034 21.9305C24.0595 18.9113 17.9561 17.4147 12.5704 16.0933C9.54023 15.3496 5.76827 14.4246 5.73524 13.6037C5.72823 13.4225 5.97949 12.7398 9.52922 11.5516C9.80551 11.4585 9.96668 11.1842 9.91262 10.8989C9.85856 10.6136 9.60229 10.4164 9.318 10.4304C4.13956 10.6807 0.501743 12.1602 0.0482666 14.1993C-0.172966 15.1944 0.26149 16.749 3.58398 18.5009L4.29773 18.8763C6.54509 20.0545 8.16879 20.9064 8.1808 21.6992C8.19482 22.6502 5.93745 24.0507 3.72713 25.296C3.58398 25.3761 3.5139 25.5433 3.55495 25.7024C3.59699 25.8616 3.74014 25.9717 3.90431 25.9717H23.0354C23.1315 25.9717 23.2226 25.9337 23.2907 25.8656C24.6971 24.4581 25.2397 23.1347 24.9034 21.9305Z&#34; fill=&#34;#FBC55A&#34;/&gt;
&lt;/svg&gt;
&lt;/div&gt;
    &lt;div class=&#34;no-anchor-heading&#34;&gt;
      &lt;h4&gt;Open in Grafana Cloud&lt;/h4&gt;
    &lt;/div&gt;
  &lt;/div&gt;
  &lt;div class=&#34;mt-1&#34;&gt;
    &lt;p class=&#34;mb-1 maxw-650&#34;&gt;Complete this learning path directly in your Grafana Cloud stack, or in the Grafana Play stack, with an interactive learning experience.&lt;/p&gt;
    &lt;div class=&#34;d-flex column-gap-1 justify-content-end&#34;&gt;
      &lt;a
        x3-bind:href=&#34;launchUrl&#34;
        class=&#34;btn btn--primary br-8&#34;
        target=&#34;_blank&#34;
        x3-on:click=&#34;trackPathfinderClick(&#39;categorize-collector-fleet&#39;, &#39;Categorize a collector fleet&#39;)&#34;&gt;
        Open in Grafana Cloud
      &lt;/a&gt;
      &lt;a
        x3-bind:href=&#34;playUrl&#34;
        class=&#34;btn btn--primary br-8&#34;
        target=&#34;_blank&#34;
        x3-on:click=&#34;trackPlayClick(&#39;categorize-collector-fleet&#39;, &#39;Categorize a collector fleet&#39;)&#34;&gt;
        Try in Grafana Play
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;div class=&#34;mt-1&#34;&gt;
  &lt;a
    href=&#34;/docs/learning-paths/categorize-collector-fleet/&#34;
    target=&#34;_blank&#34;
    rel=&#34;noopener noreferrer&#34;
    class=&#34;btn btn--outline arrow w-100p br-8&#34;
    x3-on:click=&#34;$dispatch(&#39;track-view-on-website&#39;, {
      pathId: &#39;categorize-collector-fleet&#39;,
      pathTitle: &#39;Categorize a collector fleet&#39;
    })&#34;&gt;
    View on website
  &lt;/a&gt;
&lt;/div&gt;

&lt;/div&gt;



]]></content><description>&lt;div class="learning-path-card">
&lt;div class="pathway-row__label mb-1">
&lt;svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">&lt;rect x="0.5" y="0.5" width="39" height="39" rx="3.5" fill="white" stroke="#D8D8DF">&lt;/rect>&lt;path d="M8 20H14C16.5 20 18.5 18 18.5 15.5V12" stroke="#FF671D" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">&lt;/path>&lt;path d="M8 20H14C16.5 20 18.5 22 18.5 24.5V28" stroke="#FF671D" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">&lt;/path>&lt;path d="M14 20H32" stroke="#FF671D" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">&lt;/path>&lt;circle cx="18.5" cy="12" r="2" stroke="#FF671D" stroke-width="2" fill="white">&lt;/circle>&lt;circle cx="18.5" cy="28" r="2" stroke="#FF671D" stroke-width="2" fill="white">&lt;/circle>&lt;path d="M29 17L32 20L29 23" stroke="#FF671D" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">&lt;/path>&lt;/svg>
Learning path
&lt;/div>
&lt;h4>Categorize a collector fleet&lt;/h4>
&lt;p>Welcome to the Grafana Fleet Management learning journey that shows you how to organize and categorize your collector fleet using custom attributes for remote configuration. Learn to categorize your infrastructure with meaningful attributes that answer critical questions such as who owns this collector, which service does it support, and where is it running.&lt;/p></description></item><item><title>Fleet meaningfully categorized!</title><link>https://grafana.com/docs/learning-hub/intro-to-fleet-management/02-remote-configuration/29-categorize-debrief/</link><pubDate>Thu, 09 Apr 2026 06:03:04 +0000</pubDate><guid>https://grafana.com/docs/learning-hub/intro-to-fleet-management/02-remote-configuration/29-categorize-debrief/</guid><content><![CDATA[&lt;h2 id=&#34;what-you-accomplished&#34;&gt;What you accomplished&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Navigated to Fleet Management and selected collectors&lt;/li&gt;
&lt;li&gt;Assigned &lt;code&gt;team&lt;/code&gt; attributes to identify collector ownership&lt;/li&gt;
&lt;li&gt;Assigned &lt;code&gt;service.name&lt;/code&gt; attributes to identify monitored services&lt;/li&gt;
&lt;li&gt;Assigned &lt;code&gt;env&lt;/code&gt; attributes to identify deployment environments&lt;/li&gt;
&lt;li&gt;Used bulk edit to apply attributes across multiple collectors&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;skills-unlocked&#34;&gt;Skills unlocked&lt;/h2&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Skill&lt;/th&gt;
              &lt;th&gt;What you can do now&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Fleet categorization&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Organize collectors with meaningful attributes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Attribute assignment&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Set remote attributes in the Fleet Management UI&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Bulk operations&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Apply attributes to multiple collectors at once&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Categorize once, target precisely.&lt;/strong&gt; Attributes are the foundation for remote configuration at scale.&lt;/p&gt;&lt;/blockquote&gt;
]]></content><description>&lt;h2 id="what-you-accomplished">What you accomplished&lt;/h2>
&lt;ul>
&lt;li>Navigated to Fleet Management and selected collectors&lt;/li>
&lt;li>Assigned &lt;code>team&lt;/code> attributes to identify collector ownership&lt;/li>
&lt;li>Assigned &lt;code>service.name&lt;/code> attributes to identify monitored services&lt;/li>
&lt;li>Assigned &lt;code>env&lt;/code> attributes to identify deployment environments&lt;/li>
&lt;li>Used bulk edit to apply attributes across multiple collectors&lt;/li>
&lt;/ul>
&lt;h2 id="skills-unlocked">Skills unlocked&lt;/h2>
&lt;section class="expand-table-wrapper">&lt;div class="responsive-table-wrapper">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Skill&lt;/th>
&lt;th>What you can do now&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>Fleet categorization&lt;/strong>&lt;/td>
&lt;td>Organize collectors with meaningful attributes&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Attribute assignment&lt;/strong>&lt;/td>
&lt;td>Set remote attributes in the Fleet Management UI&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Bulk operations&lt;/strong>&lt;/td>
&lt;td>Apply attributes to multiple collectors at once&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;/section>&lt;blockquote>
&lt;p>&lt;strong>Categorize once, target precisely.&lt;/strong> Attributes are the foundation for remote configuration at scale.&lt;/p></description></item></channel></rss>