<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>otelcol on Grafana Labs</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/</link><description>Recent content in otelcol on Grafana Labs</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="/docs/alloy/v1.15/reference/components/otelcol/index.xml" rel="self" type="application/rss+xml"/><item><title>otelcol.auth.basic</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.auth.basic/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.auth.basic/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolauthbasic&#34;&gt;&lt;code&gt;otelcol.auth.basic&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;otelcol.auth.basic&lt;/code&gt; exposes a &lt;code&gt;handler&lt;/code&gt; that other &lt;code&gt;otelcol&lt;/code&gt; components can use to authenticate requests using basic authentication.&lt;/p&gt;
&lt;p&gt;This component supports both server and client authentication.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.auth.basic&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/extension/basicauthextension&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;basicauth&lt;/code&gt;&lt;/a&gt; extension.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.auth.basic&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.auth.basic &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  username = &amp;#34;&amp;lt;USERNAME&amp;gt;&amp;#34;
  password = &amp;#34;&amp;lt;PASSWORD&amp;gt;&amp;#34;
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;


&lt;div class=&#34;admonition admonition-caution&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Caution&lt;/p&gt;&lt;p&gt;Don&amp;rsquo;t use the top-level &lt;code&gt;username&lt;/code&gt; and &lt;code&gt;password&lt;/code&gt; arguments for new configurations as they are deprecated. Use the &lt;code&gt;client_auth&lt;/code&gt; block for client authentication and the &lt;code&gt;htpasswd&lt;/code&gt; block for server authentication instead.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.auth.basic&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;password&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;secret&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;(Deprecated) Password to use for basic authentication requests.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;username&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;(Deprecated) Username to use for basic authentication requests.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following block with &lt;code&gt;otelcol.auth.basic&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 3;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#client_auth\&amp;#34;\u003e\u003ccode\u003eclient_auth\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures client authentication credentials for exporters.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#htpasswd\&amp;#34;\u003e\u003ccode\u003ehtpasswd\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures server authentication using htpasswd format for receivers.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#client_auth&#34;&gt;&lt;code&gt;client_auth&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures client authentication credentials for exporters.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#htpasswd&#34;&gt;&lt;code&gt;htpasswd&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures server authentication using htpasswd format for receivers.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;client_auth&#34;&gt;&lt;code&gt;client_auth&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;client_auth&lt;/code&gt; block configures credentials that client extensions (such as exporters) use to authenticate to servers.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;password&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;secret&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Password to use for basic authentication requests.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;password_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to a file containing the password. If set, takes precedence over &lt;code&gt;password&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;username&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Username to use for basic authentication requests.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;username_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to a file containing the username. If set, takes precedence over &lt;code&gt;username&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;

&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;When you specify both the &lt;code&gt;client_auth&lt;/code&gt; block and the deprecated top-level &lt;code&gt;username&lt;/code&gt; and &lt;code&gt;password&lt;/code&gt; attributes, the &lt;code&gt;client_auth&lt;/code&gt; block takes precedence and Alloy ignores the top-level attributes for client authentication.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h3 id=&#34;htpasswd&#34;&gt;&lt;code&gt;htpasswd&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;htpasswd&lt;/code&gt; block configures how server extensions (such as receivers) authenticate incoming requests using the &lt;code&gt;htpasswd&lt;/code&gt; format.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the &lt;code&gt;htpasswd&lt;/code&gt; file to use for basic authentication requests.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;inline&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The &lt;code&gt;htpasswd&lt;/code&gt; file content in inline format.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You can specify either &lt;code&gt;file&lt;/code&gt;, &lt;code&gt;inline&lt;/code&gt;, or both.
When you use &lt;code&gt;inline&lt;/code&gt;, the format should be &lt;code&gt;username:password&lt;/code&gt; with each user on a new line.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;When you specify both the &lt;code&gt;htpasswd&lt;/code&gt; block and the deprecated top-level &lt;code&gt;username&lt;/code&gt; and &lt;code&gt;password&lt;/code&gt; attributes, Alloy automatically appends the deprecated credentials to the &lt;code&gt;inline&lt;/code&gt; content.
This allows authentication using credentials from both the &lt;code&gt;htpasswd&lt;/code&gt; configuration and the deprecated attributes.
If the same username appears in both the &lt;code&gt;file&lt;/code&gt; and &lt;code&gt;inline&lt;/code&gt; content, including appended deprecated credentials, the entry in the &lt;code&gt;inline&lt;/code&gt; content takes precedence.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;The following fields are exported and can be referenced by other components:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&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;code&gt;handler&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;capsule(otelcol.Handler)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A value that other components can use to authenticate requests.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.auth.basic&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.auth.basic&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;examples&#34;&gt;Examples&lt;/h2&gt;
&lt;p&gt;This section includes examples to help you configure basic authentication for exporters and receivers.&lt;/p&gt;
&lt;h3 id=&#34;forward-signals-to-exporters&#34;&gt;Forward signals to exporters&lt;/h3&gt;
&lt;p&gt;This example configures &lt;a href=&#34;../otelcol.exporter.otlp/&#34;&gt;&lt;code&gt;otelcol.exporter.otlp&lt;/code&gt;&lt;/a&gt; to use basic authentication:&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;otelcol.exporter.otlp &amp;#34;example&amp;#34; {
  client {
    endpoint = &amp;#34;my-otlp-grpc-server:4317&amp;#34;
    auth     = otelcol.auth.basic.creds.handler
  }
}

otelcol.auth.basic &amp;#34;creds&amp;#34; {
  username = &amp;#34;demo&amp;#34;
  password = sys.env(&amp;#34;API_KEY&amp;#34;)
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;authenticating-requests-for-receivers&#34;&gt;Authenticating requests for receivers&lt;/h3&gt;
&lt;p&gt;These examples show how to perform basic authentication using the &lt;code&gt;client_auth&lt;/code&gt; block for exporters or the &lt;code&gt;htpasswd&lt;/code&gt; block for receivers.&lt;/p&gt;
&lt;h4 id=&#34;use-client-authentication&#34;&gt;Use client authentication&lt;/h4&gt;
&lt;p&gt;This example configures &lt;a href=&#34;../otelcol.exporter.otlphttp/&#34;&gt;&lt;code&gt;otelcol.exporter.otlphttp&lt;/code&gt;&lt;/a&gt; to use basic authentication with a single username and password combination:&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;otelcol.receiver.otlp &amp;#34;example&amp;#34; {
  grpc {
    endpoint = &amp;#34;127.0.0.1:4317&amp;#34;
  }

  output {
    metrics = [otelcol.exporter.otlphttp.default.input]
    logs    = [otelcol.exporter.otlphttp.default.input]
    traces  = [otelcol.exporter.otlphttp.default.input]
  }
}

otelcol.exporter.otlphttp &amp;#34;default&amp;#34; {
  client {
    endpoint = `https://otlp-gateway-prod-gb-south-0.grafana.net/otlp`
    auth     = otelcol.auth.basic.creds.handler
  }
}

otelcol.auth.basic &amp;#34;creds&amp;#34; {
  client_auth {
    username = sys.env(&amp;#34;OTLP_USERNAME&amp;#34;)
    password = sys.env(&amp;#34;OTLP_API_KEY&amp;#34;)
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;To migrate from the deprecated &lt;code&gt;username&lt;/code&gt; and &lt;code&gt;password&lt;/code&gt; attributes, move them into the &lt;code&gt;client_auth&lt;/code&gt; block for client authentication.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h4 id=&#34;use-htpasswd-file&#34;&gt;Use htpasswd file&lt;/h4&gt;
&lt;p&gt;This example configures &lt;a href=&#34;../otelcol.receiver.otlp/&#34;&gt;&lt;code&gt;otelcol.receiver.otlp&lt;/code&gt;&lt;/a&gt; to use basic authentication using an &lt;code&gt;htpasswd&lt;/code&gt; file containing the users to use for basic authentication:&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;otelcol.receiver.otlp &amp;#34;example&amp;#34; {
  grpc {
    endpoint = &amp;#34;127.0.0.1:4317&amp;#34;

    auth = otelcol.auth.basic.creds.handler
  }

  output {
    metrics = [otelcol.exporter.debug.default.input]
    logs    = [otelcol.exporter.debug.default.input]
    traces  = [otelcol.exporter.debug.default.input]
  }
}

otelcol.exporter.debug &amp;#34;default&amp;#34; {}

otelcol.auth.basic &amp;#34;creds&amp;#34; {
  htpasswd {
    file = &amp;#34;/etc/alloy/.htpasswd&amp;#34;
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h4 id=&#34;use-htpasswd-inline-content&#34;&gt;Use htpasswd inline content&lt;/h4&gt;
&lt;p&gt;This example shows how to specify &lt;code&gt;htpasswd&lt;/code&gt; content directly in the configuration:&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;otelcol.receiver.otlp &amp;#34;example&amp;#34; {
  grpc {
    endpoint = &amp;#34;127.0.0.1:4317&amp;#34;

    auth = otelcol.auth.basic.creds.handler
  }

  output {
    metrics = [otelcol.exporter.debug.default.input]
    logs    = [otelcol.exporter.debug.default.input]
    traces  = [otelcol.exporter.debug.default.input]
  }
}

otelcol.exporter.debug &amp;#34;default&amp;#34; {}

otelcol.auth.basic &amp;#34;creds&amp;#34; {
  htpasswd {
    inline = &amp;#34;user1:password1\nuser2:password2&amp;#34;
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;To make the migration from the deprecated &lt;code&gt;username&lt;/code&gt; and &lt;code&gt;password&lt;/code&gt; attributes easier, you can specify both the deprecated attributes and the &lt;code&gt;htpasswd&lt;/code&gt; block in the same configuration.
Alloy appends the deprecated attributes to the &lt;code&gt;htpasswd&lt;/code&gt; content.&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;otelcol.receiver.otlp &amp;#34;example&amp;#34; {
  grpc {
    endpoint = &amp;#34;127.0.0.1:4317&amp;#34;

    auth = otelcol.auth.basic.creds.handler
  }

  output {
    metrics = [otelcol.exporter.debug.default.input]
    logs    = [otelcol.exporter.debug.default.input]
    traces  = [otelcol.exporter.debug.default.input]
  }
}

otelcol.exporter.debug &amp;#34;default&amp;#34; {}

otelcol.auth.basic &amp;#34;creds&amp;#34; {
  username = &amp;#34;demo&amp;#34;
  password = sys.env(&amp;#34;API_KEY&amp;#34;)

  htpasswd {
    file = &amp;#34;/etc/alloy/.htpasswd&amp;#34;
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;

]]></content><description>&lt;h1 id="otelcolauthbasic">&lt;code>otelcol.auth.basic&lt;/code>&lt;/h1>
&lt;p>&lt;code>otelcol.auth.basic&lt;/code> exposes a &lt;code>handler&lt;/code> that other &lt;code>otelcol&lt;/code> components can use to authenticate requests using basic authentication.&lt;/p>
&lt;p>This component supports both server and client authentication.&lt;/p></description></item><item><title>otelcol.auth.bearer</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.auth.bearer/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.auth.bearer/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolauthbearer&#34;&gt;&lt;code&gt;otelcol.auth.bearer&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;otelcol.auth.bearer&lt;/code&gt; exposes a &lt;code&gt;handler&lt;/code&gt; that other &lt;code&gt;otelcol&lt;/code&gt; components can use to authenticate requests using bearer token authentication.&lt;/p&gt;
&lt;p&gt;This component supports both server and client authentication.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.auth.bearer&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/extension/bearertokenauthextension&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;bearertokenauth&lt;/code&gt;&lt;/a&gt; extension.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.auth.bearer&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.auth.bearer &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  token = &amp;#34;&amp;lt;TOKEN&amp;gt;&amp;#34;
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.auth.bearer&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;token&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;secret&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Bearer token to use for authenticating requests.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;header&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Specifies the auth header name.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;Authorization&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;scheme&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Authentication scheme name.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;Bearer&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;When sending the token, the value of &lt;code&gt;scheme&lt;/code&gt; is prepended to the &lt;code&gt;token&lt;/code&gt; value.
The string is then sent out as either a header for HTTP or as metadata for gRPC.&lt;/p&gt;
&lt;p&gt;If you use a file to store the token, you can use &lt;a href=&#34;../../local/local.file/&#34;&gt;&lt;code&gt;local.file&lt;/code&gt;&lt;/a&gt; to retrieve the &lt;code&gt;token&lt;/code&gt; value from the file.&lt;/p&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following block with &lt;code&gt;otelcol.auth.bearer&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 1;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;The following fields are exported and can be referenced by other components:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&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;code&gt;handler&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;capsule(otelcol.Handler)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A value that other components can use to authenticate requests.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.auth.bearer&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.auth.bearer&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;examples&#34;&gt;Examples&lt;/h2&gt;
&lt;h3 id=&#34;default-scheme-via-grpc-transport&#34;&gt;Default scheme via gRPC transport&lt;/h3&gt;
&lt;p&gt;The following example configures &lt;a href=&#34;../otelcol.exporter.otlp/&#34;&gt;&lt;code&gt;otelcol.exporter.otlp&lt;/code&gt;&lt;/a&gt; to use a bearer token authentication.&lt;/p&gt;
&lt;p&gt;If you assume that the value of the &lt;code&gt;API_KEY&lt;/code&gt; environment variable is &lt;code&gt;SECRET_API_KEY&lt;/code&gt;, then the &lt;code&gt;Authorization&lt;/code&gt; RPC metadata is set to &lt;code&gt;Bearer SECRET_API_KEY&lt;/code&gt;.&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;otelcol.exporter.otlp &amp;#34;example&amp;#34; {
  client {
    endpoint = &amp;#34;my-otlp-grpc-server:4317&amp;#34;
    auth     = otelcol.auth.bearer.creds.handler
  }
}

otelcol.auth.bearer &amp;#34;creds&amp;#34; {
  token = sys.env(&amp;#34;&amp;lt;API_KEY&amp;gt;&amp;#34;)
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;custom-scheme-via-http-transport&#34;&gt;Custom scheme via HTTP transport&lt;/h3&gt;
&lt;p&gt;The following example configures &lt;a href=&#34;../otelcol.exporter.otlphttp/&#34;&gt;&lt;code&gt;otelcol.exporter.otlphttp&lt;/code&gt;&lt;/a&gt; to use a bearer token authentication.&lt;/p&gt;
&lt;p&gt;If you assume that the value of the &lt;code&gt;API_KEY&lt;/code&gt; environment variable is &lt;code&gt;SECRET_API_KEY&lt;/code&gt;, then the &lt;code&gt;Authorization&lt;/code&gt; HTTP header is set to &lt;code&gt;MyScheme SECRET_API_KEY&lt;/code&gt;.&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;otelcol.exporter.otlphttp &amp;#34;example&amp;#34; {
  client {
    endpoint = &amp;#34;my-otlp-grpc-server:4317&amp;#34;
    auth     = otelcol.auth.bearer.creds.handler
  }
}

otelcol.auth.bearer &amp;#34;creds&amp;#34; {
  token = sys.env(&amp;#34;&amp;lt;API_KEY&amp;gt;&amp;#34;)
  scheme = &amp;#34;MyScheme&amp;#34;
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
]]></content><description>&lt;h1 id="otelcolauthbearer">&lt;code>otelcol.auth.bearer&lt;/code>&lt;/h1>
&lt;p>&lt;code>otelcol.auth.bearer&lt;/code> exposes a &lt;code>handler&lt;/code> that other &lt;code>otelcol&lt;/code> components can use to authenticate requests using bearer token authentication.&lt;/p>
&lt;p>This component supports both server and client authentication.&lt;/p></description></item><item><title>otelcol.auth.headers</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.auth.headers/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.auth.headers/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolauthheaders&#34;&gt;&lt;code&gt;otelcol.auth.headers&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;otelcol.auth.headers&lt;/code&gt; exposes a &lt;code&gt;handler&lt;/code&gt; that other &lt;code&gt;otelcol&lt;/code&gt; components can use to authenticate requests using custom headers.&lt;/p&gt;
&lt;p&gt;This component only supports client authentication.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.auth.headers&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/extension/headerssetterextension&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;headerssetter&lt;/code&gt;&lt;/a&gt; extension.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.auth.headers&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.auth.headers &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  header {
    key   = &amp;#34;&amp;lt;HEADER_NAME&amp;gt;&amp;#34;
    value = &amp;#34;&amp;lt;HEADER_VALUE&amp;gt;&amp;#34;
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;otelcol.auth.headers&lt;/code&gt; component doesn&amp;rsquo;t support any arguments. You can configure this component with blocks.&lt;/p&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.auth.headers&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 2;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#header\&amp;#34;\u003e\u003ccode\u003eheader\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eCustom header to attach to requests.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#header&#34;&gt;&lt;code&gt;header&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Custom header to attach to requests.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;header&#34;&gt;&lt;code&gt;header&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;

&lt;p&gt;The &lt;code&gt;header&lt;/code&gt; block defines a custom header to attach to requests.
It&amp;rsquo;s valid to provide multiple &lt;code&gt;header&lt;/code&gt; blocks to set more than one header.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Name of the header to set.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;action&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;An action to perform on the header.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;upsert&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;from_attribute&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Authentication attribute name used to retrieve header value.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;from_context&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Metadata name used to retrieve header value.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;value&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt; or &lt;code&gt;secret&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Value of the header.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The supported values for &lt;code&gt;action&lt;/code&gt; are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;insert&lt;/code&gt;: Inserts the new header if it doesn&amp;rsquo;t exist.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;update&lt;/code&gt;: Updates the header value if it exists.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;upsert&lt;/code&gt;: Inserts a header if it doesn&amp;rsquo;t exist and updates the header if it exists.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;delete&lt;/code&gt;: Deletes the header.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Exactly one of &lt;code&gt;value&lt;/code&gt;, &lt;code&gt;from_context&lt;/code&gt;, or &lt;code&gt;from_attribute&lt;/code&gt; must be provided for each &lt;code&gt;header&lt;/code&gt; block.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;value&lt;/code&gt; attribute sets the value of the header directly.
Alternatively, you can use &lt;code&gt;from_context&lt;/code&gt; to dynamically retrieve the header value from request metadata, or you can use &lt;code&gt;from_attribute&lt;/code&gt; to dynamically retrieve the header value from request authentication metadata.&lt;/p&gt;
&lt;p&gt;For &lt;code&gt;from_context&lt;/code&gt; to work, other components in the pipeline also need to be configured appropriately:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If an &lt;code&gt;otelcol.processor.batch&lt;/code&gt; is present in the pipeline, it must be configured to preserve client metadata.
Do this by adding the value that &lt;code&gt;from_context&lt;/code&gt; needs to the &lt;code&gt;metadata_keys&lt;/code&gt; of the batch processor.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;otelcol&lt;/code&gt; receivers must be configured with &lt;code&gt;include_metadata&lt;/code&gt; set to &lt;code&gt;true&lt;/code&gt; so that metadata keys are available to the pipeline.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;from_attribute&lt;/code&gt; metadata can&amp;rsquo;t, at this time, be preserved through an &lt;code&gt;otelcol.processor.batch&lt;/code&gt; component, and is only provided from the &lt;code&gt;otelcol.auth.basic&lt;/code&gt; extension.&lt;/p&gt;
&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;The following fields are exported and can be referenced by other components:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&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;code&gt;handler&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;capsule(otelcol.Handler)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A value that other components can use to authenticate requests.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.auth.headers&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.auth.headers&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;p&gt;This example configures &lt;a href=&#34;../otelcol.exporter.otlphttp/&#34;&gt;&lt;code&gt;otelcol.exporter.otlphttp&lt;/code&gt;&lt;/a&gt; to use custom headers:&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;otelcol.receiver.otlp &amp;#34;default&amp;#34; {
  http {
    include_metadata = true
  }
  grpc {
    include_metadata = true
  }

  output {
    metrics = [otelcol.processor.batch.default.input]
    logs    = [otelcol.processor.batch.default.input]
    traces  = [otelcol.processor.batch.default.input]
  }
}

otelcol.processor.batch &amp;#34;default&amp;#34; {
  // Preserve the tenant_id metadata.
  metadata_keys = [&amp;#34;tenant_id&amp;#34;]

  output {
    metrics = [otelcol.exporter.otlphttp.production.input]
    logs    = [otelcol.exporter.otlphttp.production.input]
    traces  = [otelcol.exporter.otlphttp.production.input]
  }
}

otelcol.auth.headers &amp;#34;creds&amp;#34; {
  header {
    key          = &amp;#34;X-Scope-OrgID&amp;#34;
    from_context = &amp;#34;tenant_id&amp;#34;
  }

  header {
    key   = &amp;#34;User-ID&amp;#34;
    value = &amp;#34;user_id&amp;#34;
  }
}

otelcol.exporter.otlphttp &amp;#34;production&amp;#34; {
  client {
    endpoint = sys.env(&amp;#34;&amp;lt;OTLP_SERVER_ENDPOINT&amp;gt;&amp;#34;)
    auth     = otelcol.auth.headers.creds.handler
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
]]></content><description>&lt;h1 id="otelcolauthheaders">&lt;code>otelcol.auth.headers&lt;/code>&lt;/h1>
&lt;p>&lt;code>otelcol.auth.headers&lt;/code> exposes a &lt;code>handler&lt;/code> that other &lt;code>otelcol&lt;/code> components can use to authenticate requests using custom headers.&lt;/p>
&lt;p>This component only supports client authentication.&lt;/p>
&lt;div class="admonition admonition-note">&lt;blockquote>&lt;p class="title text-uppercase">Note&lt;/p></description></item><item><title>otelcol.auth.oauth2</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.auth.oauth2/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.auth.oauth2/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolauthoauth2&#34;&gt;&lt;code&gt;otelcol.auth.oauth2&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;otelcol.auth.oauth2&lt;/code&gt; exposes a &lt;code&gt;handler&lt;/code&gt; that other &lt;code&gt;otelcol&lt;/code&gt; components can use to authenticate requests using OAuth 2.0.&lt;/p&gt;
&lt;p&gt;This component only supports client authentication.&lt;/p&gt;
&lt;p&gt;The authorization tokens can be used by HTTP and gRPC based OpenTelemetry exporters.
This component can fetch and refresh expired tokens automatically.
Refer to the &lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc6749#section-4.4&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;OAuth 2.0 Authorization Framework&lt;/a&gt; for more information about the Auth 2.0 Client Credentials flow.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.auth.oauth2&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/extension/oauth2clientauthextension&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;oauth2client&lt;/code&gt;&lt;/a&gt; extension.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.auth.oauth2&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.auth.oauth2 &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
    client_id     = &amp;#34;&amp;lt;CLIENT_ID&amp;gt;&amp;#34;
    client_secret = &amp;#34;&amp;lt;CLIENT_SECRET&amp;gt;&amp;#34;
    token_url     = &amp;#34;&amp;lt;TOKEN_URL&amp;gt;&amp;#34;
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.auth.oauth2&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;token_url&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The server endpoint URL from which to get tokens.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;audience&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;JWT audience claim for JWT bearer grant. Defaults to &lt;code&gt;token_url&lt;/code&gt; when empty.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;claims&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;map(any)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Additional JWT claims for JWT bearer grant.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;{}&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;client_certificate_key&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;secret&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;JWT bearer private key.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;client_certificate_key_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to a file containing the JWT bearer private key.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;client_certificate_key_id&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Key ID included in JWT bearer grant requests.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;client_id&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The client identifier issued to the client.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;client_id_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to a file containing the client identifier.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;client_secret&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;secret&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The secret string associated with the client identifier.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;client_secret_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to a file containing the client secret.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;endpoint_params&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;map(list(string))&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Additional parameters that are sent to the token endpoint.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;{}&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;expiry_buffer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Time before token expiry when refresh should happen.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;grant_type&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;OAuth2 grant type. Valid values: &lt;code&gt;&amp;quot;client_credentials&amp;quot;&lt;/code&gt; or &lt;code&gt;&amp;quot;urn:ietf:params:oauth:grant-type:jwt-bearer&amp;quot;&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;client_credentials&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;iss&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;JWT issuer claim for JWT bearer grant. Defaults to &lt;code&gt;client_id&lt;/code&gt; when empty.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;scopes&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Requested permissions associated for the client.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;signature_algorithm&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;JWT signing algorithm for JWT bearer grant. Valid values: &lt;code&gt;RS256&lt;/code&gt;, &lt;code&gt;RS384&lt;/code&gt;, &lt;code&gt;RS512&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;RS256&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The timeout on the client connecting to &lt;code&gt;token_url&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;code&gt;timeout&lt;/code&gt; argument is used both for requesting initial tokens and for refreshing tokens. &lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt; implies no timeout.&lt;/p&gt;
&lt;p&gt;At least one of the &lt;code&gt;client_id&lt;/code&gt; and &lt;code&gt;client_id_file&lt;/code&gt; pair of arguments must be set.
If both are set, &lt;code&gt;client_id_file&lt;/code&gt; takes precedence.&lt;/p&gt;
&lt;p&gt;If &lt;code&gt;grant_type&lt;/code&gt; is &lt;code&gt;client_credentials&lt;/code&gt; (default), at least one of &lt;code&gt;client_secret&lt;/code&gt; or &lt;code&gt;client_secret_file&lt;/code&gt; must be set.
If both are set, &lt;code&gt;client_secret_file&lt;/code&gt; takes precedence.&lt;/p&gt;
&lt;p&gt;If &lt;code&gt;grant_type&lt;/code&gt; is &lt;code&gt;urn:ietf:params:oauth:grant-type:jwt-bearer&lt;/code&gt;, at least one of &lt;code&gt;client_certificate_key&lt;/code&gt; or &lt;code&gt;client_certificate_key_file&lt;/code&gt; must be set.
If both are set, &lt;code&gt;client_certificate_key_file&lt;/code&gt; takes precedence.&lt;/p&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.auth.oauth2&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 3;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#tls\&amp;#34;\u003e\u003ccode\u003etls\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eTLS settings for the token client.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003etls\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#tpm\&amp;#34;\u003e\u003ccode\u003etpm\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eTPM settings for the TLS \u003ccode\u003ekey_file\u003c/code\u003e.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;TLS settings for the token client.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;tls&lt;/code&gt; &amp;gt; &lt;a href=&#34;#tpm&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;TPM settings for the TLS &lt;code&gt;key_file&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h3 id=&#34;tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;tls&lt;/code&gt; block configures TLS settings used for connecting to the token client.
If the &lt;code&gt;tls&lt;/code&gt; block isn&amp;rsquo;t provided, TLS won&amp;rsquo;t be used for communication.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-tls-client-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ca_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the CA file.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ca_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;CA PEM-encoded text to validate the server with.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cert_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS certificate.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cert_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Certificate PEM-encoded text for client authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cipher_suites&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of TLS cipher suites that the TLS transport can use.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;curve_preferences&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Set of elliptic curves to use in a handshake.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_system_ca_certs_pool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to load the system certificate authorities pool alongside the certificate authority.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;insecure_skip_verify&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Ignores insecure server TLS certificates.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;insecure&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Disables TLS when connecting to the configured server.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS certificate key.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;secret&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Key PEM-encoded text for client authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum acceptable TLS version for connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;TLS 1.3&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;min_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Minimum acceptable TLS version for connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;TLS 1.2&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;reload_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The duration after which the certificate is reloaded.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;server_name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Verifies the hostname of server certificates when set.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If the server doesn&amp;rsquo;t support TLS, you must set the &lt;code&gt;insecure&lt;/code&gt; argument to &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;To disable &lt;code&gt;tls&lt;/code&gt; for connections to the server, set the &lt;code&gt;insecure&lt;/code&gt; argument to &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;If you set &lt;code&gt;reload_interval&lt;/code&gt; to &lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;, the certificate never reloaded.&lt;/p&gt;
&lt;p&gt;The following pairs of arguments are mutually exclusive and can&amp;rsquo;t both be set simultaneously:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ca_pem&lt;/code&gt; and &lt;code&gt;ca_file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cert_pem&lt;/code&gt; and &lt;code&gt;cert_file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;key_pem&lt;/code&gt; and &lt;code&gt;key_file&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If &lt;code&gt;cipher_suites&lt;/code&gt; is left blank, a safe default list is used.
Refer to the &lt;a href=&#34;https://go.dev/src/crypto/tls/cipher_suites.go&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Go TLS documentation&lt;/a&gt; for a list of supported cipher suites.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;curve_preferences&lt;/code&gt; argument determines the set of &lt;a href=&#34;https://go.dev/src/crypto/tls/common.go#L138&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;elliptic curves&lt;/a&gt; to prefer during a handshake in preference order.
If not provided, a default list is used.
The set of elliptic curves available are &lt;code&gt;X25519&lt;/code&gt;, &lt;code&gt;P521&lt;/code&gt;, &lt;code&gt;P256&lt;/code&gt;, and &lt;code&gt;P384&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;tpm&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;tpm&lt;/code&gt; block configures retrieving the TLS &lt;code&gt;key_file&lt;/code&gt; from a trusted device.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-tls-tpm-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The authorization value used to authenticate the TPM device.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Load the &lt;code&gt;tls.key_file&lt;/code&gt; from TPM.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;owner_auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The owner authorization value used to authenticate the TPM device.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;path&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TPM device or Unix domain socket.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;a href=&#34;https://trustedcomputinggroup.org/resource/trusted-platform-module-tpm-summary/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;trusted platform module&lt;/a&gt; (TPM) configuration can be used for loading TLS key from TPM. Currently only TSS2 format is supported.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;path&lt;/code&gt; attribute is not supported on Windows.&lt;/p&gt;
&lt;p&gt;In the following example, the private key &lt;code&gt;my-tss2-key.key&lt;/code&gt; in TSS2 format is loaded from the TPM device &lt;code&gt;/dev/tmprm0&lt;/code&gt;:&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;otelcol.example.component &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
    ...
    tls {
        ...
        key_file = &amp;#34;my-tss2-key.key&amp;#34;
        tpm {
            enabled = true
            path = &amp;#34;/dev/tpmrm0&amp;#34;
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

        
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;The following fields are exported and can be referenced by other components:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&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;code&gt;handler&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;capsule(otelcol.Handler)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A value that other components can use to authenticate requests.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.auth.oauth2&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.auth.oauth2&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;p&gt;This example configures &lt;a href=&#34;../otelcol.exporter.otlp/&#34;&gt;&lt;code&gt;otelcol.exporter.otlp&lt;/code&gt;&lt;/a&gt; to use OAuth 2.0 for authentication:&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;otelcol.exporter.otlp &amp;#34;example&amp;#34; {
  client {
    endpoint = &amp;#34;my-otlp-grpc-server:4317&amp;#34;
    auth     = otelcol.auth.oauth2.creds.handler
  }
}

otelcol.auth.oauth2 &amp;#34;creds&amp;#34; {
    client_id     = &amp;#34;someclientid&amp;#34;
    client_secret = &amp;#34;someclientsecret&amp;#34;
    token_url     = &amp;#34;https://example.com/oauth2/default/v1/token&amp;#34;
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Here is another example with some optional attributes specified:&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;otelcol.exporter.otlp &amp;#34;example&amp;#34; {
  client {
    endpoint = &amp;#34;my-otlp-grpc-server:4317&amp;#34;
    auth     = otelcol.auth.oauth2.creds.handler
  }
}

otelcol.auth.oauth2 &amp;#34;creds&amp;#34; {
    client_id       = &amp;#34;someclientid2&amp;#34;
    client_secret   = &amp;#34;someclientsecret2&amp;#34;
    token_url       = &amp;#34;https://example.com/oauth2/default/v1/token&amp;#34;
    endpoint_params = {&amp;#34;audience&amp;#34; = [&amp;#34;someaudience&amp;#34;]}
    scopes          = [&amp;#34;api.metrics&amp;#34;]
    timeout         = &amp;#34;3600s&amp;#34;
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
]]></content><description>&lt;h1 id="otelcolauthoauth2">&lt;code>otelcol.auth.oauth2&lt;/code>&lt;/h1>
&lt;p>&lt;code>otelcol.auth.oauth2&lt;/code> exposes a &lt;code>handler&lt;/code> that other &lt;code>otelcol&lt;/code> components can use to authenticate requests using OAuth 2.0.&lt;/p>
&lt;p>This component only supports client authentication.&lt;/p>
&lt;p>The authorization tokens can be used by HTTP and gRPC based OpenTelemetry exporters.
This component can fetch and refresh expired tokens automatically.
Refer to the &lt;a href="https://datatracker.ietf.org/doc/html/rfc6749#section-4.4" target="_blank" rel="noopener noreferrer">OAuth 2.0 Authorization Framework&lt;/a> for more information about the Auth 2.0 Client Credentials flow.&lt;/p></description></item><item><title>otelcol.auth.sigv4</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.auth.sigv4/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.auth.sigv4/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolauthsigv4&#34;&gt;&lt;code&gt;otelcol.auth.sigv4&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;otelcol.auth.sigv4&lt;/code&gt; exposes a &lt;code&gt;handler&lt;/code&gt; that other &lt;code&gt;otelcol&lt;/code&gt; components can use to authenticate requests to AWS services using the AWS Signature Version 4 (SigV4) protocol.
For more information about SigV4 refer to the AWS documentation about &lt;a href=&#34;https://docs.aws.amazon.com/general/latest/gr/signing-aws-api-requests.html&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Signing AWS API requests&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This component only supports client authentication.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.auth.sigv4&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/extension/sigv4authextension&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;sigv4auth&lt;/code&gt;&lt;/a&gt; extension.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.auth.sigv4&lt;/code&gt; components by giving them different labels.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Alloy must have valid AWS credentials as used by the &lt;a href=&#34;https://aws.github.io/aws-sdk-go-v2/docs/configuring-sdk/#specifying-credentials&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;AWS SDK for Go&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.auth.sigv4 &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.auth.sigv4&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;region&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The AWS region to sign with.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&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;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The AWS service to sign with.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If &lt;code&gt;region&lt;/code&gt; and &lt;code&gt;service&lt;/code&gt; are left empty, their values are inferred from the URL of the exporter using the following rules:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If the exporter URL starts with &lt;code&gt;aps-workspaces&lt;/code&gt; and &lt;code&gt;service&lt;/code&gt; is empty, &lt;code&gt;service&lt;/code&gt; will be set to &lt;code&gt;aps&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;If the exporter URL starts with &lt;code&gt;search-&lt;/code&gt; and &lt;code&gt;service&lt;/code&gt; is empty, &lt;code&gt;service&lt;/code&gt; will be set to &lt;code&gt;es&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;If the exporter URL starts with either &lt;code&gt;aps-workspaces&lt;/code&gt; or &lt;code&gt;search-&lt;/code&gt; and &lt;code&gt;region&lt;/code&gt; is empty, &lt;code&gt;region&lt;/code&gt; will be set to the value between the first and second &lt;code&gt;.&lt;/code&gt; character in the exporter URL.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If none of the above rules apply, then &lt;code&gt;region&lt;/code&gt; and &lt;code&gt;service&lt;/code&gt; must be specified.&lt;/p&gt;
&lt;p&gt;A list of valid AWS regions can be found on Amazon&amp;rsquo;s documentation for &lt;a href=&#34;https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Regions, Availability Zones, and Local Zones&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.auth.sigv4&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 2;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#assume_role\&amp;#34;\u003e\u003ccode\u003eassume_role\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfiguration for assuming a role.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#assume_role&#34;&gt;&lt;code&gt;assume_role&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configuration for assuming a role.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;assume_role&#34;&gt;&lt;code&gt;assume_role&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;assume_role&lt;/code&gt; block specifies the configuration needed to assume a role.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;arn&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The Amazon Resource Name (ARN) of a role to assume.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;session_name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The name of a role session.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sts_region&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The AWS region where STS is used to assume the configured role.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If the &lt;code&gt;assume_role&lt;/code&gt; block is specified in the configuration and &lt;code&gt;sts_region&lt;/code&gt; isn&amp;rsquo;t set, then &lt;code&gt;sts_region&lt;/code&gt; will default to the value for &lt;code&gt;region&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;For cross region authentication, &lt;code&gt;region&lt;/code&gt; and &lt;code&gt;sts_region&lt;/code&gt; can be set to different values.&lt;/p&gt;
&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;The following fields are exported and can be referenced by other components:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&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;code&gt;handler&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;capsule(otelcol.Handler)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A value that other components can use to authenticate requests.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.auth.sigv4&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.auth.sigv4&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;examples&#34;&gt;Examples&lt;/h2&gt;
&lt;h3 id=&#34;infer-the-region-and-service-from-an-aps-workspaces-exporter-endpoint&#34;&gt;Infer the &amp;ldquo;region&amp;rdquo; and &amp;ldquo;service&amp;rdquo; from an &amp;ldquo;aps-workspaces&amp;rdquo; exporter endpoint&lt;/h3&gt;
&lt;p&gt;In this example the exporter endpoint starts with &lt;code&gt;aps-workspaces&lt;/code&gt;.
&lt;code&gt;service&lt;/code&gt; is inferred to be &lt;code&gt;aps&lt;/code&gt; and &lt;code&gt;region&lt;/code&gt; is inferred to be &lt;code&gt;us-east-1&lt;/code&gt;.&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;otelcol.exporter.otlp &amp;#34;example&amp;#34; {
  client {
    endpoint = &amp;#34;https://aps-workspaces.us-east-1.amazonaws.com/workspaces/ws-XXX/api/v1/remote_write&amp;#34;
    auth     = otelcol.auth.sigv4.creds.handler
  }
}

otelcol.auth.sigv4 &amp;#34;creds&amp;#34; {
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;infer-the-region-and-service-from-a-search--exporter-endpoint&#34;&gt;Infer the &amp;ldquo;region&amp;rdquo; and &amp;ldquo;service&amp;rdquo; from a &amp;ldquo;search-&amp;rdquo; exporter endpoint&lt;/h3&gt;
&lt;p&gt;In this example the exporter endpoint starts with &lt;code&gt;search-&lt;/code&gt;.
&lt;code&gt;service&lt;/code&gt; is inferred to be &lt;code&gt;es&lt;/code&gt; and &lt;code&gt;region&lt;/code&gt; is inferred to be &lt;code&gt;us-east-1&lt;/code&gt;.&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;otelcol.exporter.otlp &amp;#34;example&amp;#34; {
  client {
    endpoint = &amp;#34;https://search-my-domain.us-east-1.es.amazonaws.com/_search?q=house&amp;#34;
    auth     = otelcol.auth.sigv4.creds.handler
  }
}

otelcol.auth.sigv4 &amp;#34;creds&amp;#34; {
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;specify-region-and-service-explicitly&#34;&gt;Specify &amp;ldquo;region&amp;rdquo; and &amp;ldquo;service&amp;rdquo; explicitly&lt;/h3&gt;
&lt;p&gt;In this example the exporter endpoint doesn&amp;rsquo;t begin with &lt;code&gt;search-&lt;/code&gt; or with &lt;code&gt;aps-workspaces&lt;/code&gt;.
You must explicitly specify &lt;code&gt;region&lt;/code&gt; and &lt;code&gt;service&lt;/code&gt;.&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;otelcol.exporter.otlp &amp;#34;example&amp;#34; {
  client {
    endpoint = &amp;#34;my-otlp-grpc-server:4317&amp;#34;
    auth     = otelcol.auth.sigv4.creds.handler
  }
}

otelcol.auth.sigv4 &amp;#34;creds&amp;#34; {
    region = &amp;#34;example_region&amp;#34;
    service = &amp;#34;example_service&amp;#34;
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;specify-region-and-service-explicitly-and-adding-a-role-to-assume&#34;&gt;Specify &amp;ldquo;region&amp;rdquo; and &amp;ldquo;service&amp;rdquo; explicitly and adding a &amp;ldquo;role&amp;rdquo; to assume&lt;/h3&gt;
&lt;p&gt;In this example, the configuration assumes a role.
&lt;code&gt;sts_region&lt;/code&gt; hasn&amp;rsquo;t been provided, so it will default to the value of &lt;code&gt;region&lt;/code&gt; which is &lt;code&gt;example_region&lt;/code&gt;.&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;otelcol.exporter.otlp &amp;#34;example&amp;#34; {
  client {
    endpoint = &amp;#34;my-otlp-grpc-server:4317&amp;#34;
    auth     = otelcol.auth.sigv4.creds.handler
  }
}

otelcol.auth.sigv4 &amp;#34;creds&amp;#34; {
  region  = &amp;#34;example_region&amp;#34;
  service = &amp;#34;example_service&amp;#34;

  assume_role {
    session_name = &amp;#34;role_session_name&amp;#34;
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
]]></content><description>&lt;h1 id="otelcolauthsigv4">&lt;code>otelcol.auth.sigv4&lt;/code>&lt;/h1>
&lt;p>&lt;code>otelcol.auth.sigv4&lt;/code> exposes a &lt;code>handler&lt;/code> that other &lt;code>otelcol&lt;/code> components can use to authenticate requests to AWS services using the AWS Signature Version 4 (SigV4) protocol.
For more information about SigV4 refer to the AWS documentation about &lt;a href="https://docs.aws.amazon.com/general/latest/gr/signing-aws-api-requests.html" target="_blank" rel="noopener noreferrer">Signing AWS API requests&lt;/a>.&lt;/p></description></item><item><title>otelcol.connector.count</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.connector.count/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.connector.count/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolconnectorcount&#34;&gt;&lt;code&gt;otelcol.connector.count&lt;/code&gt;&lt;/h1&gt;


&lt;div data-shared=&#34;stability/experimental.md&#34;&gt;
            &lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;EXPERIMENTAL&lt;/strong&gt;: This is an &lt;a href=&#34;/docs/release-life-cycle/&#34;&gt;experimental&lt;/a&gt; component.
Experimental components are subject to frequent breaking changes, and may be removed with no equivalent replacement.
To enable and use an experimental component, you must set the &lt;code&gt;stability.level&lt;/code&gt; 
    &lt;a href=&#34;/docs/alloy/v1.15/reference/cli/run/&#34;&gt;flag&lt;/a&gt; to &lt;code&gt;experimental&lt;/code&gt;.&lt;/p&gt;&lt;/blockquote&gt;
&lt;/div&gt;

        
&lt;p&gt;&lt;code&gt;otelcol.connector.count&lt;/code&gt; accepts spans, span events, metrics, data points, and log records from other &lt;code&gt;otelcol&lt;/code&gt; components and generates metrics that count the received telemetry data.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.connector.count&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector Contrib &lt;code&gt;count&lt;/code&gt; connector.
Bug reports or feature requests are redirected to the upstream repository if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.connector.count&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.connector.count &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  output {
    metrics = [...]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;otelcol.connector.count&lt;/code&gt; component doesn&amp;rsquo;t support any arguments. You can configure this component with blocks.&lt;/p&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.connector.count&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 12;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#output\&amp;#34;\u003e\u003ccode\u003eoutput\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures where to send received telemetry data.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#datapoints\&amp;#34;\u003e\u003ccode\u003edatapoints\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures custom metrics for counting data points.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003edatapoints\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#attributes\&amp;#34;\u003e\u003ccode\u003eattributes\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eGroups data point counts by attribute values.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#logs\&amp;#34;\u003e\u003ccode\u003elogs\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures custom metrics for counting log records.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003elogs\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#attributes\&amp;#34;\u003e\u003ccode\u003eattributes\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eGroups log counts by attribute values.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#metrics\&amp;#34;\u003e\u003ccode\u003emetrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures custom metrics for counting metrics.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003emetrics\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#attributes\&amp;#34;\u003e\u003ccode\u003eattributes\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eGroups metric counts by attribute values.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#spanevents\&amp;#34;\u003e\u003ccode\u003espanevents\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures custom metrics for counting span events.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003espanevents\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#attributes\&amp;#34;\u003e\u003ccode\u003eattributes\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eGroups span event counts by attribute values.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#spans\&amp;#34;\u003e\u003ccode\u003espans\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures custom metrics for counting spans.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003espans\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#attributes\&amp;#34;\u003e\u003ccode\u003eattributes\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eGroups span counts by attribute values.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures where to send received telemetry data.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#datapoints&#34;&gt;&lt;code&gt;datapoints&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures custom metrics for counting data points.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;datapoints&lt;/code&gt; &amp;gt; &lt;a href=&#34;#attributes&#34;&gt;&lt;code&gt;attributes&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Groups data point counts by attribute values.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#logs&#34;&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures custom metrics for counting log records.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;logs&lt;/code&gt; &amp;gt; &lt;a href=&#34;#attributes&#34;&gt;&lt;code&gt;attributes&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Groups log counts by attribute values.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#metrics&#34;&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures custom metrics for counting metrics.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics&lt;/code&gt; &amp;gt; &lt;a href=&#34;#attributes&#34;&gt;&lt;code&gt;attributes&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Groups metric counts by attribute values.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#spanevents&#34;&gt;&lt;code&gt;spanevents&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures custom metrics for counting span events.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;spanevents&lt;/code&gt; &amp;gt; &lt;a href=&#34;#attributes&#34;&gt;&lt;code&gt;attributes&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Groups span event counts by attribute values.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#spans&#34;&gt;&lt;code&gt;spans&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures custom metrics for counting spans.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;spans&lt;/code&gt; &amp;gt; &lt;a href=&#34;#attributes&#34;&gt;&lt;code&gt;attributes&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Groups span counts by attribute values.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;spans&#34;&gt;&lt;code&gt;spans&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;spans&lt;/code&gt; block configures a custom metric for counting spans.&lt;/p&gt;
&lt;p&gt;You can specify multiple &lt;code&gt;spans&lt;/code&gt; blocks to define different metrics.&lt;/p&gt;
&lt;p&gt;If you don&amp;rsquo;t define any &lt;code&gt;spans&lt;/code&gt; blocks, the connector emits a default metric named &lt;code&gt;trace.span.count&lt;/code&gt;.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;conditions&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;OTTL expressions for filtering spans.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;description&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Metric description.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Metric name.&lt;/td&gt;
              &lt;td&gt;Uses default name based on telemetry type.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;code&gt;conditions&lt;/code&gt; argument accepts a list of &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/pkg/ottl&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;OTTL&lt;/a&gt; expressions that filter which spans to count.
If any condition matches, the connector counts the span.
If you don&amp;rsquo;t specify conditions, the connector counts all spans.&lt;/p&gt;
&lt;h3 id=&#34;spanevents&#34;&gt;&lt;code&gt;spanevents&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;spanevents&lt;/code&gt; block configures a custom metric for counting span events.&lt;/p&gt;
&lt;p&gt;You can specify multiple &lt;code&gt;spanevents&lt;/code&gt; blocks to define different metrics.&lt;/p&gt;
&lt;p&gt;If you don&amp;rsquo;t define any &lt;code&gt;spanevents&lt;/code&gt; blocks, the connector emits a default metric named &lt;code&gt;trace.span.event.count&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;This block shares the same configuration structure as [&lt;code&gt;spans&lt;/code&gt;][spans].
Refer to the [&lt;code&gt;spans&lt;/code&gt;][spans] block documentation for the complete list of supported arguments and blocks.&lt;/p&gt;
&lt;h3 id=&#34;metrics&#34;&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;metrics&lt;/code&gt; block configures a custom metric for counting metrics.&lt;/p&gt;
&lt;p&gt;You can specify multiple &lt;code&gt;metrics&lt;/code&gt; blocks to define different metrics.&lt;/p&gt;
&lt;p&gt;If you don&amp;rsquo;t define any &lt;code&gt;metrics&lt;/code&gt; blocks, the connector emits a default metric named &lt;code&gt;metric.count&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;This block shares the same configuration structure as [&lt;code&gt;spans&lt;/code&gt;][spans].
Refer to the [&lt;code&gt;spans&lt;/code&gt;][spans] block documentation for the complete list of supported arguments and blocks.&lt;/p&gt;
&lt;h3 id=&#34;datapoints&#34;&gt;&lt;code&gt;datapoints&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;datapoints&lt;/code&gt; block configures a custom metric for counting data points.&lt;/p&gt;
&lt;p&gt;You can specify multiple &lt;code&gt;datapoints&lt;/code&gt; blocks to define different metrics.&lt;/p&gt;
&lt;p&gt;If you don&amp;rsquo;t define any &lt;code&gt;datapoints&lt;/code&gt; blocks, the connector emits a default metric named &lt;code&gt;metric.datapoint.count&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;This block shares the same configuration structure as [&lt;code&gt;spans&lt;/code&gt;][spans].
Refer to the [&lt;code&gt;spans&lt;/code&gt;][spans] block documentation for the complete list of supported arguments and blocks.&lt;/p&gt;
&lt;h3 id=&#34;logs&#34;&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;logs&lt;/code&gt; block configures a custom metric for counting log records.&lt;/p&gt;
&lt;p&gt;You can specify multiple &lt;code&gt;logs&lt;/code&gt; blocks to define different metrics.&lt;/p&gt;
&lt;p&gt;If you don&amp;rsquo;t define any &lt;code&gt;logs&lt;/code&gt; blocks, the connector emits a default metric named &lt;code&gt;log.record.count&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;This block shares the same configuration structure as [&lt;code&gt;spans&lt;/code&gt;][spans].
Refer to the [&lt;code&gt;spans&lt;/code&gt;][spans] block documentation for the complete list of supported arguments and blocks.&lt;/p&gt;
&lt;h3 id=&#34;attributes&#34;&gt;&lt;code&gt;attributes&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;attributes&lt;/code&gt; block specifies an attribute to use for grouping counted telemetry data.&lt;/p&gt;
&lt;p&gt;Each unique combination of attribute values generates a separate data point on the metric.&lt;/p&gt;
&lt;p&gt;You can specify multiple &lt;code&gt;attributes&lt;/code&gt; blocks within &lt;code&gt;spans&lt;/code&gt;, &lt;code&gt;spanevents&lt;/code&gt;, &lt;code&gt;metrics&lt;/code&gt;, &lt;code&gt;datapoints&lt;/code&gt;, or &lt;code&gt;logs&lt;/code&gt; blocks to group by multiple attributes.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Attribute key name.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;default_value&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;any&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Default value if the attribute doesn&amp;rsquo;t exist.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;Attribute precedence: span/log/metric attributes &amp;gt; scope attributes &amp;gt; resource attributes.&lt;/p&gt;
&lt;h3 id=&#34;output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;



&lt;div data-shared=&#34;reference/components/output-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;output&lt;/code&gt; block configures a set of components to forward resulting telemetry data to.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send logs to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send metrics to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;traces&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send traces to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You must specify the &lt;code&gt;output&lt;/code&gt; block, but all its arguments are optional.
By default, telemetry data is dropped.
Configure the &lt;code&gt;metrics&lt;/code&gt;, &lt;code&gt;logs&lt;/code&gt;, and &lt;code&gt;traces&lt;/code&gt; arguments accordingly to send telemetry data to other components.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;The following fields are exported and can be referenced by other components:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&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;code&gt;input&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A value that other components can use to send telemetry data to.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;input&lt;/code&gt; accepts &lt;code&gt;otelcol.Consumer&lt;/code&gt; data for traces, metrics, and logs.&lt;/p&gt;
&lt;p&gt;he component counts all telemetry received through &lt;code&gt;input&lt;/code&gt; according to the configured blocks and emits metrics to the components specified in &lt;code&gt;output&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.connector.count&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.connector.count&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;examples&#34;&gt;Examples&lt;/h2&gt;
&lt;h3 id=&#34;default-configuration&#34;&gt;Default configuration&lt;/h3&gt;
&lt;p&gt;Use the count connector with minimal configuration to count all telemetry data using default metric names.&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;otelcol.connector.count &amp;#34;default&amp;#34; {
  output {
    metrics = [otelcol.exporter.otlphttp.default.input]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;This configuration generates the following default metrics:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;trace.span.count&lt;/code&gt; - Count of all spans&lt;/li&gt;
&lt;li&gt;&lt;code&gt;trace.span.event.count&lt;/code&gt; - Count of all span events&lt;/li&gt;
&lt;li&gt;&lt;code&gt;metric.count&lt;/code&gt; - Count of all metrics&lt;/li&gt;
&lt;li&gt;&lt;code&gt;metric.datapoint.count&lt;/code&gt; - Count of all data points&lt;/li&gt;
&lt;li&gt;&lt;code&gt;log.record.count&lt;/code&gt; - Count of all log records&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;custom-metrics-with-conditions-and-attributes&#34;&gt;Custom metrics with conditions and attributes&lt;/h3&gt;
&lt;p&gt;Create custom count metrics with filtering conditions and group counts by specific 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;otelcol.connector.count &amp;#34;default&amp;#34; {
  // Count only HTTP GET spans
  spans {
    name        = &amp;#34;http_get_requests&amp;#34;
    description = &amp;#34;Number of HTTP GET requests&amp;#34;
    conditions  = [
      &amp;#34;attributes[\&amp;#34;http.method\&amp;#34;] == \&amp;#34;GET\&amp;#34;&amp;#34;,
    ]
  }

  // Count spans grouped by service and environment
  spans {
    name        = &amp;#34;spans_by_service&amp;#34;
    description = &amp;#34;Spans per service and environment&amp;#34;
    attributes {
      key           = &amp;#34;service.name&amp;#34;
      default_value = &amp;#34;unknown&amp;#34;
    }
    attributes {
      key           = &amp;#34;env&amp;#34;
      default_value = &amp;#34;production&amp;#34;
    }
  }

  // Count error and fatal logs only
  logs {
    name        = &amp;#34;error_logs&amp;#34;
    description = &amp;#34;Error and fatal log records&amp;#34;
    conditions  = [
      &amp;#34;severity_number &amp;gt;= 17&amp;#34;,
    ]
  }

  // Count logs by environment
  logs {
    name        = &amp;#34;logs_by_env&amp;#34;
    description = &amp;#34;Log records per environment&amp;#34;
    attributes {
      key = &amp;#34;env&amp;#34;
    }
  }

  output {
    metrics = [otelcol.exporter.otlphttp.default.input]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;complete-pipeline-with-prometheus-export&#34;&gt;Complete pipeline with Prometheus export&lt;/h3&gt;
&lt;p&gt;Count spans, logs, and metrics, then export to Prometheus using the delta to cumulative processor.&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;otelcol.receiver.otlp &amp;#34;default&amp;#34; {
  grpc {
    endpoint = &amp;#34;127.0.0.1:4317&amp;#34;
  }

  http {
    endpoint = &amp;#34;127.0.0.1:4318&amp;#34;
  }

  output {
    traces  = [otelcol.connector.count.default.input]
    metrics = [otelcol.connector.count.default.input]
    logs    = [otelcol.connector.count.default.input]
  }
}

otelcol.connector.count &amp;#34;default&amp;#34; {
  spans {
    name        = &amp;#34;traces_total&amp;#34;
    description = &amp;#34;Total number of spans received&amp;#34;
  }

  spans {
    name        = &amp;#34;http_get_spans&amp;#34;
    description = &amp;#34;HTTP GET requests&amp;#34;
    conditions  = [
      &amp;#34;attributes[\&amp;#34;http.method\&amp;#34;] == \&amp;#34;GET\&amp;#34;&amp;#34;,
    ]
  }

  spans {
    name        = &amp;#34;spans_by_service&amp;#34;
    description = &amp;#34;Spans grouped by service&amp;#34;
    attributes {
      key           = &amp;#34;service.name&amp;#34;
      default_value = &amp;#34;unknown&amp;#34;
    }
  }

  logs {
    name        = &amp;#34;logs_total&amp;#34;
    description = &amp;#34;Total number of logs received&amp;#34;
  }

  logs {
    name        = &amp;#34;error_logs&amp;#34;
    description = &amp;#34;Error level logs&amp;#34;
    conditions  = [
      &amp;#34;severity_number &amp;gt;= 17&amp;#34;,
    ]
  }

  metrics {
    name        = &amp;#34;metrics_total&amp;#34;
    description = &amp;#34;Total number of metrics received&amp;#34;
  }

  output {
    metrics = [otelcol.processor.deltatocumulative.default.input]
  }
}

// Convert delta metrics to cumulative for Prometheus compatibility
otelcol.processor.deltatocumulative &amp;#34;default&amp;#34; {
  output {
    metrics = [otelcol.exporter.prometheus.default.input]
  }
}

otelcol.exporter.prometheus &amp;#34;default&amp;#34; {
  forward_to                       = [prometheus.remote_write.default.receiver]
  add_metric_suffixes              = false
  resource_to_telemetry_conversion = true
}

prometheus.remote_write &amp;#34;default&amp;#34; {
  endpoint {
    url = &amp;#34;http://localhost:9090/api/v1/write&amp;#34;
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;technical-details&#34;&gt;Technical details&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.connector.count&lt;/code&gt; uses the count connector from OpenTelemetry Collector Contrib.&lt;/p&gt;
&lt;p&gt;All generated metrics use the Sum data type with Delta aggregation temporality.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Prometheus doesn&amp;rsquo;t natively support delta metrics.
Use &lt;a href=&#34;../otelcol.processor.deltatocumulative/&#34;&gt;&lt;code&gt;otelcol.processor.deltatocumulative&lt;/code&gt;&lt;/a&gt; to convert delta metrics to cumulative before sending to Prometheus.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.connector.count&lt;/code&gt; can accept arguments from the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that export &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-exporters&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;otelcol.connector.count&lt;/code&gt; has exports that can be consumed by the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that consume &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-consumers&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolconnectorcount">&lt;code>otelcol.connector.count&lt;/code>&lt;/h1>
&lt;div data-shared="stability/experimental.md">
&lt;blockquote>
&lt;p>&lt;strong>EXPERIMENTAL&lt;/strong>: This is an &lt;a href="/docs/release-life-cycle/">experimental&lt;/a> component.
Experimental components are subject to frequent breaking changes, and may be removed with no equivalent replacement.
To enable and use an experimental component, you must set the &lt;code>stability.level&lt;/code>
&lt;a href="/docs/alloy/v1.15/reference/cli/run/">flag&lt;/a> to &lt;code>experimental&lt;/code>.&lt;/p></description></item><item><title>otelcol.connector.host_info</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.connector.host_info/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.connector.host_info/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolconnectorhost_info&#34;&gt;&lt;code&gt;otelcol.connector.host_info&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;otelcol.connector.host_info&lt;/code&gt; accepts span data from other &lt;code&gt;otelcol&lt;/code&gt; components and generates usage metrics.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.connector.host_info&lt;/code&gt; is a custom component unrelated to any connectors from the upstream OpenTelemetry Collector.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.connector.host_info &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  output {
    metrics = [...]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.connector.host_info&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;host_identifiers&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Ordered list of resource attributes used to identify unique hosts.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[&amp;quot;host.id&amp;quot;]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics_flush_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How often to flush generated metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;60s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.connector.host_info&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 2;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#output\&amp;#34;\u003e\u003ccode\u003eoutput\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures where to send received telemetry data.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures where to send received telemetry data.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;



&lt;div data-shared=&#34;reference/components/output-block-metrics.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;output&lt;/code&gt; block configures a set of components to forward resulting telemetry data to.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send metrics to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You must specify the &lt;code&gt;output&lt;/code&gt; block, but all its arguments are optional.
By default, telemetry data is dropped.
Configure the &lt;code&gt;metrics&lt;/code&gt; argument accordingly to send telemetry data to other components.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;The following fields are exported and can be referenced by other components:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&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;code&gt;input&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A value that other components can use to send telemetry data to.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;input&lt;/code&gt; accepts &lt;code&gt;otelcol.Consumer&lt;/code&gt; traces telemetry data.
It doesn&amp;rsquo;t accept metrics and logs.&lt;/p&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;p&gt;The following example accepts traces, adds the &lt;code&gt;host.id&lt;/code&gt; resource attribute via the &lt;code&gt;otelcol.processor.resourcedetection&lt;/code&gt; component, creates usage metrics from these traces, and writes the metrics to Mimir.&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;otelcol.receiver.otlp &amp;#34;otlp&amp;#34; {
  http {}
  grpc {}

  output {
    traces = [otelcol.processor.resourcedetection.otlp_resources.input]
  }
}

otelcol.processor.resourcedetection &amp;#34;otlp_resources&amp;#34; {
  detectors = [&amp;#34;system&amp;#34;]
  system {
    hostname_sources = [ &amp;#34;os&amp;#34; ]
    resource_attributes {
      host.id {
        enabled = true
      }
    }
  }
  output {
    traces = [otelcol.connector.host_info.default.input]
  }
}

otelcol.connector.host_info &amp;#34;default&amp;#34; {
  output {
    metrics = [otelcol.exporter.prometheus.otlp_metrics.input]
  }
}

otelcol.exporter.prometheus &amp;#34;otlp_metrics&amp;#34; {
  forward_to = [prometheus.remote_write.default.receiver]
}

prometheus.remote_write &amp;#34;default&amp;#34; {
  endpoint {
    url = &amp;#34;https://prometheus-xxx.grafana.net/api/prom/push&amp;#34;
    basic_auth {
      username = sys.env(&amp;#34;&amp;lt;PROMETHEUS_USERNAME&amp;gt;&amp;#34;)
      password = sys.env(&amp;#34;&amp;lt;GRAFANA_CLOUD_API_KEY&amp;gt;&amp;#34;)
    }
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.connector.host_info&lt;/code&gt; can accept arguments from the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that export &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-exporters&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;otelcol.connector.host_info&lt;/code&gt; has exports that can be consumed by the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that consume &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-consumers&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolconnectorhost_info">&lt;code>otelcol.connector.host_info&lt;/code>&lt;/h1>
&lt;p>&lt;code>otelcol.connector.host_info&lt;/code> accepts span data from other &lt;code>otelcol&lt;/code> components and generates usage metrics.&lt;/p>
&lt;div class="admonition admonition-note">&lt;blockquote>&lt;p class="title text-uppercase">Note&lt;/p>&lt;p>&lt;code>otelcol.connector.host_info&lt;/code> is a custom component unrelated to any connectors from the upstream OpenTelemetry Collector.&lt;/p></description></item><item><title>otelcol.connector.servicegraph</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.connector.servicegraph/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.connector.servicegraph/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolconnectorservicegraph&#34;&gt;&lt;code&gt;otelcol.connector.servicegraph&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;otelcol.connector.servicegraph&lt;/code&gt; accepts span data from other &lt;code&gt;otelcol&lt;/code&gt; components and outputs metrics representing the relationship between various services in a system.
A metric represents an edge in the service graph.
Those metrics can then be used by a data visualization application, for example, &lt;a href=&#34;/docs/grafana/latest/explore/trace-integration/#service-graph&#34;&gt;Grafana&lt;/a&gt;, to draw the service graph.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.connector.servicegraph&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/connector/servicegraphconnector&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;servicegraph&lt;/code&gt;&lt;/a&gt; connector.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.connector.servicegraph&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;p&gt;This component is based on the &lt;a href=&#34;https://github.com/grafana/tempo/tree/main/modules/generator/processor/servicegraphs&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Grafana Tempo service graph processor&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Service graphs are useful for a number of use-cases:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Infer the topology of a distributed system. As distributed systems grow, they become more complex.
Service graphs can help you understand the structure of the system.&lt;/li&gt;
&lt;li&gt;Provide a high level overview of the health of your system.
Service graphs show error rates, latencies, and other relevant data.&lt;/li&gt;
&lt;li&gt;Provide a historic view of a system&amp;rsquo;s topology.
Distributed systems change very frequently, and service graphs offer a way of seeing how these systems have evolved over time.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Since &lt;code&gt;otelcol.connector.servicegraph&lt;/code&gt; has to process both sides of an edge, it needs to process all spans of a trace to function properly.
If spans of a trace are spread out over multiple Alloy instances, spans can&amp;rsquo;t be paired reliably.
A solution to this problem is using &lt;a href=&#34;../otelcol.exporter.loadbalancing/&#34;&gt;otelcol.exporter.loadbalancing&lt;/a&gt; in front of Alloy instances running &lt;code&gt;otelcol.connector.servicegraph&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.connector.servicegraph &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  output {
    metrics = [...]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.connector.servicegraph&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cache_loop&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Configures how often to delete series which have not been updated.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;1m&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;database_name_attribute&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;(Deprecated) The attribute name used to identify the database name from span attributes.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;db.name&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;database_name_attributes&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The list of attribute names used to identify the database name from span attributes.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[&amp;quot;db.name&amp;quot;]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;dimensions&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of dimensions to add with the default dimensions.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;exponential_histogram_max_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;the maximum number of buckets per positive or negative number range.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;latency_histogram_buckets&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(duration)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Buckets for latency histogram metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[&amp;quot;2ms&amp;quot;, &amp;quot;4ms&amp;quot;, &amp;quot;6ms&amp;quot;, &amp;quot;8ms&amp;quot;, &amp;quot;10ms&amp;quot;, &amp;quot;50ms&amp;quot;, &amp;quot;100ms&amp;quot;, &amp;quot;200ms&amp;quot;, &amp;quot;400ms&amp;quot;, &amp;quot;800ms&amp;quot;, &amp;quot;1s&amp;quot;, &amp;quot;1400ms&amp;quot;, &amp;quot;2s&amp;quot;, &amp;quot;5s&amp;quot;, &amp;quot;10s&amp;quot;, &amp;quot;15s&amp;quot;]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics_flush_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The interval at which metrics are flushed to downstream components.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;60s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;store_expiration_loop&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The time to expire old entries from the store periodically.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;2s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;virtual_node_extra_label&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Adds an extra &lt;code&gt;virtual_node&lt;/code&gt; label with an optional value of &lt;code&gt;client&lt;/code&gt; or &lt;code&gt;server&lt;/code&gt;, indicating which node is the uninstrumented one.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;virtual_node_peer_attributes&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The list of attributes used to identify virtual node peer.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[&amp;quot;peer.service&amp;quot;, &amp;quot;db.name&amp;quot;, &amp;quot;db.system&amp;quot;]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;Service graphs work by inspecting traces and looking for spans with parent-children relationship that represent a request.
&lt;code&gt;otelcol.connector.servicegraph&lt;/code&gt; uses OpenTelemetry semantic conventions to detect a myriad of requests.
The following requests are supported:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A direct request between two services, where the outgoing and the incoming span must have a &lt;a href=&#34;https://opentelemetry.io/docs/concepts/signals/traces/#span-kind&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Span Kind&lt;/a&gt; value of &lt;code&gt;client&lt;/code&gt; and &lt;code&gt;server&lt;/code&gt; respectively.&lt;/li&gt;
&lt;li&gt;A request across a messaging system, where the outgoing and the incoming span must have a &lt;a href=&#34;https://opentelemetry.io/docs/concepts/signals/traces/#span-kind&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Span Kind&lt;/a&gt; value of &lt;code&gt;producer&lt;/code&gt; and &lt;code&gt;consumer&lt;/code&gt; respectively.&lt;/li&gt;
&lt;li&gt;A database request, where spans have a &lt;a href=&#34;https://opentelemetry.io/docs/concepts/signals/traces/#span-kind&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Span Kind&lt;/a&gt; with a value of &lt;code&gt;client&lt;/code&gt;, as well as an attribute with a key of &lt;code&gt;db.name&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Every span which can be paired up to form a request is kept in an in-memory store:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If the TTL of the span expires before it can be paired, it&amp;rsquo;s deleted from the store.
TTL is configured in the [store][] block.&lt;/li&gt;
&lt;li&gt;If the span is paired prior to its expiration, a metric is recorded and the span is deleted from the store.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following metrics are emitted by the processor:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Metric&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Labels&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;code&gt;traces_service_graph_dropped_spans_total&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Counter&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;client&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;connection_type&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Total count of dropped spans&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;traces_service_graph_request_client&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Histogram&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;client&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;connection_type&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Number of seconds for a request between two nodes as seen from the client&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;traces_service_graph_request_failed_total&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Counter&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;client&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;connection_type&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Total count of failed requests between two nodes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;traces_service_graph_request_server&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Histogram&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;client&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;connection_type&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Number of seconds for a request between two nodes as seen from the server&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;traces_service_graph_request_total&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Counter&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;client&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;connection_type&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Total count of requests between two nodes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;traces_service_graph_unpaired_spans_total&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Counter&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;client&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;connection_type&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Total count of unpaired spans&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;Duration is measured both from the client and the server sides.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;latency_histogram_buckets&lt;/code&gt; argument controls the buckets for &lt;code&gt;traces_service_graph_request_server&lt;/code&gt; and &lt;code&gt;traces_service_graph_request_client&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Each emitted metrics series have a &lt;code&gt;client&lt;/code&gt; and a &lt;code&gt;server&lt;/code&gt; label corresponding with the service doing the request and the service receiving the request.
The value of the label is derived from the &lt;code&gt;service.name&lt;/code&gt; resource attribute of the two spans.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;connection_type&lt;/code&gt; label may not be set. If it&amp;rsquo;s set, its value will be either &lt;code&gt;messaging_system&lt;/code&gt; or &lt;code&gt;database&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Additional labels can be included using the &lt;code&gt;dimensions&lt;/code&gt; configuration option:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Those labels will have a prefix to mark where they originate (client or server span kinds).
The &lt;code&gt;client_&lt;/code&gt; prefix relates to the dimensions coming from spans with a &lt;a href=&#34;https://opentelemetry.io/docs/concepts/signals/traces/#span-kind&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Span Kind&lt;/a&gt; of &lt;code&gt;client&lt;/code&gt;.
The &lt;code&gt;server_&lt;/code&gt; prefix relates to the dimensions coming from spans with a &lt;a href=&#34;https://opentelemetry.io/docs/concepts/signals/traces/#span-kind&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Span Kind&lt;/a&gt; of &lt;code&gt;server&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Firstly the resource attributes will be searched. If the attribute isn&amp;rsquo;t found, the span attributes will be searched.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When &lt;code&gt;metrics_flush_interval&lt;/code&gt; is set to &lt;code&gt;0s&lt;/code&gt;, metrics will be flushed on every received batch of traces.&lt;/p&gt;
&lt;p&gt;The attributes in &lt;code&gt;database_name_attributes&lt;/code&gt; are tried in order, selecting the first match.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;virtual_node_peer_attributes&lt;/code&gt; is useful when an OTel-instrumented client sends a request to a service that isn&amp;rsquo;t OTel-instrumented.
Normally, &lt;code&gt;otelcol.connector.servicegraph&lt;/code&gt; can&amp;rsquo;t pair the client span with the server span.
When an edge expires, &lt;code&gt;otelcol.connector.servicegraph&lt;/code&gt; checks if it has peer attributes listed in &lt;code&gt;virtual_node_peer_attributes&lt;/code&gt;.
If it finds an attribute, &lt;code&gt;otelcol.connector.servicegraph&lt;/code&gt; aggregates the metrics with a virtual node.&lt;/p&gt;
&lt;p&gt;If no client span is found and &lt;code&gt;virtual_node_peer_attributes&lt;/code&gt; is not an empty list,
then the service span will be paired with a virtual node called &lt;code&gt;client=&amp;quot;user&amp;quot;&lt;/code&gt;.
This is useful when a client that isn&amp;rsquo;t OTel-instrumented (like a web browser) sends a request to an OTel-instrumented service.
Without a virtual node, the client span is missing, and the server span expires without being paired.&lt;/p&gt;
&lt;p&gt;Attributes configured in the &lt;code&gt;virtual_node_peer_attributes&lt;/code&gt; argument are ordered by priority, with earlier attributes having higher priority.
An empty list disables the creation of a virtual node.&lt;/p&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.connector.servicegraph&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 3;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#output\&amp;#34;\u003e\u003ccode\u003eoutput\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures where to send telemetry data.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#store\&amp;#34;\u003e\u003ccode\u003estore\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the in-memory store for spans.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures where to send telemetry data.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#store&#34;&gt;&lt;code&gt;store&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the in-memory store for spans.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;



&lt;div data-shared=&#34;reference/components/output-block-metrics.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;output&lt;/code&gt; block configures a set of components to forward resulting telemetry data to.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send metrics to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You must specify the &lt;code&gt;output&lt;/code&gt; block, but all its arguments are optional.
By default, telemetry data is dropped.
Configure the &lt;code&gt;metrics&lt;/code&gt; argument accordingly to send telemetry data to other components.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h3 id=&#34;store&#34;&gt;&lt;code&gt;store&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;store&lt;/code&gt; block configures the in-memory store for spans.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_items&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum number of items to keep in the store.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1000&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ttl&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The time to live for spans in the store.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;2s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;The following fields are exported and can be referenced by other components:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&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;code&gt;input&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A value that other components can use to send telemetry data to.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;input&lt;/code&gt; accepts &lt;code&gt;otelcol.Consumer&lt;/code&gt; traces telemetry data.
It doesn&amp;rsquo;t accept metrics and logs.&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.connector.servicegraph&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.connector.servicegraph&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;p&gt;The example below accepts traces, creates service graph metrics from them, and writes the metrics to Mimir.
The traces are written to Tempo.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;otelcol.connector.servicegraph&lt;/code&gt; also adds a label to each metric with the value of the &amp;ldquo;http.method&amp;rdquo; span/resource 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;otelcol.receiver.otlp &amp;#34;default&amp;#34; {
  grpc {
    endpoint = &amp;#34;0.0.0.0:4320&amp;#34;
  }

  output {
    traces  = [otelcol.connector.servicegraph.default.input,otelcol.exporter.otlphttp.grafana_cloud_traces.input]
  }
}

otelcol.connector.servicegraph &amp;#34;default&amp;#34; {
  dimensions = [&amp;#34;http.method&amp;#34;]
  output {
    metrics = [otelcol.exporter.prometheus.default.input]
  }
}

otelcol.exporter.prometheus &amp;#34;default&amp;#34; {
  forward_to = [prometheus.remote_write.mimir.receiver]
}

prometheus.remote_write &amp;#34;mimir&amp;#34; {
  endpoint {
    url = &amp;#34;https://prometheus-xxx.grafana.net/api/prom/push&amp;#34;

    basic_auth {
      username = sys.env(&amp;#34;&amp;lt;PROMETHEUS_USERNAME&amp;gt;&amp;#34;)
      password = sys.env(&amp;#34;&amp;lt;GRAFANA_CLOUD_API_KEY&amp;gt;&amp;#34;)
    }
  }
}

otelcol.exporter.otlphttp &amp;#34;grafana_cloud_traces&amp;#34; {
  client {
    endpoint = `https://otlp-gateway-prod-gb-south-0.grafana.net/otlp`
    auth     = otelcol.auth.basic.grafana_cloud_traces.handler
  }
}

otelcol.auth.basic &amp;#34;grafana_cloud_traces&amp;#34; {
  username = sys.env(&amp;#34;&amp;lt;TEMPO_USERNAME&amp;gt;&amp;#34;)
  password = sys.env(&amp;#34;&amp;lt;GRAFANA_CLOUD_API_KEY&amp;gt;&amp;#34;)
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Some of the metrics in Mimir may look like this:&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;text&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-text&#34;&gt;traces_service_graph_request_total{client=&amp;#34;shop-backend&amp;#34;,failed=&amp;#34;false&amp;#34;,server=&amp;#34;article-service&amp;#34;,client_http_method=&amp;#34;DELETE&amp;#34;,server_http_method=&amp;#34;DELETE&amp;#34;}
traces_service_graph_request_failed_total{client=&amp;#34;shop-backend&amp;#34;,client_http_method=&amp;#34;POST&amp;#34;,failed=&amp;#34;false&amp;#34;,server=&amp;#34;auth-service&amp;#34;,server_http_method=&amp;#34;POST&amp;#34;}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.connector.servicegraph&lt;/code&gt; can accept arguments from the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that export &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-exporters&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;otelcol.connector.servicegraph&lt;/code&gt; has exports that can be consumed by the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that consume &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-consumers&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolconnectorservicegraph">&lt;code>otelcol.connector.servicegraph&lt;/code>&lt;/h1>
&lt;p>&lt;code>otelcol.connector.servicegraph&lt;/code> accepts span data from other &lt;code>otelcol&lt;/code> components and outputs metrics representing the relationship between various services in a system.
A metric represents an edge in the service graph.
Those metrics can then be used by a data visualization application, for example, &lt;a href="/docs/grafana/latest/explore/trace-integration/#service-graph">Grafana&lt;/a>, to draw the service graph.&lt;/p></description></item><item><title>otelcol.connector.spanlogs</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.connector.spanlogs/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.connector.spanlogs/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolconnectorspanlogs&#34;&gt;&lt;code&gt;otelcol.connector.spanlogs&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;otelcol.connector.spanlogs&lt;/code&gt; accepts traces telemetry data from other &lt;code&gt;otelcol&lt;/code&gt; components and outputs logs telemetry data for each span, root, or process.
This allows you to automatically build a mechanism for trace discovery.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.connector.spanlogs&lt;/code&gt; is a custom component unrelated to any components from the OpenTelemetry Collector.
It&amp;rsquo;s based on the &lt;code&gt;automatic_logging&lt;/code&gt; component in the &lt;a href=&#34;/docs/agent/latest/static/configuration/traces-config/&#34;&gt;traces&lt;/a&gt; subsystem of Grafana Agent Static.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.connector.spanlogs&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.connector.spanlogs &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  output {
    logs    = [...]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.connector.spanlogs&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;event_attributes&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Additional event attributes to log.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;events&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Log one line for every span event.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;labels&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of keys that will be logged as labels.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;process_attributes&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Additional process attributes to log.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;processes&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Log one line for every process.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;roots&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Log one line for every root span of a trace.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;span_attributes&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Additional span attributes to log.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;spans&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Log one line per span.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The values listed in &lt;code&gt;labels&lt;/code&gt; should be the values of either span, process, or event attributes.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-warning&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Warning&lt;/p&gt;&lt;p&gt;Setting either &lt;code&gt;spans&lt;/code&gt; or &lt;code&gt;events&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; could lead to a high volume of logs.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.connector.spanlogs&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 2;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#output\&amp;#34;\u003e\u003ccode\u003eoutput\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures where to send received telemetry data.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#overrides\&amp;#34;\u003e\u003ccode\u003eoverrides\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eOverrides for keys in the log body.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures where to send received telemetry data.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#overrides&#34;&gt;&lt;code&gt;overrides&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Overrides for keys in the log body.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;



&lt;div data-shared=&#34;reference/components/output-block-logs.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;output&lt;/code&gt; block configures a set of components to forward resulting telemetry data to.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send logs to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You must specify the &lt;code&gt;output&lt;/code&gt; block, but all its arguments are optional.
By default, telemetry data is dropped.
Configure the &lt;code&gt;logs&lt;/code&gt; argument accordingly to send telemetry data to other components, .&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;overrides&#34;&gt;&lt;code&gt;overrides&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;overrides&lt;/code&gt; block configures overrides for keys that will be logged in the body of the log line.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;duration_key&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Log key for the duration of the span.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;dur&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;logs_instance_tag&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Indicates if the log line is for a span, root, or process.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;traces&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;service_key&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Log key for the service name of the resource.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;svc&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;span_name_key&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Log key for the name of the span.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;span&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;status_key&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Log key for the status of the span.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;status&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;trace_id_key&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Log key for the trace ID of the span.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;tid&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;The following fields are exported and can be referenced by other components:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&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;code&gt;input&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A value that other components can use to send telemetry data to.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;input&lt;/code&gt; accepts &lt;code&gt;otelcol.Consumer&lt;/code&gt; data for any telemetry signal (metrics, logs, or traces).&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.connector.spanlogs&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.connector.spanlogs&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;p&gt;The following configuration sends logs derived from spans to Loki.&lt;/p&gt;
&lt;p&gt;Additionally, &lt;code&gt;otelcol.processor.attributes&lt;/code&gt; is configured with a &amp;ldquo;hint&amp;rdquo; so that &lt;code&gt;otelcol.exporter.loki&lt;/code&gt; promotes the span&amp;rsquo;s &amp;ldquo;attribute1&amp;rdquo; attribute to a Loki label.&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;otelcol.receiver.otlp &amp;#34;default&amp;#34; {
  grpc {}

  output {
    traces = [otelcol.connector.spanlogs.default.input]
  }
}

otelcol.connector.spanlogs &amp;#34;default&amp;#34; {
  spans              = true
  roots              = true
  processes          = true
  events             = true
  labels             = [&amp;#34;attribute1&amp;#34;, &amp;#34;res_attribute1&amp;#34;]
  span_attributes    = [&amp;#34;attribute1&amp;#34;]
  process_attributes = [&amp;#34;res_attribute1&amp;#34;]
  event_attributes   = [&amp;#34;log.severity&amp;#34;, &amp;#34;log.message&amp;#34;]

  output {
    logs = [otelcol.processor.attributes.default.input]
  }
}

otelcol.processor.attributes &amp;#34;default&amp;#34; {
  action {
    key = &amp;#34;loki.attribute.labels&amp;#34;
    action = &amp;#34;insert&amp;#34;
    value = &amp;#34;attribute1&amp;#34;
  }

  output {
    logs = [otelcol.exporter.loki.default.input]
  }
}

otelcol.exporter.loki &amp;#34;default&amp;#34; {
  forward_to = [loki.write.local.receiver]
}

loki.write &amp;#34;local&amp;#34; {
  endpoint {
    url = &amp;#34;loki:3100&amp;#34;
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;For an input trace like this:&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;JSON&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-json&#34;&gt;{
  &amp;#34;resourceSpans&amp;#34;: [
    {
      &amp;#34;resource&amp;#34;: {
        &amp;#34;attributes&amp;#34;: [
          {
            &amp;#34;key&amp;#34;: &amp;#34;service.name&amp;#34;,
            &amp;#34;value&amp;#34;: { &amp;#34;stringValue&amp;#34;: &amp;#34;TestSvcName&amp;#34; }
          },
          {
            &amp;#34;key&amp;#34;: &amp;#34;res_attribute1&amp;#34;,
            &amp;#34;value&amp;#34;: { &amp;#34;intValue&amp;#34;: &amp;#34;78&amp;#34; }
          },
          {
            &amp;#34;key&amp;#34;: &amp;#34;unused_res_attribute1&amp;#34;,
            &amp;#34;value&amp;#34;: { &amp;#34;stringValue&amp;#34;: &amp;#34;str&amp;#34; }
          },
          {
            &amp;#34;key&amp;#34;: &amp;#34;res_account_id&amp;#34;,
            &amp;#34;value&amp;#34;: { &amp;#34;intValue&amp;#34;: &amp;#34;2245&amp;#34; }
          }
        ]
      },
      &amp;#34;scopeSpans&amp;#34;: [
        {
          &amp;#34;spans&amp;#34;: [
            {
              &amp;#34;trace_id&amp;#34;: &amp;#34;7bba9f33312b3dbb8b2c2c62bb7abe2d&amp;#34;,
              &amp;#34;span_id&amp;#34;: &amp;#34;086e83747d0e381e&amp;#34;,
              &amp;#34;name&amp;#34;: &amp;#34;TestSpan&amp;#34;,
              &amp;#34;attributes&amp;#34;: [
                {
                  &amp;#34;key&amp;#34;: &amp;#34;attribute1&amp;#34;,
                  &amp;#34;value&amp;#34;: { &amp;#34;intValue&amp;#34;: &amp;#34;78&amp;#34; }
                },
                {
                  &amp;#34;key&amp;#34;: &amp;#34;unused_attribute1&amp;#34;,
                  &amp;#34;value&amp;#34;: { &amp;#34;intValue&amp;#34;: &amp;#34;78&amp;#34; }
                },
                {
                  &amp;#34;key&amp;#34;: &amp;#34;account_id&amp;#34;,
                  &amp;#34;value&amp;#34;: { &amp;#34;intValue&amp;#34;: &amp;#34;2245&amp;#34; }
                }
              ],
              &amp;#34;events&amp;#34;: [
                {
                  &amp;#34;name&amp;#34;: &amp;#34;log&amp;#34;,
                  &amp;#34;attributes&amp;#34;: [
                    {
                      &amp;#34;key&amp;#34;: &amp;#34;log.severity&amp;#34;,
                      &amp;#34;value&amp;#34;: { &amp;#34;stringValue&amp;#34;: &amp;#34;INFO&amp;#34; }
                    },
                    {
                      &amp;#34;key&amp;#34;: &amp;#34;log.message&amp;#34;,
                      &amp;#34;value&amp;#34;: { &amp;#34;stringValue&amp;#34;: &amp;#34;TestLogMessage&amp;#34; }
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The output log coming out of &lt;code&gt;otelcol.connector.spanlogs&lt;/code&gt; looks like this:&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;JSON&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-json&#34;&gt;{
  &amp;#34;resourceLogs&amp;#34;: [
    {
      &amp;#34;scopeLogs&amp;#34;: [
        {
          &amp;#34;log_records&amp;#34;: [
            {
              &amp;#34;body&amp;#34;: {
                &amp;#34;stringValue&amp;#34;: &amp;#34;span=TestSpan dur=0ns attribute1=78 svc=TestSvcName res_attribute1=78 tid=7bba9f33312b3dbb8b2c2c62bb7abe2d&amp;#34;
              },
              &amp;#34;attributes&amp;#34;: [
                {
                  &amp;#34;key&amp;#34;: &amp;#34;traces&amp;#34;,
                  &amp;#34;value&amp;#34;: { &amp;#34;stringValue&amp;#34;: &amp;#34;span&amp;#34; }
                },
                {
                  &amp;#34;key&amp;#34;: &amp;#34;attribute1&amp;#34;,
                  &amp;#34;value&amp;#34;: { &amp;#34;intValue&amp;#34;: &amp;#34;78&amp;#34; }
                },
                {
                  &amp;#34;key&amp;#34;: &amp;#34;res_attribute1&amp;#34;,
                  &amp;#34;value&amp;#34;: { &amp;#34;intValue&amp;#34;: &amp;#34;78&amp;#34; }
                }
              ]
            },
            {
              &amp;#34;body&amp;#34;: {
                &amp;#34;stringValue&amp;#34;: &amp;#34;span=TestSpan dur=0ns attribute1=78 svc=TestSvcName res_attribute1=78 tid=7bba9f33312b3dbb8b2c2c62bb7abe2d&amp;#34;
              },
              &amp;#34;attributes&amp;#34;: [
                {
                  &amp;#34;key&amp;#34;: &amp;#34;traces&amp;#34;,
                  &amp;#34;value&amp;#34;: { &amp;#34;stringValue&amp;#34;: &amp;#34;root&amp;#34; }
                },
                {
                  &amp;#34;key&amp;#34;: &amp;#34;attribute1&amp;#34;,
                  &amp;#34;value&amp;#34;: { &amp;#34;intValue&amp;#34;: &amp;#34;78&amp;#34; }
                },
                {
                  &amp;#34;key&amp;#34;: &amp;#34;res_attribute1&amp;#34;,
                  &amp;#34;value&amp;#34;: { &amp;#34;intValue&amp;#34;: &amp;#34;78&amp;#34; }
                }
              ]
            },
            {
              &amp;#34;body&amp;#34;: {
                &amp;#34;stringValue&amp;#34;: &amp;#34;svc=TestSvcName res_attribute1=78 tid=7bba9f33312b3dbb8b2c2c62bb7abe2d&amp;#34;
              },
              &amp;#34;attributes&amp;#34;: [
                {
                  &amp;#34;key&amp;#34;: &amp;#34;traces&amp;#34;,
                  &amp;#34;value&amp;#34;: { &amp;#34;stringValue&amp;#34;: &amp;#34;process&amp;#34; }
                },
                {
                  &amp;#34;key&amp;#34;: &amp;#34;res_attribute1&amp;#34;,
                  &amp;#34;value&amp;#34;: { &amp;#34;intValue&amp;#34;: &amp;#34;78&amp;#34; }
                }
              ]
            },
            {
              &amp;#34;body&amp;#34;: { &amp;#34;stringValue&amp;#34;: &amp;#34;span=TestSpan dur=0ns attribute1=78 svc=TestSvcName res_attribute1=78 tid=7bba9f33312b3dbb8b2c2c62bb7abe2d log.severity=INFO log.message=TestLogMessage&amp;#34; },
              &amp;#34;attributes&amp;#34;: [
                {
                  &amp;#34;key&amp;#34;: &amp;#34;traces&amp;#34;,
                  &amp;#34;value&amp;#34;: { &amp;#34;stringValue&amp;#34;: &amp;#34;event&amp;#34; }
                },
                {
                  &amp;#34;key&amp;#34;: &amp;#34;attribute1&amp;#34;,
                  &amp;#34;value&amp;#34;: { &amp;#34;intValue&amp;#34;: &amp;#34;78&amp;#34; }
                },
                {
                  &amp;#34;key&amp;#34;: &amp;#34;res_attribute1&amp;#34;,
                  &amp;#34;value&amp;#34;: { &amp;#34;intValue&amp;#34;: &amp;#34;78&amp;#34; }
                },
                {
                  &amp;#34;key&amp;#34;: &amp;#34;log.severity&amp;#34;,
                  &amp;#34;value&amp;#34;: { &amp;#34;stringValue&amp;#34;: &amp;#34;INFO&amp;#34; }
                },
                {
                  &amp;#34;key&amp;#34;: &amp;#34;log.message&amp;#34;,
                  &amp;#34;value&amp;#34;: { &amp;#34;stringValue&amp;#34;: &amp;#34;TestLogMessage&amp;#34; }
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.connector.spanlogs&lt;/code&gt; can accept arguments from the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that export &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-exporters&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;otelcol.connector.spanlogs&lt;/code&gt; has exports that can be consumed by the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that consume &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-consumers&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolconnectorspanlogs">&lt;code>otelcol.connector.spanlogs&lt;/code>&lt;/h1>
&lt;p>&lt;code>otelcol.connector.spanlogs&lt;/code> accepts traces telemetry data from other &lt;code>otelcol&lt;/code> components and outputs logs telemetry data for each span, root, or process.
This allows you to automatically build a mechanism for trace discovery.&lt;/p></description></item><item><title>otelcol.connector.spanmetrics</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.connector.spanmetrics/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.connector.spanmetrics/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolconnectorspanmetrics&#34;&gt;&lt;code&gt;otelcol.connector.spanmetrics&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;otelcol.connector.spanmetrics&lt;/code&gt; accepts span data from other &lt;code&gt;otelcol&lt;/code&gt; components and aggregates Request, Error, and Duration (R.E.D) OpenTelemetry metrics from the spans:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Request&lt;/strong&gt; counts are computed as the number of spans seen per unique set of dimensions, including Errors. Multiple metrics can be aggregated if, for instance, a user wishes to view call counts just on &lt;code&gt;service.name&lt;/code&gt; and &lt;code&gt;span.name&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Requests are tracked using a &lt;code&gt;calls&lt;/code&gt; metric with a &lt;code&gt;status.code&lt;/code&gt; datapoint attribute set to &lt;code&gt;Ok&lt;/code&gt;:&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;text&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-text&#34;&gt;calls { service.name=&amp;#34;shipping&amp;#34;, span.name=&amp;#34;get_shipping/{shippingId}&amp;#34;, span.kind=&amp;#34;SERVER&amp;#34;, status.code=&amp;#34;Ok&amp;#34; }&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Error&lt;/strong&gt; counts are computed from the number of spans with an &lt;code&gt;Error&lt;/code&gt; status code.&lt;/p&gt;
&lt;p&gt;Errors are tracked using a &lt;code&gt;calls&lt;/code&gt; metric with a &lt;code&gt;status.code&lt;/code&gt; datapoint attribute set to &lt;code&gt;Error&lt;/code&gt;:&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;text&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-text&#34;&gt;calls { service.name=&amp;#34;shipping&amp;#34;, span.name=&amp;#34;get_shipping/{shippingId}, span.kind=&amp;#34;SERVER&amp;#34;, status.code=&amp;#34;Error&amp;#34; }&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Duration&lt;/strong&gt; is computed from the difference between the span start and end times and inserted into the relevant duration histogram time bucket for each unique set dimensions.&lt;/p&gt;
&lt;p&gt;Span durations are tracked using a &lt;code&gt;duration&lt;/code&gt; histogram metric:&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;text&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-text&#34;&gt;duration { service.name=&amp;#34;shipping&amp;#34;, span.name=&amp;#34;get_shipping/{shippingId}&amp;#34;, span.kind=&amp;#34;SERVER&amp;#34;, status.code=&amp;#34;Ok&amp;#34; }&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.connector.spanmetrics&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/connector/spanmetricsconnector&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;spanmetrics&lt;/code&gt;&lt;/a&gt; connector.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.connector.spanmetrics&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.connector.spanmetrics &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  histogram {
    ...
  }

  output {
    metrics = [...]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.connector.spanmetrics&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;aggregation_temporality&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Configures whether to reset the metrics after flushing.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;CUMULATIVE&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;dimensions_cache_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;(Deprecated: use &lt;code&gt;aggregation_cardinality_limit&lt;/code&gt; instead) How many dimensions to cache.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;exclude_dimensions&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of dimensions to be excluded from the default set of dimensions.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metric_timestamp_cache_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Controls the size of a cache used to keep track of the last time a metric was flushed.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1000&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics_expiration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Time period after which metrics are considered stale and are removed from the cache.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics_flush_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How often to flush generated metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;60s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;namespace&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Metric namespace.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;traces.span.metrics&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;resource_metrics_cache_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The size of the cache holding metrics for a service.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1000&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;resource_metrics_key_attributes&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Limits the resource attributes used to create the metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;aggregation_cardinality_limit&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The maximum number of unique combinations of dimensions that will be tracked for metrics aggregation.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_instrumentation_scope&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of instrumentation scope names to include from the traces.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The supported values for &lt;code&gt;aggregation_temporality&lt;/code&gt; are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;CUMULATIVE&amp;quot;&lt;/code&gt;: The metrics won&amp;rsquo;t be reset after they&amp;rsquo;re flushed.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;DELTA&amp;quot;&lt;/code&gt;: The metrics will be reset after they&amp;rsquo;re flushed.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If &lt;code&gt;namespace&lt;/code&gt; is set, the generated metric name will be added a &lt;code&gt;namespace.&lt;/code&gt; prefix.&lt;/p&gt;
&lt;p&gt;Setting &lt;code&gt;metrics_expiration&lt;/code&gt; to &lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt; means that the metrics will never expire.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;resource_metrics_cache_size&lt;/code&gt; is mostly relevant for cumulative temporality. It helps avoid issues with increasing memory and with incorrect metric timestamp resets.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;metric_timestamp_cache_size&lt;/code&gt; is only relevant for delta temporality span metrics.
It controls the size of a cache used to keep track of the last time a metric was flushed.
When a metric is evicted from the cache, its next data point will indicate a &amp;ldquo;reset&amp;rdquo; in the series.
Downstream components converting from delta to cumulative may handle these resets by setting cumulative counters back to 0.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;resource_metrics_key_attributes&lt;/code&gt; can be used to avoid situations where resource attributes may change across service restarts, causing metric counters to break (and duplicate).
A resource doesn&amp;rsquo;t need to have all of the attributes.
The list must include enough attributes to properly identify unique resources or risk aggregating data from more than one service and span.
For example, &lt;code&gt;[&amp;quot;service.name&amp;quot;, &amp;quot;telemetry.sdk.language&amp;quot;, &amp;quot;telemetry.sdk.name&amp;quot;]&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;When the &lt;code&gt;aggregation_cardinality_limit&lt;/code&gt; limit is reached, additional unique combinations will be dropped but registered under a new entry with &lt;code&gt;otel.metric.overflow=&amp;quot;true&amp;quot;&lt;/code&gt;.
A value of &lt;code&gt;0&lt;/code&gt; means no limit is applied.&lt;/p&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.connector.spanmetrics&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 11;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#histogram\&amp;#34;\u003e\u003ccode\u003ehistogram\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the histogram derived from spans durations.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003ehistogram\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#dimension\&amp;#34;\u003e\u003ccode\u003edimension\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eSpan event attributes to add as dimensions to the duration metric, \u003cem\u003eon top of\u003c/em\u003e the default ones and the ones configured in the top-level \u003ccode\u003edimension\u003c/code\u003e block\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003ehistogram\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#explicit\&amp;#34;\u003e\u003ccode\u003eexplicit\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfiguration for a histogram with explicit buckets.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003ehistogram\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#exponential\&amp;#34;\u003e\u003ccode\u003eexponential\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfiguration for a histogram with exponential buckets.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#output\&amp;#34;\u003e\u003ccode\u003eoutput\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures where to send telemetry data.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#calls_dimension\&amp;#34;\u003e\u003ccode\u003ecalls_dimension\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eSpan event attributes to add as dimensions to the calls metric, \u003cem\u003eon top of\u003c/em\u003e the default ones and the ones configured in the top-level \u003ccode\u003edimension\u003c/code\u003e block\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#dimension\&amp;#34;\u003e\u003ccode\u003edimension\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eDimensions to be added in addition to the default ones.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#events\&amp;#34;\u003e\u003ccode\u003eevents\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the events metric.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eevents\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#dimension\&amp;#34;\u003e\u003ccode\u003edimension\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eSpan event attributes to add as dimensions to the events metric, \u003cem\u003eon top of\u003c/em\u003e the default ones and the ones configured in the top-level \u003ccode\u003edimension\u003c/code\u003e block.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#exemplars\&amp;#34;\u003e\u003ccode\u003eexemplars\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures how to attach exemplars to histograms.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#histogram&#34;&gt;&lt;code&gt;histogram&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the histogram derived from spans durations.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;histogram&lt;/code&gt; &amp;gt; &lt;a href=&#34;#dimension&#34;&gt;&lt;code&gt;dimension&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Span event attributes to add as dimensions to the duration metric, &lt;em&gt;on top of&lt;/em&gt; the default ones and the ones configured in the top-level &lt;code&gt;dimension&lt;/code&gt; block&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;histogram&lt;/code&gt; &amp;gt; &lt;a href=&#34;#explicit&#34;&gt;&lt;code&gt;explicit&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configuration for a histogram with explicit buckets.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;histogram&lt;/code&gt; &amp;gt; &lt;a href=&#34;#exponential&#34;&gt;&lt;code&gt;exponential&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configuration for a histogram with exponential buckets.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures where to send telemetry data.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#calls_dimension&#34;&gt;&lt;code&gt;calls_dimension&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Span event attributes to add as dimensions to the calls metric, &lt;em&gt;on top of&lt;/em&gt; the default ones and the ones configured in the top-level &lt;code&gt;dimension&lt;/code&gt; block&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#dimension&#34;&gt;&lt;code&gt;dimension&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Dimensions to be added in addition to the default ones.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#events&#34;&gt;&lt;code&gt;events&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the events metric.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;events&lt;/code&gt; &amp;gt; &lt;a href=&#34;#dimension&#34;&gt;&lt;code&gt;dimension&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Span event attributes to add as dimensions to the events metric, &lt;em&gt;on top of&lt;/em&gt; the default ones and the ones configured in the top-level &lt;code&gt;dimension&lt;/code&gt; block.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#exemplars&#34;&gt;&lt;code&gt;exemplars&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures how to attach exemplars to histograms.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;p&gt;You must specify either an [&lt;code&gt;exponential&lt;/code&gt;][exponential] or an [&lt;code&gt;explicit&lt;/code&gt;][explicit] block.
You can&amp;rsquo;t specify both blocks in the same configuration.&lt;/p&gt;
&lt;h3 id=&#34;histogram&#34;&gt;&lt;code&gt;histogram&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;

&lt;p&gt;The &lt;code&gt;histogram&lt;/code&gt; block configures the histogram derived from spans&amp;rsquo; durations.&lt;/p&gt;
&lt;p&gt;The following attributes are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Disable all histogram metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;unit&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Configures the histogram units.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;ms&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The supported values for &lt;code&gt;unit&lt;/code&gt; are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;ms&amp;quot;&lt;/code&gt;: milliseconds&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;s&amp;quot;&lt;/code&gt;: seconds&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;



&lt;div data-shared=&#34;reference/components/output-block-metrics.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;output&lt;/code&gt; block configures a set of components to forward resulting telemetry data to.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send metrics to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You must specify the &lt;code&gt;output&lt;/code&gt; block, but all its arguments are optional.
By default, telemetry data is dropped.
Configure the &lt;code&gt;metrics&lt;/code&gt; argument accordingly to send telemetry data to other components.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h3 id=&#34;dimension&#34;&gt;&lt;code&gt;dimension&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;dimension&lt;/code&gt; block configures dimensions to be added in addition to the default ones.&lt;/p&gt;
&lt;p&gt;The default dimensions are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;service.name&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;span.name&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;span.kind&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;status.code&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The default dimensions are always added if not listed in &lt;code&gt;exclude_dimensions&lt;/code&gt;. If no additional dimensions are specified, only the default ones will be added.&lt;/p&gt;
&lt;p&gt;The following attributes are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Span attribute or resource attribute to look up.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;default&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Value to use if the attribute is missing.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;otelcol.connector.spanmetrics&lt;/code&gt; looks for the &lt;code&gt;name&lt;/code&gt; attribute in the span&amp;rsquo;s collection of attributes.
If it&amp;rsquo;s not found, the resource attributes will be checked.&lt;/p&gt;
&lt;p&gt;If the attribute is missing in both the span and resource attributes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If &lt;code&gt;default&lt;/code&gt; isn&amp;rsquo;t set, the dimension will be omitted.&lt;/li&gt;
&lt;li&gt;If &lt;code&gt;default&lt;/code&gt; is set, the dimension will be added and its value will be set to the value of &lt;code&gt;default&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;calls_dimension&#34;&gt;&lt;code&gt;calls_dimension&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The attributes and behavior of the &lt;code&gt;calls_dimension&lt;/code&gt; block match the [&lt;code&gt;dimension&lt;/code&gt;][dimension] block.&lt;/p&gt;
&lt;h3 id=&#34;events&#34;&gt;&lt;code&gt;events&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;events&lt;/code&gt; block configures the &lt;code&gt;events&lt;/code&gt; metric, which tracks &lt;a href=&#34;https://opentelemetry.io/docs/concepts/signals/traces/#span-events&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;span events&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The following attributes are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables all events metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;At least one nested &lt;code&gt;dimension&lt;/code&gt; block is required if &lt;code&gt;enabled&lt;/code&gt; is set to &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;exemplars&#34;&gt;&lt;code&gt;exemplars&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;exemplars&lt;/code&gt; block configures how to attach exemplars to histograms.&lt;/p&gt;
&lt;p&gt;The following attributes are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Configures whether to add exemplars to histograms.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_per_data_point&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The maximum number of exemplars to attach to a single metric data point.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;5&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;max_per_data_point&lt;/code&gt; can help with reducing memory consumption.&lt;/p&gt;
&lt;h3 id=&#34;exponential&#34;&gt;&lt;code&gt;exponential&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;exponential&lt;/code&gt; block configures a histogram with exponential buckets.&lt;/p&gt;
&lt;p&gt;The following attributes are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum number of buckets per positive or negative number range.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;160&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;explicit&#34;&gt;&lt;code&gt;explicit&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;explicit&lt;/code&gt; block configures a histogram with explicit buckets.&lt;/p&gt;
&lt;p&gt;The following attributes are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;buckets&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(duration)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of histogram buckets.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[&amp;quot;2ms&amp;quot;, &amp;quot;4ms&amp;quot;, &amp;quot;6ms&amp;quot;, &amp;quot;8ms&amp;quot;, &amp;quot;10ms&amp;quot;, &amp;quot;50ms&amp;quot;, &amp;quot;100ms&amp;quot;, &amp;quot;200ms&amp;quot;, &amp;quot;400ms&amp;quot;, &amp;quot;800ms&amp;quot;, &amp;quot;1s&amp;quot;, &amp;quot;1400ms&amp;quot;, &amp;quot;2s&amp;quot;, &amp;quot;5s&amp;quot;, &amp;quot;10s&amp;quot;, &amp;quot;15s&amp;quot;]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;The following fields are exported and can be referenced by other components:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&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;code&gt;input&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A value that other components can use to send telemetry data to.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;input&lt;/code&gt; accepts &lt;code&gt;otelcol.Consumer&lt;/code&gt; traces telemetry data.
It doesn&amp;rsquo;t accept metrics and logs.&lt;/p&gt;
&lt;h2 id=&#34;handle-resource-attributes&#34;&gt;Handle resource attributes&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.connector.spanmetrics&lt;/code&gt; is an OTLP-native component.
As such, it aims to preserve the resource attributes of spans.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;For example, assume that there are two incoming resources spans with the same &lt;code&gt;service.name&lt;/code&gt; and &lt;code&gt;k8s.pod.name&lt;/code&gt; resource attributes.
&lt;div class=&#34;collapse&#34; x-data=&#34;app_collapse()&#34;&gt;
  &lt;button class=&#34;collapse-trigger&#34; @click=&#34;toggle()&#34;&gt;
    &lt;span class=&#34;body-large&#34;&gt;Example JSON of two incoming spans.&lt;/span&gt;
    &lt;span class=&#34;collapse-trigger__icon&#34; :class=&#34;{ &#39;collapse-trigger__icon-open&#39; : open }&#34;&gt;
      
  &lt;svg width=&#34;27&#34; height=&#34;26&#34; viewBox=&#34;0 0 27 26&#34; fill=&#34;none&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
&lt;path opacity=&#34;0.2&#34; d=&#34;M1.73047 12.8359C1.73047 19.4634 7.10305 24.8359 13.7305 24.8359C20.3579 24.8359 25.7305 19.4634 25.7305 12.8359C25.7305 6.20852 20.3579 0.835937 13.7305 0.835937C7.10305 0.835937 1.73047 6.20852 1.73047 12.8359Z&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;path d=&#34;M18.2344 12.8359L9.23438 12.8359&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;path d=&#34;M13.7344 8.33594L13.7344 17.3359&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;/svg&gt;


    &lt;/span&gt;
  &lt;/button&gt;
  &lt;div class=&#34;collapse-content&#34; x-ref=&#34;content&#34; hidden=&#34;until-found&#34;&gt;
    &lt;div class=&#34;collapse-content__inner&#34; x-ref=&#34;content-inner&#34;&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;JSON&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-json&#34;&gt;{
  &amp;#34;resourceSpans&amp;#34;: [
    {
      &amp;#34;resource&amp;#34;: {
        &amp;#34;attributes&amp;#34;: [
          {
            &amp;#34;key&amp;#34;: &amp;#34;service.name&amp;#34;,
            &amp;#34;value&amp;#34;: { &amp;#34;stringValue&amp;#34;: &amp;#34;TestSvcName&amp;#34; }
          },
          {
            &amp;#34;key&amp;#34;: &amp;#34;k8s.pod.name&amp;#34;,
            &amp;#34;value&amp;#34;: { &amp;#34;stringValue&amp;#34;: &amp;#34;first&amp;#34; }
          }
        ]
      },
      &amp;#34;scopeSpans&amp;#34;: [
        {
          &amp;#34;spans&amp;#34;: [
            {
              &amp;#34;trace_id&amp;#34;: &amp;#34;7bba9f33312b3dbb8b2c2c62bb7abe2d&amp;#34;,
              &amp;#34;span_id&amp;#34;: &amp;#34;086e83747d0e381e&amp;#34;,
              &amp;#34;name&amp;#34;: &amp;#34;TestSpan&amp;#34;,
              &amp;#34;attributes&amp;#34;: [
                {
                  &amp;#34;key&amp;#34;: &amp;#34;attribute1&amp;#34;,
                  &amp;#34;value&amp;#34;: { &amp;#34;intValue&amp;#34;: &amp;#34;78&amp;#34; }
                }
              ]
            }
          ]
        }
      ]
    },
    {
      &amp;#34;resource&amp;#34;: {
        &amp;#34;attributes&amp;#34;: [
          {
            &amp;#34;key&amp;#34;: &amp;#34;service.name&amp;#34;,
            &amp;#34;value&amp;#34;: { &amp;#34;stringValue&amp;#34;: &amp;#34;TestSvcName&amp;#34; }
          },
          {
            &amp;#34;key&amp;#34;: &amp;#34;k8s.pod.name&amp;#34;,
            &amp;#34;value&amp;#34;: { &amp;#34;stringValue&amp;#34;: &amp;#34;first&amp;#34; }
          }
        ]
      },
      &amp;#34;scopeSpans&amp;#34;: [
        {
          &amp;#34;spans&amp;#34;: [
            {
              &amp;#34;trace_id&amp;#34;: &amp;#34;7bba9f33312b3dbb8b2c2c62bb7abe2d&amp;#34;,
              &amp;#34;span_id&amp;#34;: &amp;#34;086e83747d0e381b&amp;#34;,
              &amp;#34;name&amp;#34;: &amp;#34;TestSpan&amp;#34;,
              &amp;#34;attributes&amp;#34;: [
                {
                  &amp;#34;key&amp;#34;: &amp;#34;attribute1&amp;#34;,
                  &amp;#34;value&amp;#34;: { &amp;#34;intValue&amp;#34;: &amp;#34;78&amp;#34; }
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;otelcol.connector.spanmetrics&lt;/code&gt; will preserve the incoming &lt;code&gt;service.name&lt;/code&gt; and &lt;code&gt;k8s.pod.name&lt;/code&gt; resource attributes by attaching them to the output metrics resource.
Only one metric resource will be created, because both span resources have identical resource attributes.
&lt;div class=&#34;collapse&#34; x-data=&#34;app_collapse()&#34;&gt;
  &lt;button class=&#34;collapse-trigger&#34; @click=&#34;toggle()&#34;&gt;
    &lt;span class=&#34;body-large&#34;&gt;Example JSON of one outgoing metric resource.&lt;/span&gt;
    &lt;span class=&#34;collapse-trigger__icon&#34; :class=&#34;{ &#39;collapse-trigger__icon-open&#39; : open }&#34;&gt;
      
  &lt;svg width=&#34;27&#34; height=&#34;26&#34; viewBox=&#34;0 0 27 26&#34; fill=&#34;none&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
&lt;path opacity=&#34;0.2&#34; d=&#34;M1.73047 12.8359C1.73047 19.4634 7.10305 24.8359 13.7305 24.8359C20.3579 24.8359 25.7305 19.4634 25.7305 12.8359C25.7305 6.20852 20.3579 0.835937 13.7305 0.835937C7.10305 0.835937 1.73047 6.20852 1.73047 12.8359Z&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;path d=&#34;M18.2344 12.8359L9.23438 12.8359&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;path d=&#34;M13.7344 8.33594L13.7344 17.3359&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;/svg&gt;


    &lt;/span&gt;
  &lt;/button&gt;
  &lt;div class=&#34;collapse-content&#34; x-ref=&#34;content&#34; hidden=&#34;until-found&#34;&gt;
    &lt;div class=&#34;collapse-content__inner&#34; x-ref=&#34;content-inner&#34;&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;JSON&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-json&#34;&gt;{
  &amp;#34;resourceMetrics&amp;#34;: [
    {
      &amp;#34;resource&amp;#34;: {
        &amp;#34;attributes&amp;#34;: [
          {
            &amp;#34;key&amp;#34;: &amp;#34;service.name&amp;#34;,
            &amp;#34;value&amp;#34;: { &amp;#34;stringValue&amp;#34;: &amp;#34;TestSvcName&amp;#34; }
          },
          {
            &amp;#34;key&amp;#34;: &amp;#34;k8s.pod.name&amp;#34;,
            &amp;#34;value&amp;#34;: { &amp;#34;stringValue&amp;#34;: &amp;#34;first&amp;#34; }
          }
        ]
      },
      &amp;#34;scopeMetrics&amp;#34;: [
        {
          &amp;#34;scope&amp;#34;: { &amp;#34;name&amp;#34;: &amp;#34;spanmetricsconnector&amp;#34; },
          &amp;#34;metrics&amp;#34;: [
            {
              &amp;#34;name&amp;#34;: &amp;#34;calls&amp;#34;,
              &amp;#34;sum&amp;#34;: {
                &amp;#34;dataPoints&amp;#34;: [
                  {
                    &amp;#34;attributes&amp;#34;: [
                      {
                        &amp;#34;key&amp;#34;: &amp;#34;service.name&amp;#34;,
                        &amp;#34;value&amp;#34;: { &amp;#34;stringValue&amp;#34;: &amp;#34;TestSvcName&amp;#34; }
                      },
                      {
                        &amp;#34;key&amp;#34;: &amp;#34;span.name&amp;#34;,
                        &amp;#34;value&amp;#34;: { &amp;#34;stringValue&amp;#34;: &amp;#34;TestSpan&amp;#34; }
                      },
                      {
                        &amp;#34;key&amp;#34;: &amp;#34;span.kind&amp;#34;,
                        &amp;#34;value&amp;#34;: { &amp;#34;stringValue&amp;#34;: &amp;#34;SPAN_KIND_UNSPECIFIED&amp;#34; }
                      },
                      {
                        &amp;#34;key&amp;#34;: &amp;#34;status.code&amp;#34;,
                        &amp;#34;value&amp;#34;: { &amp;#34;stringValue&amp;#34;: &amp;#34;STATUS_CODE_UNSET&amp;#34; }
                      }
                    ],
                    &amp;#34;startTimeUnixNano&amp;#34;: &amp;#34;1702582936761872000&amp;#34;,
                    &amp;#34;timeUnixNano&amp;#34;: &amp;#34;1702582936761872012&amp;#34;,
                    &amp;#34;asInt&amp;#34;: &amp;#34;2&amp;#34;
                  }
                ],
                &amp;#34;aggregationTemporality&amp;#34;: 2,
                &amp;#34;isMonotonic&amp;#34;: true
              }
            }
          ]
        }
      ]
    }
  ]
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Now, assume that &lt;code&gt;otelcol.connector.spanmetrics&lt;/code&gt; receives two incoming resource spans, each with a different value for the &lt;code&gt;k8s.pod.name&lt;/code&gt; recourse attribute.
&lt;div class=&#34;collapse&#34; x-data=&#34;app_collapse()&#34;&gt;
  &lt;button class=&#34;collapse-trigger&#34; @click=&#34;toggle()&#34;&gt;
    &lt;span class=&#34;body-large&#34;&gt;Example JSON of two incoming spans.&lt;/span&gt;
    &lt;span class=&#34;collapse-trigger__icon&#34; :class=&#34;{ &#39;collapse-trigger__icon-open&#39; : open }&#34;&gt;
      
  &lt;svg width=&#34;27&#34; height=&#34;26&#34; viewBox=&#34;0 0 27 26&#34; fill=&#34;none&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
&lt;path opacity=&#34;0.2&#34; d=&#34;M1.73047 12.8359C1.73047 19.4634 7.10305 24.8359 13.7305 24.8359C20.3579 24.8359 25.7305 19.4634 25.7305 12.8359C25.7305 6.20852 20.3579 0.835937 13.7305 0.835937C7.10305 0.835937 1.73047 6.20852 1.73047 12.8359Z&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;path d=&#34;M18.2344 12.8359L9.23438 12.8359&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;path d=&#34;M13.7344 8.33594L13.7344 17.3359&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;/svg&gt;


    &lt;/span&gt;
  &lt;/button&gt;
  &lt;div class=&#34;collapse-content&#34; x-ref=&#34;content&#34; hidden=&#34;until-found&#34;&gt;
    &lt;div class=&#34;collapse-content__inner&#34; x-ref=&#34;content-inner&#34;&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;JSON&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-json&#34;&gt;{
  &amp;#34;resourceSpans&amp;#34;: [
    {
      &amp;#34;resource&amp;#34;: {
        &amp;#34;attributes&amp;#34;: [
          {
            &amp;#34;key&amp;#34;: &amp;#34;service.name&amp;#34;,
            &amp;#34;value&amp;#34;: { &amp;#34;stringValue&amp;#34;: &amp;#34;TestSvcName&amp;#34; }
          },
          {
            &amp;#34;key&amp;#34;: &amp;#34;k8s.pod.name&amp;#34;,
            &amp;#34;value&amp;#34;: { &amp;#34;stringValue&amp;#34;: &amp;#34;first&amp;#34; }
          }
        ]
      },
      &amp;#34;scopeSpans&amp;#34;: [
        {
          &amp;#34;spans&amp;#34;: [
            {
              &amp;#34;trace_id&amp;#34;: &amp;#34;7bba9f33312b3dbb8b2c2c62bb7abe2d&amp;#34;,
              &amp;#34;span_id&amp;#34;: &amp;#34;086e83747d0e381e&amp;#34;,
              &amp;#34;name&amp;#34;: &amp;#34;TestSpan&amp;#34;,
              &amp;#34;attributes&amp;#34;: [
                {
                  &amp;#34;key&amp;#34;: &amp;#34;attribute1&amp;#34;,
                  &amp;#34;value&amp;#34;: { &amp;#34;intValue&amp;#34;: &amp;#34;78&amp;#34; }
                }
              ]
            }
          ]
        }
      ]
    },
    {
      &amp;#34;resource&amp;#34;: {
        &amp;#34;attributes&amp;#34;: [
          {
            &amp;#34;key&amp;#34;: &amp;#34;service.name&amp;#34;,
            &amp;#34;value&amp;#34;: { &amp;#34;stringValue&amp;#34;: &amp;#34;TestSvcName&amp;#34; }
          },
          {
            &amp;#34;key&amp;#34;: &amp;#34;k8s.pod.name&amp;#34;,
            &amp;#34;value&amp;#34;: { &amp;#34;stringValue&amp;#34;: &amp;#34;second&amp;#34; }
          }
        ]
      },
      &amp;#34;scopeSpans&amp;#34;: [
        {
          &amp;#34;spans&amp;#34;: [
            {
              &amp;#34;trace_id&amp;#34;: &amp;#34;7bba9f33312b3dbb8b2c2c62bb7abe2d&amp;#34;,
              &amp;#34;span_id&amp;#34;: &amp;#34;086e83747d0e381b&amp;#34;,
              &amp;#34;name&amp;#34;: &amp;#34;TestSpan&amp;#34;,
              &amp;#34;attributes&amp;#34;: [
                {
                  &amp;#34;key&amp;#34;: &amp;#34;attribute1&amp;#34;,
                  &amp;#34;value&amp;#34;: { &amp;#34;intValue&amp;#34;: &amp;#34;78&amp;#34; }
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;To preserve the values of all resource attributes, &lt;code&gt;otelcol.connector.spanmetrics&lt;/code&gt; will produce two resource metrics.
Each resource metric will have a different value for the &lt;code&gt;k8s.pod.name&lt;/code&gt; recourse attribute.
This way none of the resource attributes will be lost during the generation of metrics.
&lt;div class=&#34;collapse&#34; x-data=&#34;app_collapse()&#34;&gt;
  &lt;button class=&#34;collapse-trigger&#34; @click=&#34;toggle()&#34;&gt;
    &lt;span class=&#34;body-large&#34;&gt;Example JSON of two outgoing metric resources.&lt;/span&gt;
    &lt;span class=&#34;collapse-trigger__icon&#34; :class=&#34;{ &#39;collapse-trigger__icon-open&#39; : open }&#34;&gt;
      
  &lt;svg width=&#34;27&#34; height=&#34;26&#34; viewBox=&#34;0 0 27 26&#34; fill=&#34;none&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
&lt;path opacity=&#34;0.2&#34; d=&#34;M1.73047 12.8359C1.73047 19.4634 7.10305 24.8359 13.7305 24.8359C20.3579 24.8359 25.7305 19.4634 25.7305 12.8359C25.7305 6.20852 20.3579 0.835937 13.7305 0.835937C7.10305 0.835937 1.73047 6.20852 1.73047 12.8359Z&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;path d=&#34;M18.2344 12.8359L9.23438 12.8359&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;path d=&#34;M13.7344 8.33594L13.7344 17.3359&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;/svg&gt;


    &lt;/span&gt;
  &lt;/button&gt;
  &lt;div class=&#34;collapse-content&#34; x-ref=&#34;content&#34; hidden=&#34;until-found&#34;&gt;
    &lt;div class=&#34;collapse-content__inner&#34; x-ref=&#34;content-inner&#34;&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;JSON&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-json&#34;&gt;{
  &amp;#34;resourceMetrics&amp;#34;: [
    {
      &amp;#34;resource&amp;#34;: {
        &amp;#34;attributes&amp;#34;: [
          {
            &amp;#34;key&amp;#34;: &amp;#34;service.name&amp;#34;,
            &amp;#34;value&amp;#34;: { &amp;#34;stringValue&amp;#34;: &amp;#34;TestSvcName&amp;#34; }
          },
          {
            &amp;#34;key&amp;#34;: &amp;#34;k8s.pod.name&amp;#34;,
            &amp;#34;value&amp;#34;: { &amp;#34;stringValue&amp;#34;: &amp;#34;first&amp;#34; }
          }
        ]
      },
      &amp;#34;scopeMetrics&amp;#34;: [
        {
          &amp;#34;scope&amp;#34;: {
            &amp;#34;name&amp;#34;: &amp;#34;spanmetricsconnector&amp;#34;
          },
          &amp;#34;metrics&amp;#34;: [
            {
              &amp;#34;name&amp;#34;: &amp;#34;calls&amp;#34;,
              &amp;#34;sum&amp;#34;: {
                &amp;#34;dataPoints&amp;#34;: [
                  {
                    &amp;#34;attributes&amp;#34;: [
                      {
                        &amp;#34;key&amp;#34;: &amp;#34;service.name&amp;#34;,
                        &amp;#34;value&amp;#34;: { &amp;#34;stringValue&amp;#34;: &amp;#34;TestSvcName&amp;#34; }
                      },
                      {
                        &amp;#34;key&amp;#34;: &amp;#34;span.name&amp;#34;,
                        &amp;#34;value&amp;#34;: { &amp;#34;stringValue&amp;#34;: &amp;#34;TestSpan&amp;#34; }
                      },
                      {
                        &amp;#34;key&amp;#34;: &amp;#34;span.kind&amp;#34;,
                        &amp;#34;value&amp;#34;: { &amp;#34;stringValue&amp;#34;: &amp;#34;SPAN_KIND_UNSPECIFIED&amp;#34; }
                      },
                      {
                        &amp;#34;key&amp;#34;: &amp;#34;status.code&amp;#34;,
                        &amp;#34;value&amp;#34;: { &amp;#34;stringValue&amp;#34;: &amp;#34;STATUS_CODE_UNSET&amp;#34; }
                      }
                    ],
                    &amp;#34;startTimeUnixNano&amp;#34;: &amp;#34;1702582936761872000&amp;#34;,
                    &amp;#34;timeUnixNano&amp;#34;: &amp;#34;1702582936761872012&amp;#34;,
                    &amp;#34;asInt&amp;#34;: &amp;#34;1&amp;#34;
                  }
                ],
                &amp;#34;aggregationTemporality&amp;#34;: 2,
                &amp;#34;isMonotonic&amp;#34;: true
              }
            }
          ]
        }
      ]
    },
    {
      &amp;#34;resource&amp;#34;: {
        &amp;#34;attributes&amp;#34;: [
          {
            &amp;#34;key&amp;#34;: &amp;#34;service.name&amp;#34;,
            &amp;#34;value&amp;#34;: { &amp;#34;stringValue&amp;#34;: &amp;#34;TestSvcName&amp;#34; }
          },
          {
            &amp;#34;key&amp;#34;: &amp;#34;k8s.pod.name&amp;#34;,
            &amp;#34;value&amp;#34;: { &amp;#34;stringValue&amp;#34;: &amp;#34;second&amp;#34; }
          }
        ]
      },
      &amp;#34;scopeMetrics&amp;#34;: [
        {
          &amp;#34;scope&amp;#34;: {
            &amp;#34;name&amp;#34;: &amp;#34;spanmetricsconnector&amp;#34;
          },
          &amp;#34;metrics&amp;#34;: [
            {
              &amp;#34;name&amp;#34;: &amp;#34;calls&amp;#34;,
              &amp;#34;sum&amp;#34;: {
                &amp;#34;dataPoints&amp;#34;: [
                  {
                    &amp;#34;attributes&amp;#34;: [
                      {
                        &amp;#34;key&amp;#34;: &amp;#34;service.name&amp;#34;,
                        &amp;#34;value&amp;#34;: { &amp;#34;stringValue&amp;#34;: &amp;#34;TestSvcName&amp;#34; }
                      },
                      {
                        &amp;#34;key&amp;#34;: &amp;#34;span.name&amp;#34;,
                        &amp;#34;value&amp;#34;: { &amp;#34;stringValue&amp;#34;: &amp;#34;TestSpan&amp;#34; }
                      },
                      {
                        &amp;#34;key&amp;#34;: &amp;#34;span.kind&amp;#34;,
                        &amp;#34;value&amp;#34;: { &amp;#34;stringValue&amp;#34;: &amp;#34;SPAN_KIND_UNSPECIFIED&amp;#34; }
                      },
                      {
                        &amp;#34;key&amp;#34;: &amp;#34;status.code&amp;#34;,
                        &amp;#34;value&amp;#34;: { &amp;#34;stringValue&amp;#34;: &amp;#34;STATUS_CODE_UNSET&amp;#34; }
                      }
                    ],
                    &amp;#34;startTimeUnixNano&amp;#34;: &amp;#34;1702582936761872000&amp;#34;,
                    &amp;#34;timeUnixNano&amp;#34;: &amp;#34;1702582936761872012&amp;#34;,
                    &amp;#34;asInt&amp;#34;: &amp;#34;1&amp;#34;
                  }
                ],
                &amp;#34;aggregationTemporality&amp;#34;: 2,
                &amp;#34;isMonotonic&amp;#34;: true
              }
            }
          ]
        }
      ]
    }
  ]
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.connector.spanmetrics&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.connector.spanmetrics&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;examples&#34;&gt;Examples&lt;/h2&gt;
&lt;h3 id=&#34;explicit-histogram-and-extra-dimensions&#34;&gt;Explicit histogram and extra dimensions&lt;/h3&gt;
&lt;p&gt;In the example below, &lt;code&gt;http.status_code&lt;/code&gt; and &lt;code&gt;http.method&lt;/code&gt; are additional dimensions on top of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;service.name&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;span.name&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;span.kind&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;status.code&lt;/code&gt;&lt;/li&gt;
&lt;/ul&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;otelcol.receiver.otlp &amp;#34;default&amp;#34; {
  http {}
  grpc {}

  output {
    traces  = [otelcol.connector.spanmetrics.default.input]
  }
}

otelcol.connector.spanmetrics &amp;#34;default&amp;#34; {
  // Since a default is not provided, the http.status_code dimension will be omitted
  // if the span does not contain http.status_code.
  dimension {
    name = &amp;#34;http.status_code&amp;#34;
  }

  // If the span is missing http.method, the connector will insert
  // the http.method dimension with value &amp;#39;GET&amp;#39;.
  dimension {
    name = &amp;#34;http.method&amp;#34;
    default = &amp;#34;GET&amp;#34;
  }

  dimensions_cache_size = 333

  aggregation_temporality = &amp;#34;DELTA&amp;#34;

  histogram {
    unit = &amp;#34;s&amp;#34;
    explicit {
      buckets = [&amp;#34;333ms&amp;#34;, &amp;#34;777s&amp;#34;, &amp;#34;999h&amp;#34;]
    }
  }

  // The period on which all metrics (whose dimension keys remain in cache) will be emitted.
  metrics_flush_interval = &amp;#34;33s&amp;#34;

  namespace = &amp;#34;test.namespace&amp;#34;

  output {
    metrics = [otelcol.exporter.otlphttp.production.input]
  }
}

otelcol.exporter.otlphttp &amp;#34;production&amp;#34; {
  client {
    endpoint = sys.env(&amp;#34;OTLP_SERVER_ENDPOINT&amp;#34;)
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;send-metrics-via-a-prometheus-remote-write&#34;&gt;Send metrics via a Prometheus remote write&lt;/h3&gt;
&lt;p&gt;The generated metrics can be sent to a Prometheus-compatible database such as Grafana Mimir.
However, extra steps are required to make sure all metric samples are received.
This is because &lt;code&gt;otelcol.connector.spanmetrics&lt;/code&gt; aims to &lt;a href=&#34;#handle-resource-attributes&#34;&gt;preserve resource attributes&lt;/a&gt; in the metrics which it outputs.&lt;/p&gt;
&lt;p&gt;Unfortunately, the &lt;a href=&#34;https://prometheus.io/docs/concepts/data_model/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Prometheus data model&lt;/a&gt; has no notion of resource attributes.
This means that if &lt;code&gt;otelcol.connector.spanmetrics&lt;/code&gt; outputs metrics with identical metric attributes, but different resource attributes, &lt;code&gt;otelcol.exporter.prometheus&lt;/code&gt; converts the metrics into the same metric series.
This problem can be solved by doing &lt;strong&gt;either&lt;/strong&gt; of the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Recommended approach:&lt;/strong&gt; Prior to &lt;code&gt;otelcol.connector.spanmetrics&lt;/code&gt;, remove all resource attributes from the incoming spans which aren&amp;rsquo;t needed by &lt;code&gt;otelcol.connector.spanmetrics&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&#34;collapse&#34; x-data=&#34;app_collapse()&#34;&gt;
  &lt;button class=&#34;collapse-trigger&#34; @click=&#34;toggle()&#34;&gt;
    &lt;span class=&#34;body-large&#34;&gt;Example configuration to remove unnecessary resource attributes.&lt;/span&gt;
    &lt;span class=&#34;collapse-trigger__icon&#34; :class=&#34;{ &#39;collapse-trigger__icon-open&#39; : open }&#34;&gt;
      
  &lt;svg width=&#34;27&#34; height=&#34;26&#34; viewBox=&#34;0 0 27 26&#34; fill=&#34;none&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
&lt;path opacity=&#34;0.2&#34; d=&#34;M1.73047 12.8359C1.73047 19.4634 7.10305 24.8359 13.7305 24.8359C20.3579 24.8359 25.7305 19.4634 25.7305 12.8359C25.7305 6.20852 20.3579 0.835937 13.7305 0.835937C7.10305 0.835937 1.73047 6.20852 1.73047 12.8359Z&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;path d=&#34;M18.2344 12.8359L9.23438 12.8359&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;path d=&#34;M13.7344 8.33594L13.7344 17.3359&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;/svg&gt;


    &lt;/span&gt;
  &lt;/button&gt;
  &lt;div class=&#34;collapse-content&#34; x-ref=&#34;content&#34; hidden=&#34;until-found&#34;&gt;
    &lt;div class=&#34;collapse-content__inner&#34; x-ref=&#34;content-inner&#34;&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;otelcol.receiver.otlp &amp;#34;default&amp;#34; {
  http {}
  grpc {}

  output {
    traces  = [otelcol.processor.transform.default.input]
  }
}

// Remove all resource attributes except the ones which
// the otelcol.connector.spanmetrics needs.
// If this is not done, otelcol.exporter.prometheus may fail to
// write some samples due to an &amp;#34;err-mimir-sample-duplicate-timestamp&amp;#34; error.
// This is because the spanmetricsconnector will create a new
// metrics resource scope for each traces resource scope.
otelcol.processor.transform &amp;#34;default&amp;#34; {
  error_mode = &amp;#34;ignore&amp;#34;

  trace_statements {
    context = &amp;#34;resource&amp;#34;
    statements = [
      // We keep only the &amp;#34;service.name&amp;#34; and &amp;#34;special.attr&amp;#34; resource attributes,
      // because they are the only ones which otelcol.connector.spanmetrics needs.
      //
      // There is no need to list &amp;#34;span.name&amp;#34;, &amp;#34;span.kind&amp;#34;, and &amp;#34;status.code&amp;#34;
      // here because they are properties of the span (and not resource attributes):
      // https://github.com/open-telemetry/opentelemetry-proto/blob/v1.0.0/opentelemetry/proto/trace/v1/trace.proto
      `keep_keys(attributes, [&amp;#34;service.name&amp;#34;, &amp;#34;special.attr&amp;#34;])`,
    ]
  }

  output {
    traces  = [otelcol.connector.spanmetrics.default.input]
  }
}

otelcol.connector.spanmetrics &amp;#34;default&amp;#34; {
  histogram {
    explicit {}
  }

  dimension {
    name = &amp;#34;special.attr&amp;#34;
  }
  output {
    metrics = [otelcol.exporter.prometheus.default.input]
  }
}

otelcol.exporter.prometheus &amp;#34;default&amp;#34; {
  forward_to = [prometheus.remote_write.mimir.receiver]
}

prometheus.remote_write &amp;#34;mimir&amp;#34; {
  endpoint {
    url = &amp;#34;http://mimir:9009/api/v1/push&amp;#34;
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Or, after &lt;code&gt;otelcol.connector.spanmetrics&lt;/code&gt;, copy each of the resource attributes as a metric datapoint attribute.
This has the advantage that the resource attributes will be visible as metric labels.
However, the &lt;span class=&#34;term&#34; x-data=&#34;app_term(&#39;cardinality&#39;, `The total combination of key/value pairs, such as labels and label values for a given metric series or log stream, and how many unique combinations they generate.`)&#34; x-init=&#34;init()&#34; :class=&#34;{ &#39;term-hover&#39; : open }&#34;&gt;&lt;span x-ref=&#34;tooltip&#34;&gt;cardinality&lt;/span&gt;&lt;/span&gt; of the metrics may be much higher, which could increase the cost of storing and querying them.
The example below uses the &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.147.0/pkg/ottl/ottlfuncs/README.md#merge_maps&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;merge_maps&lt;/code&gt;&lt;/a&gt; OTTL function.&lt;/p&gt;
&lt;div class=&#34;collapse&#34; x-data=&#34;app_collapse()&#34;&gt;
  &lt;button class=&#34;collapse-trigger&#34; @click=&#34;toggle()&#34;&gt;
    &lt;span class=&#34;body-large&#34;&gt;Example configuration to add all resource attributes as metric datapoint attributes.&lt;/span&gt;
    &lt;span class=&#34;collapse-trigger__icon&#34; :class=&#34;{ &#39;collapse-trigger__icon-open&#39; : open }&#34;&gt;
      
  &lt;svg width=&#34;27&#34; height=&#34;26&#34; viewBox=&#34;0 0 27 26&#34; fill=&#34;none&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
&lt;path opacity=&#34;0.2&#34; d=&#34;M1.73047 12.8359C1.73047 19.4634 7.10305 24.8359 13.7305 24.8359C20.3579 24.8359 25.7305 19.4634 25.7305 12.8359C25.7305 6.20852 20.3579 0.835937 13.7305 0.835937C7.10305 0.835937 1.73047 6.20852 1.73047 12.8359Z&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;path d=&#34;M18.2344 12.8359L9.23438 12.8359&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;path d=&#34;M13.7344 8.33594L13.7344 17.3359&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;/svg&gt;


    &lt;/span&gt;
  &lt;/button&gt;
  &lt;div class=&#34;collapse-content&#34; x-ref=&#34;content&#34; hidden=&#34;until-found&#34;&gt;
    &lt;div class=&#34;collapse-content__inner&#34; x-ref=&#34;content-inner&#34;&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;otelcol.receiver.otlp &amp;#34;default&amp;#34; {
  http {}
  grpc {}

  output {
    traces  = [otelcol.connector.spanmetrics.default.input]
  }
}

otelcol.connector.spanmetrics &amp;#34;default&amp;#34; {
  histogram {
    explicit {}
  }

  dimension {
    name = &amp;#34;special.attr&amp;#34;
  }
  output {
    metrics = [otelcol.processor.transform.default.input]
  }
}

// Insert resource attributes as metric data point attributes.
otelcol.processor.transform &amp;#34;default&amp;#34; {
  error_mode = &amp;#34;ignore&amp;#34;

  metric_statements {
    context = &amp;#34;datapoint&amp;#34;
    statements = [
      // &amp;#34;insert&amp;#34; means that a metric datapoint attribute will be inserted
      // only if an attribute with the same key does not already exist.
      `merge_maps(attributes, resource.attributes, &amp;#34;insert&amp;#34;)`,
    ]
  }

  output {
    metrics = [otelcol.exporter.prometheus.default.input]
  }
}

otelcol.exporter.prometheus &amp;#34;default&amp;#34; {
  forward_to = [prometheus.remote_write.mimir.receiver]
}

prometheus.remote_write &amp;#34;mimir&amp;#34; {
  endpoint {
    url = &amp;#34;http://mimir:9009/api/v1/push&amp;#34;
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If the resource attributes aren&amp;rsquo;t treated in either of the ways described above, an error such as this one could be logged by &lt;code&gt;prometheus.remote_write&lt;/code&gt;:
&lt;code&gt;the sample has been rejected because another sample with the same timestamp, but a different value, has already been ingested (err-mimir-sample-duplicate-timestamp)&lt;/code&gt;.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;In order for a Prometheus &lt;code&gt;target_info&lt;/code&gt; metric to be generated, the incoming spans resource scope
attributes must contain &lt;code&gt;service.name&lt;/code&gt; and &lt;code&gt;service.instance.id&lt;/code&gt; attributes.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;target_info&lt;/code&gt; metric will be generated for each resource scope, while OpenTelemetry
metric names and attributes will be normalized to be compliant with Prometheus naming rules.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h2 id=&#34;troubleshoot-high-cardinality-span-metrics&#34;&gt;Troubleshoot high cardinality span metrics&lt;/h2&gt;
&lt;p&gt;High cardinality issues in span metrics commonly manifest in APM dashboards as an excessive number of service operations with non-unique names.
Examples include URIs with unique identifiers such as &lt;code&gt;GET /product/1YMWWN1N4O&lt;/code&gt; or HTTP parameters with random values such as &lt;code&gt;GET /?_ga=GA1.2.569539246.1760114706&lt;/code&gt;.
These patterns render operation lists difficult to interpret and ineffective for monitoring purposes.&lt;/p&gt;
&lt;p&gt;This issue stems from violations of &lt;a href=&#34;https://opentelemetry.io/docs/specs/semconv/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;OpenTelemetry semantic conventions&lt;/a&gt;, which require span names to have low &lt;span class=&#34;term&#34; x-data=&#34;app_term(&#39;cardinality&#39;, `The total combination of key/value pairs, such as labels and label values for a given metric series or log stream, and how many unique combinations they generate.`)&#34; x-init=&#34;init()&#34; :class=&#34;{ &#39;term-hover&#39; : open }&#34;&gt;&lt;span x-ref=&#34;tooltip&#34;&gt;cardinality&lt;/span&gt;&lt;/span&gt;.
Refer to &lt;a href=&#34;https://opentelemetry.io/docs/specs/semconv/http/http-spans/#name&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;HTTP span name specs&lt;/a&gt; for more information.
Beyond degrading APM interfaces with numerous non-meaningful operation names, this problem causes metric time series explosion, resulting in significant performance degradation and increased costs.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;otelcol.connector.spanmetrics&lt;/code&gt; provides an optional circuit breaker through the &lt;code&gt;aggregation_cardinality_limit&lt;/code&gt; attribute, disabled by default, to mitigate cardinality explosion.
While this feature addresses performance and cost concerns, it doesn&amp;rsquo;t resolve the underlying issue of semantically meaningless operation names.&lt;/p&gt;
&lt;h3 id=&#34;fix-high-cardinality-span-name-issues&#34;&gt;Fix high cardinality span name issues&lt;/h3&gt;
&lt;p&gt;The ideal long-term solution is to modify the OpenTelemetry instrumentation code to comply with semantic conventions.
This prevents the generation of non-compliant high cardinality span names.&lt;/p&gt;
&lt;p&gt;However, deploying updated instrumentation libraries can be time-consuming.
You often need an immediate interim solution to restore observability backend functionality.&lt;/p&gt;
&lt;h4 id=&#34;address-high-cardinality-span-names-in-the-ingestion-pipeline&#34;&gt;Address high cardinality span names in the ingestion pipeline&lt;/h4&gt;
&lt;p&gt;An effective short-term solution is to implement a layer that sanitizes span names within the observability ingestion pipeline.
You can use &lt;code&gt;otelcol.processor.transform&lt;/code&gt;&amp;rsquo;s &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/processor/transformprocessor#set_semconv_span_name&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;set_semconv_span_name()&lt;/code&gt; function&lt;/a&gt; immediately before &lt;code&gt;otelcol.connector.spanmetrics&lt;/code&gt; to enforce semantic conventions on span names.&lt;/p&gt;
&lt;div class=&#34;collapse&#34; x-data=&#34;app_collapse()&#34;&gt;
  &lt;button class=&#34;collapse-trigger&#34; @click=&#34;toggle()&#34;&gt;
    &lt;span class=&#34;body-large&#34;&gt;Simple example configuration to prevent span metrics cardinality explosion&lt;/span&gt;
    &lt;span class=&#34;collapse-trigger__icon&#34; :class=&#34;{ &#39;collapse-trigger__icon-open&#39; : open }&#34;&gt;
      
  &lt;svg width=&#34;27&#34; height=&#34;26&#34; viewBox=&#34;0 0 27 26&#34; fill=&#34;none&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
&lt;path opacity=&#34;0.2&#34; d=&#34;M1.73047 12.8359C1.73047 19.4634 7.10305 24.8359 13.7305 24.8359C20.3579 24.8359 25.7305 19.4634 25.7305 12.8359C25.7305 6.20852 20.3579 0.835937 13.7305 0.835937C7.10305 0.835937 1.73047 6.20852 1.73047 12.8359Z&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;path d=&#34;M18.2344 12.8359L9.23438 12.8359&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;path d=&#34;M13.7344 8.33594L13.7344 17.3359&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;/svg&gt;


    &lt;/span&gt;
  &lt;/button&gt;
  &lt;div class=&#34;collapse-content&#34; x-ref=&#34;content&#34; hidden=&#34;until-found&#34;&gt;
    &lt;div class=&#34;collapse-content__inner&#34; x-ref=&#34;content-inner&#34;&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;otelcol.receiver.otlp &amp;#34;default&amp;#34; {
  http {}
  grpc {}

  output {
    traces = [otelcol.processor.transform.sanitize_spans.input]
  }
}

otelcol.processor.transform &amp;#34;sanitize_spans&amp;#34; {
  error_mode = &amp;#34;ignore&amp;#34;

  trace_statements {
    context = &amp;#34;span&amp;#34;
    statements = [
      // Sanitize all span names to prevent span metrics cardinality explosion
      // caused by non-compliant high cardinality span names
      `set_semconv_span_name(&amp;#34;1.37.0&amp;#34;)`,
    ]
  }

  output {
    traces = [otelcol.connector.spanmetrics.default.input]
  }
}

otelcol.connector.spanmetrics &amp;#34;default&amp;#34; {
  histogram {
    explicit {}
  }

  output {
    metrics = [otelcol.exporter.otlphttp.observability_backend.input]
  }
}

otelcol.exporter.otlphttp &amp;#34;observability_backend&amp;#34; {
  client {
    endpoint = sys.env(&amp;#34;OTLP_SERVER_ENDPOINT&amp;#34;)
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Aggressive span name cleanup may be overly restrictive for instrumentation libraries with incomplete resource attributes.
For instance, the cleanup may reduce HTTP service operations to generic names like &lt;code&gt;GET&lt;/code&gt; and &lt;code&gt;POST&lt;/code&gt; when HTTP spans lack the &lt;code&gt;http.route&lt;/code&gt; attribute.
This information loss can impact the monitoring of critical business operations.&lt;/p&gt;
&lt;p&gt;To preserve operation granularity, you can manually set the &lt;code&gt;http.route&lt;/code&gt; attribute when you need detailed operation names.
You can typically derive the missing &lt;code&gt;http.route&lt;/code&gt; value through pattern matching on other span attributes such as &lt;code&gt;http.target&lt;/code&gt; or &lt;code&gt;url.full&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The following example configuration prevents cardinality explosion while preserving meaningful operation names on a service &lt;code&gt;webshop/frontend&lt;/code&gt;:&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;otelcol.receiver.otlp &amp;#34;default&amp;#34; {
  http {}
  grpc {}

  output {
    traces = [otelcol.processor.transform.sanitize_spans.input]
  }
}

// Sanitize spans to prevent span metrics cardinality explosion caused by
// non-compliant high cardinality span names:
// 1. Fix incomplete semconv of critical operation spans to keep meaningful
//    span metrics operation names, adding missing `http.route` and
//    `http.request.method`.
// 2. Sanitize all span names, note that http server spans lacking
//    `http.route` will default to operations `GET`, `POST`, etc.
otelcol.processor.transform &amp;#34;sanitize_spans&amp;#34; {
  error_mode = &amp;#34;ignore&amp;#34;

  // 1. Fix incomplete semconv on the critical http operations of the `frontend` service
  trace_statements {
    context    = &amp;#34;span&amp;#34;
    conditions = [
      `span.kind == SPAN_KIND_SERVER and resource.attributes[&amp;#34;service.name&amp;#34;] == &amp;#34;frontend&amp;#34; and resource.attributes[&amp;#34;service.namespace&amp;#34;] == &amp;#34;webshop&amp;#34; and span.attributes[&amp;#34;http.route&amp;#34;] == nil`,
    ]
    statements = [
      // e.g. /api/checkout
      `set(span.attributes[&amp;#34;http.route&amp;#34;], &amp;#34;/api/checkout&amp;#34;) where IsMatch(span.attributes[&amp;#34;http.target&amp;#34;], &amp;#34;\\/api\\/checkout&amp;#34;)`,
      // e.g. /api/products/1YMWWN1N4O
      `set(span.attributes[&amp;#34;http.route&amp;#34;], &amp;#34;/api/products/{productId}&amp;#34;) where IsMatch(span.attributes[&amp;#34;http.target&amp;#34;], &amp;#34;\\/api\\/products\\/.*&amp;#34;)`,
    ]
  }

  // 1. Fix incomplete semconv on the critical http operations of other services...

  // 2. Sanitize all span names to prevent span metrics cardinality explosion.
  //    Unsanitized span names, when different, are kept in the `unsanitized_span_name` attribute
  trace_statements {
    context = &amp;#34;span&amp;#34;
    statements = [
      `set_semconv_span_name(&amp;#34;1.37.0&amp;#34;, &amp;#34;unsanitized_span_name&amp;#34;)`,
    ]
  }

  output {
    traces = [otelcol.connector.spanmetrics.default.input]
  }
}

otelcol.connector.spanmetrics &amp;#34;default&amp;#34; {
  histogram {
    explicit {}
  }

  output {
    metrics = [otelcol.exporter.otlphttp.observability_backend.input]
  }
}

otelcol.exporter.otlphttp &amp;#34;observability_backend&amp;#34; {
  client {
    endpoint = sys.env(&amp;#34;OTLP_SERVER_ENDPOINT&amp;#34;)
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h4 id=&#34;address-high-cardinality-span-names-in-the-instrumentation-code&#34;&gt;Address high cardinality span names in the instrumentation code&lt;/h4&gt;
&lt;p&gt;The preferred long-term solution is to ensure span names and attributes comply with &lt;a href=&#34;https://opentelemetry.io/docs/specs/semconv/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;OpenTelemetry Semantic Conventions&lt;/a&gt; directly in the instrumentation code.&lt;/p&gt;
&lt;p&gt;Custom web frameworks are a common source of high cardinality span names.
While default OpenTelemetry instrumentation, for example, Java Servlet, may assign generic span names like &lt;code&gt;GET /my-web-fwk/*&lt;/code&gt;, your framework has access to more specific routing information.
Overwrite span attributes in your framework code to create compliant, low-cardinality span names that preserve operational granularity.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Example: Custom Web Framework in Java&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Consider a custom web framework that intercepts the generic route &lt;code&gt;/my-web-fwk/*&lt;/code&gt; and dispatches requests like &lt;code&gt;/my-web-fwk/product/123456ABCD&lt;/code&gt; or &lt;code&gt;/my-web-fwk/user/john.doe&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The default Java Servlet instrumentation produces vague span names (&lt;code&gt;GET /my-web-fwk/*&lt;/code&gt;), while directly using request URIs creates high cardinality (&lt;code&gt;GET /my-web-fwk/product/123456ABCD&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;The solution is to override span attributes with templated route patterns like &lt;code&gt;/my-web-fwk/product/{productId}&lt;/code&gt; or &lt;code&gt;/my-web-fwk/user/{userId}&lt;/code&gt;:&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;java&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-java&#34;&gt;@WebServlet(urlPatterns = &amp;#34;/my-web-fwk/*&amp;#34;)
public class MyWebFrameworkServlet extends HttpServlet {

    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // Default Servlet instrumentation sets vague span names: `GET /my-web-fwk/*` (and `http.route=/my-web-fwk/*`)
        // Using the request URI directly would cause high cardinality and violate semantic conventions
        // Instead, use the framework&amp;#39;s low-cardinality routing information below

        // Example routing logic
        String uri = request.getRequestURI();
        MyWebOperation myWebOperation = getWebOperation(uri);

        // Fix span details to add details while complying with semantic conventions and maintaining low cardinality
        String httpRoute = &amp;#34;/my-web-fwk/&amp;#34; &amp;#43; myWebOperation.getSubHttpRoute();
        Span.current().setAttribute(HttpAttributes.HTTP_ROUTE, httpRoute);
        Span.current().updateName(request.getMethod() &amp;#43; &amp;#34; &amp;#34; &amp;#43; httpRoute);

        // execute the web operation
        myWebOperation.execute(request, response);
    }
    ...
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.connector.spanmetrics&lt;/code&gt; can accept arguments from the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that export &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-exporters&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;otelcol.connector.spanmetrics&lt;/code&gt; has exports that can be consumed by the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that consume &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-consumers&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolconnectorspanmetrics">&lt;code>otelcol.connector.spanmetrics&lt;/code>&lt;/h1>
&lt;p>&lt;code>otelcol.connector.spanmetrics&lt;/code> accepts span data from other &lt;code>otelcol&lt;/code> components and aggregates Request, Error, and Duration (R.E.D) OpenTelemetry metrics from the spans:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Request&lt;/strong> counts are computed as the number of spans seen per unique set of dimensions, including Errors. Multiple metrics can be aggregated if, for instance, a user wishes to view call counts just on &lt;code>service.name&lt;/code> and &lt;code>span.name&lt;/code>.&lt;/p></description></item><item><title>otelcol.exporter.awss3</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.exporter.awss3/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.exporter.awss3/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolexporterawss3&#34;&gt;&lt;code&gt;otelcol.exporter.awss3&lt;/code&gt;&lt;/h1&gt;


&lt;div data-shared=&#34;stability/experimental.md&#34;&gt;
            &lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;EXPERIMENTAL&lt;/strong&gt;: This is an &lt;a href=&#34;/docs/release-life-cycle/&#34;&gt;experimental&lt;/a&gt; component.
Experimental components are subject to frequent breaking changes, and may be removed with no equivalent replacement.
To enable and use an experimental component, you must set the &lt;code&gt;stability.level&lt;/code&gt; 
    &lt;a href=&#34;/docs/alloy/v1.15/reference/cli/run/&#34;&gt;flag&lt;/a&gt; to &lt;code&gt;experimental&lt;/code&gt;.&lt;/p&gt;&lt;/blockquote&gt;
&lt;/div&gt;

        
&lt;p&gt;&lt;code&gt;otelcol.exporter.awss3&lt;/code&gt; accepts telemetry data from other &lt;code&gt;otelcol&lt;/code&gt; components and writes them to an AWS S3 bucket.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.exporter.awss3&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/exporter/awss3exporter&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;awss3&lt;/code&gt;&lt;/a&gt; exporter.
Bug reports or feature requests will be redirected to the upstream repository if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.exporter.awss3&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.exporter.awss3 &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  s3_uploader {
    region = &amp;#34;&amp;lt;AWS_REGION&amp;gt;&amp;#34;
    s3_bucket = &amp;#34;&amp;lt;S3_BUCKET_NAME&amp;gt;&amp;#34;
    s3_prefix = &amp;#34;&amp;lt;PREFIX_FOR_S3_KEY&amp;gt;&amp;#34;
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following argument with &lt;code&gt;otelcol.exporter.awss3&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Time to wait before marking a request as failed.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;5s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.exporter.awss3&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 6;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#s3_uploader\&amp;#34;\u003e\u003ccode\u003es3_uploader\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the AWS S3 bucket details to send telemetry data to.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#marshaler\&amp;#34;\u003e\u003ccode\u003emarshaler\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eMarshaler used to produce output data.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#resource_attrs_to_s3-block\&amp;#34;\u003e\u003ccode\u003eresource_attrs_to_s3\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the mapping of S3 configuration values to resource attribute values for uploading operations.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#sending_queue\&amp;#34;\u003e\u003ccode\u003esending_queue\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures batching of data before sending.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003esending_queue\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#batch\&amp;#34;\u003e\u003ccode\u003ebatch\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures batching requests based on a timeout and a minimum number of items.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#s3_uploader&#34;&gt;&lt;code&gt;s3_uploader&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the AWS S3 bucket details to send telemetry data to.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#marshaler&#34;&gt;&lt;code&gt;marshaler&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Marshaler used to produce output data.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#resource_attrs_to_s3-block&#34;&gt;&lt;code&gt;resource_attrs_to_s3&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the mapping of S3 configuration values to resource attribute values for uploading operations.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#sending_queue&#34;&gt;&lt;code&gt;sending_queue&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures batching of data before sending.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sending_queue&lt;/code&gt; &amp;gt; &lt;a href=&#34;#batch&#34;&gt;&lt;code&gt;batch&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures batching requests based on a timeout and a minimum number of items.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;s3_uploader&#34;&gt;&lt;code&gt;s3_uploader&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;

&lt;p&gt;The &lt;code&gt;s3_uploader&lt;/code&gt; block configures the AWS S3 bucket details used by the component.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;s3_bucket&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The S3 bucket.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;s3_prefix&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Prefix for the S3 key (directory inside the bucket), appended to &lt;code&gt;s3_base_prefix&lt;/code&gt; if provided.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;acl&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The canned ACL to use when uploading objects.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;private&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;compression&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;File compression method, &lt;code&gt;none&lt;/code&gt; or &lt;code&gt;gzip&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;none&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_ssl&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Set this to &lt;code&gt;true&lt;/code&gt; to disable SSL when sending requests.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Overrides the endpoint used by the exporter instead of constructing it from &lt;code&gt;region&lt;/code&gt; and &lt;code&gt;s3_bucket&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;file_prefix&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The file prefix defined by the user.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&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;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The AWS region.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;us-east-1&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;retry_max_attempts&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The max number of attempts for retrying a request.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;3&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;retry_max_backoff&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The max backoff delay that can occur before retrying a request.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;20s&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;retry_mode&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The retryer implementation.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;standard&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;role_arn&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The Role ARN to be assumed.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;s3_base_prefix&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Prefix for the S3 key (root directory inside the bucket).&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;s3_force_path_style&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Set this to &lt;code&gt;true&lt;/code&gt; to force the request to use &lt;a href=&#34;https://docs.aws.amazon.com/AmazonS3/latest/userguide/VirtualHosting.html#path-style-access&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;path-style requests&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;s3_partition_format&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Filepath formatting for the partition; Refer to &lt;a href=&#34;https://www.man7.org/linux/man-pages/man3/strftime.3.html&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;strftime&lt;/code&gt;&lt;/a&gt; for format specification.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;year=%Y/month=%m/day=%d/hour=%H/minute=%M&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;s3_partition_timezone&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Timezone used for partition time. Local timezone is used if not configured.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;storage_class&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The storage class to use when uploading objects.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;STANDARD&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;retry_mode&lt;/code&gt; must be one of &lt;code&gt;standard&lt;/code&gt;, &lt;code&gt;adaptive&lt;/code&gt;, or &lt;code&gt;nop&lt;/code&gt;.
If &lt;code&gt;retry_mode&lt;/code&gt; is set to &lt;code&gt;nop&lt;/code&gt;, the &lt;code&gt;aws.NopRetryer&lt;/code&gt; implementation effectively disables the retry.
Setting &lt;code&gt;retry_max_attempts&lt;/code&gt; to 0 will allow the SDK to retry all retryable errors until the request succeeds, or a non-retryable error is returned.&lt;/p&gt;
&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h3 id=&#34;marshaler&#34;&gt;&lt;code&gt;marshaler&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;Marshaler determines the format of data sent to AWS S3. Currently, the following marshalers are implemented:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;otlp_json&lt;/code&gt; (default): the &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-proto&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;OpenTelemetry Protocol format&lt;/a&gt;, represented as JSON.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;otlp_proto&lt;/code&gt;: the &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-proto&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;OpenTelemetry Protocol format&lt;/a&gt;, represented as Protocol Buffers.
A single protobuf message is written into each object.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sumo_ic&lt;/code&gt;: the &lt;a href=&#34;https://help.sumologic.com/docs/manage/data-archiving/archive/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Sumo Logic Installed Collector Archive format&lt;/a&gt;.
&lt;strong&gt;This format is supported only for logs.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;body&lt;/code&gt;: export the log body as string.
&lt;strong&gt;This format is supported only for logs.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;type&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Marshaler used to produce output data.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;otlp_json&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;sending_queue&#34;&gt;&lt;code&gt;sending_queue&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;sending_queue&lt;/code&gt; block configures queueing and batching for the exporter.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-queue-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;block_on_overflow&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The behavior when the component&amp;rsquo;s &lt;code&gt;TotalSize&lt;/code&gt; limit is reached.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables a buffer before sending data to the client.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;num_consumers&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Number of readers to send batches written to the queue in parallel.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;queue_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum number of unwritten batches allowed in the queue at the same time.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1000&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sizer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How the queue and batching is measured.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;requests&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;wait_for_result&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Determines if incoming requests are blocked until the request is processed or not.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;storage&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;capsule(otelcol.Handler)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Handler from an &lt;code&gt;otelcol.storage&lt;/code&gt; component to use to enable a persistent queue mechanism.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;code&gt;blocking&lt;/code&gt; argument is deprecated in favor of the &lt;code&gt;block_on_overflow&lt;/code&gt; argument.&lt;/p&gt;
&lt;p&gt;When &lt;code&gt;block_on_overflow&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;, the component will wait for space. Otherwise, operations will immediately return a retryable error.&lt;/p&gt;
&lt;p&gt;When &lt;code&gt;enabled&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;, data is first written to an in-memory buffer before sending it to the configured server.
Batches sent to the component&amp;rsquo;s &lt;code&gt;input&lt;/code&gt; exported field are added to the buffer as long as the number of unsent batches doesn&amp;rsquo;t exceed the configured &lt;code&gt;queue_size&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;queue_size&lt;/code&gt; determines how long an endpoint outage is tolerated.
Assuming 100 requests/second, the default queue size &lt;code&gt;1000&lt;/code&gt; provides about 10 seconds of outage tolerance.
To calculate the correct value for &lt;code&gt;queue_size&lt;/code&gt;, multiply the average number of outgoing requests per second by the time in seconds that outages are tolerated. A very high value can cause Out Of Memory (OOM) kills.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;sizer&lt;/code&gt; argument could be set to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;requests&lt;/code&gt;: number of incoming batches of metrics, logs, traces (the most performant option).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;items&lt;/code&gt;: number of the smallest parts of each signal (spans, metric data points, log records).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bytes&lt;/code&gt;: the size of serialized data in bytes (the least performant option).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The &lt;code&gt;num_consumers&lt;/code&gt; argument controls how many readers read from the buffer and send data in parallel.
Larger values of &lt;code&gt;num_consumers&lt;/code&gt; allow data to be sent more quickly at the expense of increased network traffic.&lt;/p&gt;
&lt;p&gt;If an &lt;code&gt;otelcol.storage.*&lt;/code&gt; component is configured and provided in the queue&amp;rsquo;s &lt;code&gt;storage&lt;/code&gt; argument, the queue uses the
provided storage extension to provide a persistent queue and the queue is no longer stored in memory.
Any data persisted will be processed on startup if Alloy is killed or restarted.
Refer to the 
    &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector/blob/v0.147.0/exporter/exporterhelper/README.md#persistent-queue&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;exporterhelper documentation&lt;/a&gt; in the OpenTelemetry Collector repository for more details.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;batch&#34;&gt;&lt;code&gt;batch&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;batch&lt;/code&gt; block configures batching requests based on a timeout and a minimum number of items.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-queue-batch-block.md&#34;&gt;
            &lt;p&gt;Batching is disabled by default.
To enable it, explicitly include &lt;code&gt;batch {}&lt;/code&gt; in your Alloy configuration.
You do not need to include a &lt;code&gt;batch {}&lt;/code&gt; block in your &lt;code&gt;otelcol.exporter&lt;/code&gt; if you already use a &lt;code&gt;otelcol.processor.batch&lt;/code&gt; component,
although batching in the exporter is the preferred method because it is more flexible.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;flush_timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Time after which a batch will be sent regardless of its size. Must be a non-zero value.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;200ms&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;min_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The minimum size of a batch.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;2000&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The maximum size of a batch, enables batch splitting.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;3000&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sizer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How the queue and batching is measured. Overrides the sizer set at the &lt;code&gt;sending_queue&lt;/code&gt; level for batching.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;items&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If configured, &lt;code&gt;max_size&lt;/code&gt; must be greater than or equal to &lt;code&gt;min_size&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;sizer&lt;/code&gt; argument can be set to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;items&lt;/code&gt;: The number of the smallest parts of each span, metric data point, or log record.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bytes&lt;/code&gt;: the size of serialized data in bytes (the least performant option).&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;resource_attrs_to_s3-block&#34;&gt;resource_attrs_to_s3 block&lt;/h3&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;s3_bucket&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Configures which resource attribute&amp;rsquo;s value should be used as the S3 prefix.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;s3_prefix&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Configures which resource attribute&amp;rsquo;s value should be used as the S3 bucket.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;When &lt;code&gt;s3_prefix&lt;/code&gt; or &lt;code&gt;s3_bucket&lt;/code&gt; are set, they dynamically override the [&lt;code&gt;s3_uploader&lt;/code&gt;][s3_uploader] attributes.
If the specified resource attribute exists in the data, its value will be used.
Otherwise, the [&lt;code&gt;s3_uploader&lt;/code&gt;][s3_uploader] attribute will serve as the fallback.&lt;/p&gt;
&lt;h3 id=&#34;compression&#34;&gt;Compression&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;none&lt;/code&gt; (default): File compression isn&amp;rsquo;t used.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;gzip&lt;/code&gt;: Files are compressed with Gzip.
&lt;strong&gt;This doesn&amp;rsquo;t support &lt;code&gt;sumo_ic&lt;/code&gt;marshaler.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;The following fields are exported and can be referenced by other components:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&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;code&gt;input&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A value that other components can use to send telemetry data to.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;input&lt;/code&gt; accepts &lt;code&gt;otelcol.Consumer&lt;/code&gt; data for any telemetry signal (metrics, logs, or traces).&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.awss3&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.awss3&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;debug-metrics&#34;&gt;Debug metrics&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;otelcol_exporter_queue_capacity&lt;/code&gt; (gauge): Fixed capacity of the retry queue (in batches).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;otelcol_exporter_queue_size&lt;/code&gt; (gauge): Current size of the retry queue (in batches).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;otelcol_exporter_send_failed_spans_total&lt;/code&gt; (counter): Number of spans in failed attempts to send to destination.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;otelcol_exporter_sent_spans_total&lt;/code&gt; (counter): Number of spans successfully sent to destination.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;rpc_client_duration_milliseconds&lt;/code&gt; (histogram): Measures the duration of inbound RPC.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;rpc_client_request_size_bytes&lt;/code&gt; (histogram): Measures size of RPC request messages (uncompressed).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;rpc_client_requests_per_rpc&lt;/code&gt; (histogram): Measures the number of messages received per RPC. Should be 1 for all non-streaming RPCs.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;rpc_client_response_size_bytes&lt;/code&gt; (histogram): Measures size of RPC response messages (uncompressed).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;rpc_client_responses_per_rpc&lt;/code&gt; (histogram): Measures the number of messages received per RPC. Should be 1 for all non-streaming RPCs.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;p&gt;This example forwards scrape logs to an AWS S3 Bucket:&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.file_match &amp;#34;logs&amp;#34; {
  path_targets = [{
    __address__ = &amp;#34;localhost&amp;#34;,
    __path__    = &amp;#34;/var/log/{syslog,messages,*.log}&amp;#34;,
    instance    = constants.hostname,
    job         = &amp;#34;integrations/node_exporter&amp;#34;,
  }]
}

loki.source.file &amp;#34;logs&amp;#34; {
  targets    = local.file_match.logs.targets
  forward_to = [otelcol.receiver.loki.default.receiver]
}

otelcol.receiver.loki &amp;#34;default&amp;#34; {
  output {
    logs = [otelcol.exporter.awss3.logs.input]
  }
}

otelcol.exporter.awss3 &amp;#34;logs&amp;#34; {
  s3_uploader {
    region = &amp;#34;us-east-1&amp;#34;
    s3_bucket = &amp;#34;logs_bucket&amp;#34;
    s3_prefix = &amp;#34;logs&amp;#34;
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.awss3&lt;/code&gt; has exports that can be consumed by the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that consume &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-consumers&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolexporterawss3">&lt;code>otelcol.exporter.awss3&lt;/code>&lt;/h1>
&lt;div data-shared="stability/experimental.md">
&lt;blockquote>
&lt;p>&lt;strong>EXPERIMENTAL&lt;/strong>: This is an &lt;a href="/docs/release-life-cycle/">experimental&lt;/a> component.
Experimental components are subject to frequent breaking changes, and may be removed with no equivalent replacement.
To enable and use an experimental component, you must set the &lt;code>stability.level&lt;/code>
&lt;a href="/docs/alloy/v1.15/reference/cli/run/">flag&lt;/a> to &lt;code>experimental&lt;/code>.&lt;/p></description></item><item><title>otelcol.exporter.datadog</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.exporter.datadog/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.exporter.datadog/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolexporterdatadog&#34;&gt;&lt;code&gt;otelcol.exporter.datadog&lt;/code&gt;&lt;/h1&gt;


&lt;div data-shared=&#34;stability/community.md&#34;&gt;
            &lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Community&lt;/strong&gt;: This component is developed, maintained, and supported by the Alloy user community.
Grafana doesn&amp;rsquo;t offer commercial support for this component.
To enable and use community components, you must set the &lt;code&gt;--feature.community-components.enabled&lt;/code&gt; 
    &lt;a href=&#34;/docs/alloy/v1.15/reference/cli/run/&#34;&gt;flag&lt;/a&gt; to &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Refer to &lt;a href=&#34;../../../../get-started/components/community-components/&#34;&gt;Community components&lt;/a&gt; for more information.&lt;/p&gt;&lt;/blockquote&gt;
&lt;/div&gt;

        
&lt;p&gt;&lt;code&gt;otelcol.exporter.datadog&lt;/code&gt; accepts metrics and traces telemetry data from other &lt;code&gt;otelcol&lt;/code&gt; components and sends it to Datadog.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.exporter.datadog&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/exporter/datadogexporter&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;datadog&lt;/code&gt;&lt;/a&gt; exporter.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.exporter.datadog&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.exporter.datadog &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
    api {
        api_key = &amp;#34;&amp;lt;YOUR_API_KEY_HERE&amp;gt;&amp;#34;
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.exporter.datadog&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;hostname&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The fallback hostname used for payloads without hostname-identifying attributes.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;hostname_detection_timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The timeout for hostname detection.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;25s&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;only_metadata&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to send only metadata.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If &lt;code&gt;hostname&lt;/code&gt; is unset, the hostname is determined automatically.
For more information, refer to the Datadog &lt;a href=&#34;https://docs.datadoghq.com/opentelemetry/schema_semantics/hostname/?tab=datadogexporter#fallback-hostname-logic&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Fallback hostname logic&lt;/a&gt; documentation.
This option won&amp;rsquo;t change the hostname applied to metrics or traces if they already have hostname-identifying attributes.&lt;/p&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.exporter.datadog&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 14;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#api\&amp;#34;\u003e\u003ccode\u003eapi\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures authentication with Datadog\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#client\&amp;#34;\u003e\u003ccode\u003eclient\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the HTTP client used to send telemetry data.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#host_metadata\&amp;#34;\u003e\u003ccode\u003ehost_metadata\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eHost metadata specific configuration.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#logs\&amp;#34;\u003e\u003ccode\u003elogs\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eLogs exporter specific configuration.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#metrics\&amp;#34;\u003e\u003ccode\u003emetrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eMetric exporter specific configuration.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003emetrics \u0026gt; \u003ca href=\&amp;#34;#exporter\&amp;#34;\u003e\u003ccode\u003eexporter\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eMetric Exporter specific configuration.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003emetrics \u0026gt; \u003ca href=\&amp;#34;#histograms\&amp;#34;\u003e\u003ccode\u003ehistograms\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eHistograms specific configuration.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003emetrics \u0026gt; \u003ca href=\&amp;#34;#summaries\&amp;#34;\u003e\u003ccode\u003esummaries\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eSummaries specific configuration\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003emetrics \u0026gt; \u003ca href=\&amp;#34;#sums\&amp;#34;\u003e\u003ccode\u003esums\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eSums specific configuration\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#retry_on_failure\&amp;#34;\u003e\u003ccode\u003eretry_on_failure\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures retry mechanism for failed requests.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#sending_queue\&amp;#34;\u003e\u003ccode\u003esending_queue\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures batching of data before sending.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003esending_queue\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#batch\&amp;#34;\u003e\u003ccode\u003ebatch\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures batching requests based on a timeout and a minimum number of items.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#traces\&amp;#34;\u003e\u003ccode\u003etraces\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eTrace exporter specific configuration.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#api&#34;&gt;&lt;code&gt;api&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures authentication with Datadog&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#client&#34;&gt;&lt;code&gt;client&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the HTTP client used to send telemetry data.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#host_metadata&#34;&gt;&lt;code&gt;host_metadata&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Host metadata specific configuration.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#logs&#34;&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Logs exporter specific configuration.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#metrics&#34;&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Metric exporter specific configuration.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;metrics &amp;gt; &lt;a href=&#34;#exporter&#34;&gt;&lt;code&gt;exporter&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Metric Exporter specific configuration.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;metrics &amp;gt; &lt;a href=&#34;#histograms&#34;&gt;&lt;code&gt;histograms&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Histograms specific configuration.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;metrics &amp;gt; &lt;a href=&#34;#summaries&#34;&gt;&lt;code&gt;summaries&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Summaries specific configuration&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;metrics &amp;gt; &lt;a href=&#34;#sums&#34;&gt;&lt;code&gt;sums&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Sums specific configuration&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#retry_on_failure&#34;&gt;&lt;code&gt;retry_on_failure&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures retry mechanism for failed requests.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#sending_queue&#34;&gt;&lt;code&gt;sending_queue&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures batching of data before sending.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sending_queue&lt;/code&gt; &amp;gt; &lt;a href=&#34;#batch&#34;&gt;&lt;code&gt;batch&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures batching requests based on a timeout and a minimum number of items.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#traces&#34;&gt;&lt;code&gt;traces&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Trace exporter specific configuration.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;api&#34;&gt;&lt;code&gt;api&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;

&lt;p&gt;The &lt;code&gt;api&lt;/code&gt; block configures authentication with the Datadog API.
This is required to send telemetry to Datadog.
If you don&amp;rsquo;t provide the &lt;code&gt;api&lt;/code&gt; block, you can&amp;rsquo;t send telemetry to Datadog.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;api_key&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;secret&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;API Key for Datadog&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fail_on_invalid_key&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to exit at startup on an invalid API key&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;site&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The site of the Datadog intake to send Agent data to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;datadoghq.com&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;client&#34;&gt;&lt;code&gt;client&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;client&lt;/code&gt; block configures the HTTP client used by the component.
Not all fields are supported by the Datadog Exporter.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_keep_alives&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Disable HTTP keep-alive.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;idle_conn_timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Time to wait before an idle connection closes itself.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;45s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;insecure_skip_verify&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Ignores insecure server TLS certificates.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_conns_per_host&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Limits the total (dialing,active, and idle) number of connections per host.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_idle_conns_per_host&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Limits the number of idle HTTP connections the host can keep open.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;5&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_idle_conns&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Limits the number of idle HTTP connections the client can keep open.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;100&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;read_buffer_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Size of the read buffer the HTTP client uses for reading server responses.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Time to wait before marking a request as failed.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;15s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;write_buffer_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Size of the write buffer the HTTP client uses for writing requests.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h3 id=&#34;host_metadata&#34;&gt;&lt;code&gt;host_metadata&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;host_metadata&lt;/code&gt; block configures the host metadata configuration.
Host metadata is the information used to populate the infrastructure list and the host map, and provide host tags functionality within the Datadog app.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enable the host metadata functionality&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;hostname_source&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Source for the hostname of host metadata.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;config_or_system&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;tags&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of host tags to be sent as part of the host metadata.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;By default, the exporter only sends host metadata for a single host, whose name is chosen according to &lt;code&gt;host_metadata::hostname_source&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Valid values for &lt;code&gt;hostname_source&lt;/code&gt; are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;first_resource&amp;quot;&lt;/code&gt; picks the host metadata hostname from the resource attributes on the first OTLP payload that gets to the exporter.
If the first payload lacks hostname-like attributes, it will fallback to &lt;code&gt;config_or_system&lt;/code&gt; behavior. &lt;strong&gt;Don&amp;rsquo;t use this hostname source if receiving data from multiple hosts&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;config_or_system&amp;quot;&lt;/code&gt; picks the host metadata hostname from the &lt;code&gt;hostname&lt;/code&gt; setting, falling back to system and cloud provider APIs.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;logs&#34;&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;logs&lt;/code&gt; block configures the logs exporter settings.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;batch_wait&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The maximum time in seconds the logs agent waits to fill each batch of logs before sending.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;5&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;compression_level&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Accepts values from 0 (no compression) to 9 (maximum compression but higher resource usage). Only used if &lt;code&gt;use_compression&lt;/code&gt; is set to &lt;code&gt;true&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;6&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The host of the Datadog intake server to send logs to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;https://http-intake.logs.datadoghq.com&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;use_compression&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Available when sending logs via HTTPS. Compresses logs if enabled.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If &lt;code&gt;use_compression&lt;/code&gt; is disabled, &lt;code&gt;compression_level&lt;/code&gt; has no effect.&lt;/p&gt;
&lt;p&gt;If &lt;code&gt;endpoint&lt;/code&gt; is unset, the value is obtained through the &lt;code&gt;site&lt;/code&gt; parameter in the [&lt;code&gt;api&lt;/code&gt;][] section.&lt;/p&gt;
&lt;h3 id=&#34;metrics&#34;&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;metrics&lt;/code&gt; block configures Metric specific exporter settings.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;delta_ttl&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The number of seconds values are kept in memory for calculating deltas.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;3600&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The host of the Datadog intake server to send metrics to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;https://api.datadoghq.com&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;Any of the subset of resource attributes in the &lt;a href=&#34;https://docs.datadoghq.com/opentelemetry/guide/semantic_mapping/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;semantic mapping list&lt;/a&gt; are converted to Datadog conventions and set to metric tags whether &lt;code&gt;resource_attributes_as_tags&lt;/code&gt; is enabled or not.&lt;/p&gt;
&lt;p&gt;If &lt;code&gt;endpoint&lt;/code&gt; is unset, the value is obtained through the &lt;code&gt;site&lt;/code&gt; parameter in the [&lt;code&gt;api&lt;/code&gt;][] section.&lt;/p&gt;
&lt;h3 id=&#34;exporter&#34;&gt;&lt;code&gt;exporter&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;exporter&lt;/code&gt; block configures the metric exporter settings.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;instrumentation_scope_metadata_as_tags&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Set to &lt;code&gt;false&lt;/code&gt; to not add metadata about the instrumentation scope that created a metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;resource_attributes_as_tags&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Set to &lt;code&gt;true&lt;/code&gt; to add resource attributes of a metric to its metric tags.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;histograms&#34;&gt;&lt;code&gt;histograms&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;histograms&lt;/code&gt; block configures the histogram settings.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;mode&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How to report histograms.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;distributions&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;send_aggregation_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to report sum, count, min, and max as separate histogram metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;Valid values for &lt;code&gt;mode&lt;/code&gt; are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;distributions&amp;quot;&lt;/code&gt; to report metrics as Datadog distributions (recommended).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;nobuckets&amp;quot;&lt;/code&gt; to not report bucket metrics.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;counters&amp;quot;&lt;/code&gt; to report one metric per histogram bucket.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;summaries&#34;&gt;&lt;code&gt;summaries&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;summaries&lt;/code&gt; block configures the summary settings.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;mode&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How to report summaries.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;gauges&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;Valid values for &lt;code&gt;mode&lt;/code&gt; are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;noquantiles&amp;quot;&lt;/code&gt; to not report quantile metrics.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;gauges&amp;quot;&lt;/code&gt; to report one gauge metric per quantile.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;sums&#34;&gt;&lt;code&gt;sums&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;sums&lt;/code&gt; block configures the sums settings.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cumulative_monotonic_mode&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How to report cumulative monotonic sums.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;to_delta&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;initial_cumulative_monotonic_value&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How to report the initial value for cumulative monotonic sums.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;auto&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;Valid values for &lt;code&gt;cumulative_monotonic_mode&lt;/code&gt; are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;to_delta&amp;quot;&lt;/code&gt; to calculate delta for sum in the client side and report as Datadog counts.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;raw_value&amp;quot;&lt;/code&gt; to report the raw value as a Datadog gauge.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Valid values for &lt;code&gt;initial_cumulative_monotonic_value&lt;/code&gt; are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;auto&amp;quot;&lt;/code&gt; reports the initial value if its start timestamp is set, and it happens after the process was started.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;drop&amp;quot;&lt;/code&gt; always drops the initial value.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;keep&amp;quot;&lt;/code&gt; always reports the initial value.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;retry_on_failure&#34;&gt;&lt;code&gt;retry_on_failure&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;retry_on_failure&lt;/code&gt; block configures how failed requests to Datadog are retried.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-retry-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables retrying failed requests.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;initial_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Initial time to wait before retrying a failed request.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;5s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_elapsed_time&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum time to wait before discarding a failed batch.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;5m&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum time to wait between retries.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;30s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;multiplier&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Factor to grow wait time before retrying.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1.5&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;randomization_factor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Factor to randomize wait time before retrying.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;0.5&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;When &lt;code&gt;enabled&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;, failed batches are retried after a given interval.
The &lt;code&gt;initial_interval&lt;/code&gt; argument specifies how long to wait before the first retry attempt.
If requests continue to fail, the time to wait before retrying increases by the factor specified by the &lt;code&gt;multiplier&lt;/code&gt; argument, which must be greater than &lt;code&gt;1.0&lt;/code&gt;.
The &lt;code&gt;max_interval&lt;/code&gt; argument specifies the upper bound of how long to wait between retries.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;randomization_factor&lt;/code&gt; argument is useful for adding jitter between retrying Alloy instances.
If &lt;code&gt;randomization_factor&lt;/code&gt; is greater than &lt;code&gt;0&lt;/code&gt;, the wait time before retries is multiplied by a random factor in the range &lt;code&gt;[ I - randomization_factor * I, I &#43; randomization_factor * I]&lt;/code&gt;, where &lt;code&gt;I&lt;/code&gt; is the current interval.&lt;/p&gt;
&lt;p&gt;If a batch hasn&amp;rsquo;t been sent successfully, it&amp;rsquo;s discarded after the time specified by &lt;code&gt;max_elapsed_time&lt;/code&gt; elapses.
If &lt;code&gt;max_elapsed_time&lt;/code&gt; is set to &lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;, failed requests are retried forever until they succeed.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;sending_queue&#34;&gt;&lt;code&gt;sending_queue&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;sending_queue&lt;/code&gt; block configures queueing and batching for the exporter.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-queue-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;block_on_overflow&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The behavior when the component&amp;rsquo;s &lt;code&gt;TotalSize&lt;/code&gt; limit is reached.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables a buffer before sending data to the client.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;num_consumers&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Number of readers to send batches written to the queue in parallel.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;queue_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum number of unwritten batches allowed in the queue at the same time.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1000&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sizer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How the queue and batching is measured.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;requests&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;wait_for_result&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Determines if incoming requests are blocked until the request is processed or not.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;storage&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;capsule(otelcol.Handler)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Handler from an &lt;code&gt;otelcol.storage&lt;/code&gt; component to use to enable a persistent queue mechanism.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;code&gt;blocking&lt;/code&gt; argument is deprecated in favor of the &lt;code&gt;block_on_overflow&lt;/code&gt; argument.&lt;/p&gt;
&lt;p&gt;When &lt;code&gt;block_on_overflow&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;, the component will wait for space. Otherwise, operations will immediately return a retryable error.&lt;/p&gt;
&lt;p&gt;When &lt;code&gt;enabled&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;, data is first written to an in-memory buffer before sending it to the configured server.
Batches sent to the component&amp;rsquo;s &lt;code&gt;input&lt;/code&gt; exported field are added to the buffer as long as the number of unsent batches doesn&amp;rsquo;t exceed the configured &lt;code&gt;queue_size&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;queue_size&lt;/code&gt; determines how long an endpoint outage is tolerated.
Assuming 100 requests/second, the default queue size &lt;code&gt;1000&lt;/code&gt; provides about 10 seconds of outage tolerance.
To calculate the correct value for &lt;code&gt;queue_size&lt;/code&gt;, multiply the average number of outgoing requests per second by the time in seconds that outages are tolerated. A very high value can cause Out Of Memory (OOM) kills.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;sizer&lt;/code&gt; argument could be set to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;requests&lt;/code&gt;: number of incoming batches of metrics, logs, traces (the most performant option).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;items&lt;/code&gt;: number of the smallest parts of each signal (spans, metric data points, log records).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bytes&lt;/code&gt;: the size of serialized data in bytes (the least performant option).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The &lt;code&gt;num_consumers&lt;/code&gt; argument controls how many readers read from the buffer and send data in parallel.
Larger values of &lt;code&gt;num_consumers&lt;/code&gt; allow data to be sent more quickly at the expense of increased network traffic.&lt;/p&gt;
&lt;p&gt;If an &lt;code&gt;otelcol.storage.*&lt;/code&gt; component is configured and provided in the queue&amp;rsquo;s &lt;code&gt;storage&lt;/code&gt; argument, the queue uses the
provided storage extension to provide a persistent queue and the queue is no longer stored in memory.
Any data persisted will be processed on startup if Alloy is killed or restarted.
Refer to the 
    &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector/blob/v0.147.0/exporter/exporterhelper/README.md#persistent-queue&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;exporterhelper documentation&lt;/a&gt; in the OpenTelemetry Collector repository for more details.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;batch&#34;&gt;&lt;code&gt;batch&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;batch&lt;/code&gt; block configures batching requests based on a timeout and a minimum number of items.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-queue-batch-block.md&#34;&gt;
            &lt;p&gt;Batching is disabled by default.
To enable it, explicitly include &lt;code&gt;batch {}&lt;/code&gt; in your Alloy configuration.
You do not need to include a &lt;code&gt;batch {}&lt;/code&gt; block in your &lt;code&gt;otelcol.exporter&lt;/code&gt; if you already use a &lt;code&gt;otelcol.processor.batch&lt;/code&gt; component,
although batching in the exporter is the preferred method because it is more flexible.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;flush_timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Time after which a batch will be sent regardless of its size. Must be a non-zero value.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;200ms&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;min_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The minimum size of a batch.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;2000&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The maximum size of a batch, enables batch splitting.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;3000&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sizer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How the queue and batching is measured. Overrides the sizer set at the &lt;code&gt;sending_queue&lt;/code&gt; level for batching.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;items&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If configured, &lt;code&gt;max_size&lt;/code&gt; must be greater than or equal to &lt;code&gt;min_size&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;sizer&lt;/code&gt; argument can be set to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;items&lt;/code&gt;: The number of the smallest parts of each span, metric data point, or log record.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bytes&lt;/code&gt;: the size of serialized data in bytes (the least performant option).&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;traces&#34;&gt;&lt;code&gt;traces&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;traces&lt;/code&gt; block configures the trace exporter settings.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;compute_stats_by_span_kind&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables APM stats computation based on &lt;code&gt;span.kind&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;compute_top_level_by_span_kind&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables top-level span identification based on &lt;code&gt;span.kind&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The host of the Datadog intake server to send traces to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;https://trace.agent.datadoghq.com&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ignore_resources&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A blocklist of regular expressions can be provided to disable traces based on their resource name.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;peer_tags_aggregation&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables aggregation of peer related tags in Datadog exporter&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;peer_tags&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of supplementary peer tags that go beyond the defaults.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;span_name_as_resource_name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Use OpenTelemetry semantic convention for span naming&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;span_name_remappings&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;map(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A map of Datadog span operation name keys and preferred name values to update those names to.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;trace_buffer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Specifies the number of outgoing trace payloads to buffer before dropping&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If &lt;code&gt;compute_stats_by_span_kind&lt;/code&gt; is disabled, only top-level and measured spans will have stats computed.
If you are sending OTel traces and want stats on non-top-level spans, this flag must be set to &lt;code&gt;true&lt;/code&gt;.
If you are sending OTel traces and don&amp;rsquo;t want stats computed by span kind, you must disable this flag and disable &lt;code&gt;compute_top_level_by_span_kind&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;If &lt;code&gt;endpoint&lt;/code&gt; is unset, the value is obtained through the &lt;code&gt;site&lt;/code&gt; parameter in the [&lt;code&gt;api&lt;/code&gt;][] section.&lt;/p&gt;
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;The following fields are exported and can be referenced by other components:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&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;code&gt;input&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A value other components can use to send telemetry data to.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;input&lt;/code&gt; accepts &lt;code&gt;otelcol.Consumer&lt;/code&gt; data for any telemetry signal (metrics, logs, or traces).&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.datadog&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.datadog&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;h3 id=&#34;forward-prometheus-metrics&#34;&gt;Forward Prometheus Metrics&lt;/h3&gt;
&lt;p&gt;This example forwards Prometheus metrics from Alloy through a receiver for conversion to Open Telemetry format before finally sending them to Datadog.
If you are using the US Datadog APIs, the &lt;code&gt;api&lt;/code&gt; field is required for the exporter to function.&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;prometheus.exporter.self &amp;#34;default&amp;#34; {
}

prometheus.scrape &amp;#34;metamonitoring&amp;#34; {
  targets    = prometheus.exporter.self.default.targets
  forward_to = [otelcol.receiver.prometheus.default.receiver]
}

otelcol.receiver.prometheus &amp;#34;default&amp;#34; {
  output {
    metrics = [otelcol.exporter.datadog.default.input]
  }
}


otelcol.exporter.datadog &amp;#34;default&amp;#34; {
    api {
        api_key = &amp;#34;API_KEY&amp;#34;
    }

     metrics {
        endpoint = &amp;#34;https://api.ap1.datadoghq.com&amp;#34;
        resource_attributes_as_tags = true
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;full-otel-pipeline&#34;&gt;Full OTel pipeline&lt;/h3&gt;
&lt;p&gt;This example forwards metrics and traces received in Datadog format to Alloy, converts them to OTel format, and exports them to Datadog.&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;otelcol.receiver.datadog &amp;#34;default&amp;#34; {
    output {
        metrics = [otelcol.exporter.otlphttp.default.input, otelcol.exporter.datadog.default input]
        traces  = [otelcol.exporter.otlphttp.default.input, otelcol.exporter.datadog.default.input]
    }
}

otelcol.exporter.otlphttp &amp;#34;default&amp;#34; {
    client {
        endpoint = &amp;#34;database:4317&amp;#34;
    }
}

otelcol.exporter.datadog &amp;#34;default&amp;#34; {
    client {
        timeout = &amp;#34;10s&amp;#34;
    }

    api {
        api_key             = &amp;#34;abc&amp;#34;
        fail_on_invalid_key = true
    }

    traces {
        endpoint             = &amp;#34;https://trace.agent.datadoghq.com&amp;#34;
        ignore_resources     = [&amp;#34;(GET|POST) /healthcheck&amp;#34;]
        span_name_remappings = {
            &amp;#34;instrumentation:express.server&amp;#34; = &amp;#34;express&amp;#34;,
        }
    }

    metrics {
        delta_ttl = 1200
        endpoint  = &amp;#34;https://api.datadoghq.com&amp;#34;

        exporter {
            resource_attributes_as_tags = true
        }

        histograms {
            mode = &amp;#34;counters&amp;#34;
        }

        sums {
            initial_cumulative_monotonic_value = &amp;#34;keep&amp;#34;
        }

        summaries {
            mode = &amp;#34;noquantiles&amp;#34;
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.datadog&lt;/code&gt; has exports that can be consumed by the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that consume &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-consumers&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolexporterdatadog">&lt;code>otelcol.exporter.datadog&lt;/code>&lt;/h1>
&lt;div data-shared="stability/community.md">
&lt;blockquote>
&lt;p>&lt;strong>Community&lt;/strong>: This component is developed, maintained, and supported by the Alloy user community.
Grafana doesn&amp;rsquo;t offer commercial support for this component.
To enable and use community components, you must set the &lt;code>--feature.community-components.enabled&lt;/code>
&lt;a href="/docs/alloy/v1.15/reference/cli/run/">flag&lt;/a> to &lt;code>true&lt;/code>.&lt;/p></description></item><item><title>otelcol.exporter.debug</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.exporter.debug/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.exporter.debug/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolexporterdebug&#34;&gt;&lt;code&gt;otelcol.exporter.debug&lt;/code&gt;&lt;/h1&gt;


&lt;div data-shared=&#34;stability/experimental.md&#34;&gt;
            &lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;EXPERIMENTAL&lt;/strong&gt;: This is an &lt;a href=&#34;/docs/release-life-cycle/&#34;&gt;experimental&lt;/a&gt; component.
Experimental components are subject to frequent breaking changes, and may be removed with no equivalent replacement.
To enable and use an experimental component, you must set the &lt;code&gt;stability.level&lt;/code&gt; 
    &lt;a href=&#34;/docs/alloy/v1.15/reference/cli/run/&#34;&gt;flag&lt;/a&gt; to &lt;code&gt;experimental&lt;/code&gt;.&lt;/p&gt;&lt;/blockquote&gt;
&lt;/div&gt;

        
&lt;p&gt;&lt;code&gt;otelcol.exporter.debug&lt;/code&gt; accepts telemetry data from other &lt;code&gt;otelcol&lt;/code&gt; components and writes them to the console (stderr).
You can control the verbosity of the logs.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.exporter.debug&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector/tree/v0.147.0/exporter/debugexporter&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;debug&lt;/code&gt;&lt;/a&gt; exporter.
If necessary, bug reports or feature requests are redirected to the upstream repository.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.exporter.debug&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.exporter.debug &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; { }&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.exporter.debug&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;output_paths&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Output destinations used when &lt;code&gt;use_internal_logger&lt;/code&gt; is &lt;code&gt;false&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[&amp;quot;stdout&amp;quot;]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sampling_initial&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Number of messages initially logged each second.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;2&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sampling_thereafter&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Sampling rate after the initial messages are logged.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;use_internal_logger&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to use the internal logger or print directly to &lt;code&gt;stderr&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;verbosity&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Verbosity of the generated logs.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;basic&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;code&gt;verbosity&lt;/code&gt; argument must be one of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;basic&amp;quot;&lt;/code&gt;: A single-line summary of received data is logged to stderr, with a total count of telemetry records for every batch of received logs, metrics, or traces.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;normal&amp;quot;&lt;/code&gt;: Produces the same output as &lt;code&gt;&amp;quot;basic&amp;quot;&lt;/code&gt; verbosity.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;detailed&amp;quot;&lt;/code&gt;: All details of every telemetry record are logged to stderr, typically writing multiple lines for every telemetry record.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following example shows &lt;code&gt;&amp;quot;basic&amp;quot;&lt;/code&gt; and &lt;code&gt;&amp;quot;normal&amp;quot;&lt;/code&gt; output:&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;text&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-text&#34;&gt;ts=2024-06-13T11:24:13.782957Z level=info msg=TracesExporter component_path=/ component_id=otelcol.exporter.debug.default &amp;#34;resource spans&amp;#34;: 1, spans: 2&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The following example shows &lt;code&gt;&amp;quot;detailed&amp;quot;&lt;/code&gt; output:&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;text&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-text&#34;&gt;ts=2024-06-13T11:24:13.782957Z level=info msg=TracesExporter component_path=/ component_id=otelcol.exporter.debug.default &amp;#34;resource spans&amp;#34;=1 spans=2
ts=2024-06-13T11:24:13.783101Z level=info msg=&amp;#34;ResourceSpans #0
Resource SchemaURL: https://opentelemetry.io/schemas/1.4.0
Resource attributes:
     -&amp;gt; service.name: Str(telemetrygen)
ScopeSpans #0
ScopeSpans SchemaURL:
InstrumentationScope telemetrygen
Span #0
    Trace ID       : 3bde5d3ee82303571bba6e1136781fe4
    Parent ID      : 5e9dcf9bac4acc1f
    ID             : 2cf3ef2899aba35c
    Name           : okey-dokey
    Kind           : Server
    Start time     : 2023-11-11 04:49:03.509369393 &amp;#43;0000 UTC
    End time       : 2023-11-11 04:49:03.50949377 &amp;#43;0000 UTC
    Status code    : Unset
    Status message :
Attributes:
     -&amp;gt; net.peer.ip: Str(1.2.3.4)
     -&amp;gt; peer.service: Str(telemetrygen-client)
Span #1
    Trace ID       : 3bde5d3ee82303571bba6e1136781fe4
    Parent ID      :
    ID             : 5e9dcf9bac4acc1f
    Name           : lets-go
    Kind           : Client
    Start time     : 2023-11-11 04:49:03.50935117 &amp;#43;0000 UTC
    End time       : 2023-11-11 04:49:03.50949377 &amp;#43;0000 UTC
    Status code    : Unset
    Status message :
Attributes:
     -&amp;gt; net.peer.ip: Str(1.2.3.4)
     -&amp;gt; peer.service: Str(telemetrygen-server)
        {&amp;#34;kind&amp;#34;: &amp;#34;exporter&amp;#34;, &amp;#34;data_type&amp;#34;: &amp;#34;traces&amp;#34;, &amp;#34;name&amp;#34;: &amp;#34;debug&amp;#34;}&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;All instances of &lt;code&gt;\n&lt;/code&gt; in the &lt;code&gt;&amp;quot;detailed&amp;quot;&lt;/code&gt; example have been replaced with new lines.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;Setting &lt;code&gt;use_internal_logger&lt;/code&gt; to &lt;code&gt;false&lt;/code&gt; is useful if you would like to see actual new lines instead of &lt;code&gt;\n&lt;/code&gt; in the collector logs.
However, by not using the internal logger you wouldn&amp;rsquo;t see metadata in the log line such as &lt;code&gt;component_id=otelcol.exporter.debug.default&lt;/code&gt;.
Multiline logs may also be harder to parse.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;output_paths&lt;/code&gt; argument can be used only when &lt;code&gt;use_internal_logger&lt;/code&gt; is &lt;code&gt;false&lt;/code&gt;.
Valid values include &lt;code&gt;stdout&lt;/code&gt;, &lt;code&gt;stderr&lt;/code&gt;, or file paths.&lt;/p&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following block with &lt;code&gt;otelcol.exporter.debug&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 1;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;The following fields are exported and can be referenced by other components:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&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;code&gt;input&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A value that other components can use to send telemetry data to.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;input&lt;/code&gt; accepts &lt;code&gt;otelcol.Consumer&lt;/code&gt; data for any telemetry signal (metrics, logs, or traces).&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.debug&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.debug&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;p&gt;This example receives OTLP metrics, logs, and traces and writes them to the console:&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;otelcol.receiver.otlp &amp;#34;default&amp;#34; {
    grpc {}
    http {}

    output {
        metrics = [otelcol.exporter.debug.default.input]
        logs    = [otelcol.exporter.debug.default.input]
        traces  = [otelcol.exporter.debug.default.input]
    }
}

otelcol.exporter.debug &amp;#34;default&amp;#34; {}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.debug&lt;/code&gt; has exports that can be consumed by the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that consume &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-consumers&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolexporterdebug">&lt;code>otelcol.exporter.debug&lt;/code>&lt;/h1>
&lt;div data-shared="stability/experimental.md">
&lt;blockquote>
&lt;p>&lt;strong>EXPERIMENTAL&lt;/strong>: This is an &lt;a href="/docs/release-life-cycle/">experimental&lt;/a> component.
Experimental components are subject to frequent breaking changes, and may be removed with no equivalent replacement.
To enable and use an experimental component, you must set the &lt;code>stability.level&lt;/code>
&lt;a href="/docs/alloy/v1.15/reference/cli/run/">flag&lt;/a> to &lt;code>experimental&lt;/code>.&lt;/p></description></item><item><title>otelcol.exporter.faro</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.exporter.faro/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.exporter.faro/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolexporterfaro&#34;&gt;&lt;code&gt;otelcol.exporter.faro&lt;/code&gt;&lt;/h1&gt;


&lt;div data-shared=&#34;stability/experimental.md&#34;&gt;
            &lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;EXPERIMENTAL&lt;/strong&gt;: This is an &lt;a href=&#34;/docs/release-life-cycle/&#34;&gt;experimental&lt;/a&gt; component.
Experimental components are subject to frequent breaking changes, and may be removed with no equivalent replacement.
To enable and use an experimental component, you must set the &lt;code&gt;stability.level&lt;/code&gt; 
    &lt;a href=&#34;/docs/alloy/v1.15/reference/cli/run/&#34;&gt;flag&lt;/a&gt; to &lt;code&gt;experimental&lt;/code&gt;.&lt;/p&gt;&lt;/blockquote&gt;
&lt;/div&gt;

        
&lt;p&gt;&lt;code&gt;otelcol.exporter.faro&lt;/code&gt; accepts logs and traces telemetry data from other &lt;code&gt;otelcol&lt;/code&gt; components and sends it to &lt;a href=&#34;/oss/faro/&#34;&gt;Faro&lt;/a&gt; endpoint.
Use this exporter to send telemetry data to Grafana Cloud Collector Endpoint for &lt;a href=&#34;/products/cloud/frontend-observability-for-real-user-monitoring/&#34;&gt;Frontend Observability&lt;/a&gt; or to any backend that supports Faro format, allowing you to gain insights into the end user experience of your web application.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-faro-component-note.md&#34;&gt;
            

&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;This component is necessary for &lt;a href=&#34;/products/cloud/frontend-observability-for-real-user-monitoring/&#34;&gt;Grafana Cloud Frontend Observability&lt;/a&gt; to work.
For more information, refer to the &lt;a href=&#34;/docs/alloy/latest/collect/choose-component/#frontend-telemetry&#34;&gt;Choose a component&lt;/a&gt; guide.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.exporter.faro&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/exporter/faroexporter&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;faro&lt;/code&gt;&lt;/a&gt; exporter.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.exporter.faro&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.exporter.faro &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
    client {
        endpoint = &amp;#34;&amp;lt;HOST&amp;gt;:&amp;lt;PORT&amp;gt;&amp;#34;
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;otelcol.exporter.faro&lt;/code&gt; component doesn&amp;rsquo;t support any arguments. You can configure this component with blocks.&lt;/p&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.exporter.faro&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 9;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#client\&amp;#34;\u003e\u003ccode\u003eclient\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the HTTP client to send telemetry data to.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eclient\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#compression_params\&amp;#34;\u003e\u003ccode\u003ecompression_params\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigure advanced compression options.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eclient\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#cookies\&amp;#34;\u003e\u003ccode\u003ecookies\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eStore cookies from server responses and reuse them in subsequent requests.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eclient\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#tls\&amp;#34;\u003e\u003ccode\u003etls\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TLS for the HTTP client.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eclient\u003c/code\u003e \u0026gt; \u003ccode\u003etls\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#tpm\&amp;#34;\u003e\u003ccode\u003etpm\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TPM settings for the TLS \u003ccode\u003ekey_file\u003c/code\u003e.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#retry_on_failure\&amp;#34;\u003e\u003ccode\u003eretry_on_failure\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures retry mechanism for failed requests.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#sending_queue\&amp;#34;\u003e\u003ccode\u003esending_queue\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures batching of data before sending.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003esending_queue\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#batch\&amp;#34;\u003e\u003ccode\u003ebatch\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures batching requests based on a timeout and a minimum number of items.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#client&#34;&gt;&lt;code&gt;client&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the HTTP client to send telemetry data to.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;client&lt;/code&gt; &amp;gt; &lt;a href=&#34;#compression_params&#34;&gt;&lt;code&gt;compression_params&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configure advanced compression options.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;client&lt;/code&gt; &amp;gt; &lt;a href=&#34;#cookies&#34;&gt;&lt;code&gt;cookies&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Store cookies from server responses and reuse them in subsequent requests.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;client&lt;/code&gt; &amp;gt; &lt;a href=&#34;#tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TLS for the HTTP client.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;client&lt;/code&gt; &amp;gt; &lt;code&gt;tls&lt;/code&gt; &amp;gt; &lt;a href=&#34;#tpm&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TPM settings for the TLS &lt;code&gt;key_file&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#retry_on_failure&#34;&gt;&lt;code&gt;retry_on_failure&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures retry mechanism for failed requests.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#sending_queue&#34;&gt;&lt;code&gt;sending_queue&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures batching of data before sending.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sending_queue&lt;/code&gt; &amp;gt; &lt;a href=&#34;#batch&#34;&gt;&lt;code&gt;batch&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures batching requests based on a timeout and a minimum number of items.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;client&#34;&gt;&lt;code&gt;client&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;

&lt;p&gt;The &lt;code&gt;client&lt;/code&gt; block configures the HTTP client used by the component.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-http-client-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The target URL to send telemetry data to.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;capsule(otelcol.Handler)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Handler from an &lt;code&gt;otelcol.auth&lt;/code&gt; component to use for authenticating requests.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;compression&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Compression mechanism to use for requests.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;gzip&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_keep_alives&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Disable HTTP keep-alive.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;force_attempt_http2&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Force the HTTP client to try to use the HTTP/2 protocol.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;headers&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;map(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Additional headers to send with the request.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;{}&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;http2_ping_timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Timeout after which the connection will be closed if a response to Ping isn&amp;rsquo;t received.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;15s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;http2_read_idle_timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Timeout after which a health check using ping frame will be carried out if no frame is received on the connection.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;idle_conn_timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Time to wait before an idle connection closes itself.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;90s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_conns_per_host&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Limits the total (dialing,active, and idle) number of connections per host.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_idle_conns_per_host&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Limits the number of idle HTTP connections the host can keep open.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_idle_conns&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Limits the number of idle HTTP connections the client can keep open.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;100&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;proxy_url&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;HTTP proxy to send requests through.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;read_buffer_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Size of the read buffer the HTTP client uses for reading server responses.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Time to wait before marking a request as failed.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;30s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;write_buffer_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Size of the write buffer the HTTP client uses for writing requests.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;512KiB&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;When setting &lt;code&gt;headers&lt;/code&gt;, note that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Certain headers such as &lt;code&gt;Content-Length&lt;/code&gt; and &lt;code&gt;Connection&lt;/code&gt; are automatically written when needed and values in &lt;code&gt;headers&lt;/code&gt; may be ignored.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;Host&lt;/code&gt; header is automatically derived from the &lt;code&gt;endpoint&lt;/code&gt; value. However, this automatic assignment can be overridden by explicitly setting a &lt;code&gt;Host&lt;/code&gt; header in &lt;code&gt;headers&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Setting &lt;code&gt;disable_keep_alives&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; will result in significant overhead establishing a new HTTP or HTTPS connection for every request.
Before enabling this option, consider whether changes to idle connection settings can achieve your goal.&lt;/p&gt;
&lt;p&gt;If &lt;code&gt;http2_ping_timeout&lt;/code&gt; is unset or set to &lt;code&gt;0s&lt;/code&gt;, it will default to &lt;code&gt;15s&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;If &lt;code&gt;http2_read_idle_timeout&lt;/code&gt; is unset or set to &lt;code&gt;0s&lt;/code&gt;, then no health check will be performed.&lt;/p&gt;
&lt;p&gt;Golang&amp;rsquo;s default HTTP transport attempts HTTP/2 by default, however some settings (&lt;code&gt;max_conns_per_host&lt;/code&gt;, &lt;code&gt;max_idle_conns_per_host&lt;/code&gt;, &lt;code&gt;max_idle_conns&lt;/code&gt;) are only relevant for HTTP/1.
The &lt;code&gt;force_attempt_http2&lt;/code&gt; attribute allows a user to only attempt HTTP/1.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-compression-field.md&#34;&gt;
            &lt;p&gt;By default, requests are compressed with Gzip.
The &lt;code&gt;compression&lt;/code&gt; argument controls which compression mechanism to use. Supported strings are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;gzip&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;zlib&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;deflate&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;snappy&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;zstd&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you set &lt;code&gt;compression&lt;/code&gt; to &lt;code&gt;&amp;quot;none&amp;quot;&lt;/code&gt; or an empty string &lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;, the requests aren&amp;rsquo;t compressed.&lt;/p&gt;
&lt;/div&gt;

        
&lt;/div&gt;

        
&lt;h3 id=&#34;compression_params&#34;&gt;&lt;code&gt;compression_params&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;compression_params&lt;/code&gt; block configures the advanced compression options.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-compression-params-client-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;level&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Configure compression level.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;For valid combinations of &lt;code&gt;client.compression&lt;/code&gt; and &lt;code&gt;client.compression_params.level&lt;/code&gt;, refer to the 
    &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector/blob/v0.147.0/config/confighttp/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;upstream documentation&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;cookies&#34;&gt;&lt;code&gt;cookies&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;cookies&lt;/code&gt; block allows the HTTP client to store cookies from server responses and reuse them in subsequent requests.&lt;/p&gt;
&lt;p&gt;This could be useful in situations such as load balancers relying on cookies for sticky sessions and enforcing a maximum session age.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-cookies-client-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The target URL to send telemetry data to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;

        
&lt;h3 id=&#34;tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;tls&lt;/code&gt; block configures TLS settings used for the connection to the HTTP server.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-tls-client-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ca_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the CA file.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ca_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;CA PEM-encoded text to validate the server with.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cert_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS certificate.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cert_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Certificate PEM-encoded text for client authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cipher_suites&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of TLS cipher suites that the TLS transport can use.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;curve_preferences&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Set of elliptic curves to use in a handshake.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_system_ca_certs_pool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to load the system certificate authorities pool alongside the certificate authority.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;insecure_skip_verify&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Ignores insecure server TLS certificates.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;insecure&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Disables TLS when connecting to the configured server.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS certificate key.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;secret&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Key PEM-encoded text for client authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum acceptable TLS version for connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;TLS 1.3&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;min_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Minimum acceptable TLS version for connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;TLS 1.2&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;reload_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The duration after which the certificate is reloaded.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;server_name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Verifies the hostname of server certificates when set.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If the server doesn&amp;rsquo;t support TLS, you must set the &lt;code&gt;insecure&lt;/code&gt; argument to &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;To disable &lt;code&gt;tls&lt;/code&gt; for connections to the server, set the &lt;code&gt;insecure&lt;/code&gt; argument to &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;If you set &lt;code&gt;reload_interval&lt;/code&gt; to &lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;, the certificate never reloaded.&lt;/p&gt;
&lt;p&gt;The following pairs of arguments are mutually exclusive and can&amp;rsquo;t both be set simultaneously:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ca_pem&lt;/code&gt; and &lt;code&gt;ca_file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cert_pem&lt;/code&gt; and &lt;code&gt;cert_file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;key_pem&lt;/code&gt; and &lt;code&gt;key_file&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If &lt;code&gt;cipher_suites&lt;/code&gt; is left blank, a safe default list is used.
Refer to the &lt;a href=&#34;https://go.dev/src/crypto/tls/cipher_suites.go&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Go TLS documentation&lt;/a&gt; for a list of supported cipher suites.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;curve_preferences&lt;/code&gt; argument determines the set of &lt;a href=&#34;https://go.dev/src/crypto/tls/common.go#L138&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;elliptic curves&lt;/a&gt; to prefer during a handshake in preference order.
If not provided, a default list is used.
The set of elliptic curves available are &lt;code&gt;X25519&lt;/code&gt;, &lt;code&gt;P521&lt;/code&gt;, &lt;code&gt;P256&lt;/code&gt;, and &lt;code&gt;P384&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;tpm&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;tpm&lt;/code&gt; block configures retrieving the TLS &lt;code&gt;key_file&lt;/code&gt; from a trusted device.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-tls-tpm-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The authorization value used to authenticate the TPM device.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Load the &lt;code&gt;tls.key_file&lt;/code&gt; from TPM.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;owner_auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The owner authorization value used to authenticate the TPM device.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;path&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TPM device or Unix domain socket.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;a href=&#34;https://trustedcomputinggroup.org/resource/trusted-platform-module-tpm-summary/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;trusted platform module&lt;/a&gt; (TPM) configuration can be used for loading TLS key from TPM. Currently only TSS2 format is supported.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;path&lt;/code&gt; attribute is not supported on Windows.&lt;/p&gt;
&lt;p&gt;In the following example, the private key &lt;code&gt;my-tss2-key.key&lt;/code&gt; in TSS2 format is loaded from the TPM device &lt;code&gt;/dev/tmprm0&lt;/code&gt;:&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;otelcol.example.component &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
    ...
    tls {
        ...
        key_file = &amp;#34;my-tss2-key.key&amp;#34;
        tpm {
            enabled = true
            path = &amp;#34;/dev/tpmrm0&amp;#34;
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h3 id=&#34;retry_on_failure&#34;&gt;&lt;code&gt;retry_on_failure&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;retry_on_failure&lt;/code&gt; block configures how failed requests to the HTTP server are retried.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-retry-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables retrying failed requests.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;initial_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Initial time to wait before retrying a failed request.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;5s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_elapsed_time&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum time to wait before discarding a failed batch.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;5m&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum time to wait between retries.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;30s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;multiplier&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Factor to grow wait time before retrying.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1.5&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;randomization_factor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Factor to randomize wait time before retrying.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;0.5&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;When &lt;code&gt;enabled&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;, failed batches are retried after a given interval.
The &lt;code&gt;initial_interval&lt;/code&gt; argument specifies how long to wait before the first retry attempt.
If requests continue to fail, the time to wait before retrying increases by the factor specified by the &lt;code&gt;multiplier&lt;/code&gt; argument, which must be greater than &lt;code&gt;1.0&lt;/code&gt;.
The &lt;code&gt;max_interval&lt;/code&gt; argument specifies the upper bound of how long to wait between retries.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;randomization_factor&lt;/code&gt; argument is useful for adding jitter between retrying Alloy instances.
If &lt;code&gt;randomization_factor&lt;/code&gt; is greater than &lt;code&gt;0&lt;/code&gt;, the wait time before retries is multiplied by a random factor in the range &lt;code&gt;[ I - randomization_factor * I, I &#43; randomization_factor * I]&lt;/code&gt;, where &lt;code&gt;I&lt;/code&gt; is the current interval.&lt;/p&gt;
&lt;p&gt;If a batch hasn&amp;rsquo;t been sent successfully, it&amp;rsquo;s discarded after the time specified by &lt;code&gt;max_elapsed_time&lt;/code&gt; elapses.
If &lt;code&gt;max_elapsed_time&lt;/code&gt; is set to &lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;, failed requests are retried forever until they succeed.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;sending_queue&#34;&gt;&lt;code&gt;sending_queue&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;sending_queue&lt;/code&gt; block configures queueing and batching for the exporter.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-queue-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;block_on_overflow&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The behavior when the component&amp;rsquo;s &lt;code&gt;TotalSize&lt;/code&gt; limit is reached.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables a buffer before sending data to the client.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;num_consumers&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Number of readers to send batches written to the queue in parallel.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;queue_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum number of unwritten batches allowed in the queue at the same time.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1000&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sizer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How the queue and batching is measured.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;requests&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;wait_for_result&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Determines if incoming requests are blocked until the request is processed or not.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;storage&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;capsule(otelcol.Handler)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Handler from an &lt;code&gt;otelcol.storage&lt;/code&gt; component to use to enable a persistent queue mechanism.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;code&gt;blocking&lt;/code&gt; argument is deprecated in favor of the &lt;code&gt;block_on_overflow&lt;/code&gt; argument.&lt;/p&gt;
&lt;p&gt;When &lt;code&gt;block_on_overflow&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;, the component will wait for space. Otherwise, operations will immediately return a retryable error.&lt;/p&gt;
&lt;p&gt;When &lt;code&gt;enabled&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;, data is first written to an in-memory buffer before sending it to the configured server.
Batches sent to the component&amp;rsquo;s &lt;code&gt;input&lt;/code&gt; exported field are added to the buffer as long as the number of unsent batches doesn&amp;rsquo;t exceed the configured &lt;code&gt;queue_size&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;queue_size&lt;/code&gt; determines how long an endpoint outage is tolerated.
Assuming 100 requests/second, the default queue size &lt;code&gt;1000&lt;/code&gt; provides about 10 seconds of outage tolerance.
To calculate the correct value for &lt;code&gt;queue_size&lt;/code&gt;, multiply the average number of outgoing requests per second by the time in seconds that outages are tolerated. A very high value can cause Out Of Memory (OOM) kills.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;sizer&lt;/code&gt; argument could be set to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;requests&lt;/code&gt;: number of incoming batches of metrics, logs, traces (the most performant option).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;items&lt;/code&gt;: number of the smallest parts of each signal (spans, metric data points, log records).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bytes&lt;/code&gt;: the size of serialized data in bytes (the least performant option).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The &lt;code&gt;num_consumers&lt;/code&gt; argument controls how many readers read from the buffer and send data in parallel.
Larger values of &lt;code&gt;num_consumers&lt;/code&gt; allow data to be sent more quickly at the expense of increased network traffic.&lt;/p&gt;
&lt;p&gt;If an &lt;code&gt;otelcol.storage.*&lt;/code&gt; component is configured and provided in the queue&amp;rsquo;s &lt;code&gt;storage&lt;/code&gt; argument, the queue uses the
provided storage extension to provide a persistent queue and the queue is no longer stored in memory.
Any data persisted will be processed on startup if Alloy is killed or restarted.
Refer to the 
    &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector/blob/v0.147.0/exporter/exporterhelper/README.md#persistent-queue&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;exporterhelper documentation&lt;/a&gt; in the OpenTelemetry Collector repository for more details.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;batch&#34;&gt;&lt;code&gt;batch&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;batch&lt;/code&gt; block configures batching requests based on a timeout and a minimum number of items.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-queue-batch-block.md&#34;&gt;
            &lt;p&gt;Batching is disabled by default.
To enable it, explicitly include &lt;code&gt;batch {}&lt;/code&gt; in your Alloy configuration.
You do not need to include a &lt;code&gt;batch {}&lt;/code&gt; block in your &lt;code&gt;otelcol.exporter&lt;/code&gt; if you already use a &lt;code&gt;otelcol.processor.batch&lt;/code&gt; component,
although batching in the exporter is the preferred method because it is more flexible.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;flush_timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Time after which a batch will be sent regardless of its size. Must be a non-zero value.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;200ms&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;min_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The minimum size of a batch.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;2000&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The maximum size of a batch, enables batch splitting.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;3000&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sizer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How the queue and batching is measured. Overrides the sizer set at the &lt;code&gt;sending_queue&lt;/code&gt; level for batching.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;items&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If configured, &lt;code&gt;max_size&lt;/code&gt; must be greater than or equal to &lt;code&gt;min_size&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;sizer&lt;/code&gt; argument can be set to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;items&lt;/code&gt;: The number of the smallest parts of each span, metric data point, or log record.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bytes&lt;/code&gt;: the size of serialized data in bytes (the least performant option).&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

        
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;The following fields are exported and can be referenced by other components:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&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;code&gt;input&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A value that other components can use to send telemetry data to.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;input&lt;/code&gt; accepts &lt;code&gt;otelcol.Consumer&lt;/code&gt; data for logs and traces.&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.faro&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.faro&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;p&gt;This example creates an exporter to send data to a &lt;a href=&#34;/oss/faro/&#34;&gt;Faro&lt;/a&gt; endpoint.&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;otelcol.exporter.faro &amp;#34;default&amp;#34; {
    client {
        endpoint = &amp;#34;&amp;lt;FARO_COLLECTOR_ADDRESS&amp;gt;&amp;#34;
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Replace the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;&lt;code&gt;&amp;lt;FARO_COLLECTOR_ADDRESS&amp;gt;&lt;/code&gt;&lt;/em&gt;: The address of the Faro-compatible server to send data to.&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.faro&lt;/code&gt; has exports that can be consumed by the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that consume &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-consumers&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolexporterfaro">&lt;code>otelcol.exporter.faro&lt;/code>&lt;/h1>
&lt;div data-shared="stability/experimental.md">
&lt;blockquote>
&lt;p>&lt;strong>EXPERIMENTAL&lt;/strong>: This is an &lt;a href="/docs/release-life-cycle/">experimental&lt;/a> component.
Experimental components are subject to frequent breaking changes, and may be removed with no equivalent replacement.
To enable and use an experimental component, you must set the &lt;code>stability.level&lt;/code>
&lt;a href="/docs/alloy/v1.15/reference/cli/run/">flag&lt;/a> to &lt;code>experimental&lt;/code>.&lt;/p></description></item><item><title>otelcol.exporter.file</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.exporter.file/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.exporter.file/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolexporterfile&#34;&gt;&lt;code&gt;otelcol.exporter.file&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.file&lt;/code&gt; accepts metrics, logs, and traces telemetry data from other &lt;code&gt;otelcol&lt;/code&gt; components and writes it to files on disk.
You can write data in JSON or Protocol Buffers &lt;code&gt;proto&lt;/code&gt; format.
You can optionally enable file rotation, compression, and separate output files based on a resource attribute.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.exporter.file&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector Contrib &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/exporter/fileexporter&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;fileexporter&lt;/code&gt;&lt;/a&gt; exporter.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.exporter.file&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.exporter.file &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  path = &amp;#34;&amp;lt;PATH&amp;gt;&amp;#34;
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.exporter.file&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;path&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the file to write telemetry data.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;append&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Append to the file when &lt;code&gt;true&lt;/code&gt;; truncate when &lt;code&gt;false&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;compression&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Compression algorithm. Alloy supports only &lt;code&gt;&amp;quot;zstd&amp;quot;&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;flush_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Time between flushes to disk. Must be greater than zero.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;1s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;format&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Data format. Must be &lt;code&gt;&amp;quot;json&amp;quot;&lt;/code&gt; or &lt;code&gt;&amp;quot;proto&amp;quot;&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;json&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You can&amp;rsquo;t enable &lt;code&gt;append&lt;/code&gt; and &lt;code&gt;compression&lt;/code&gt; together.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;The upstream &lt;code&gt;encoding&lt;/code&gt; argument isn&amp;rsquo;t supported.
Use &lt;code&gt;format&lt;/code&gt; instead.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.exporter.file&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 3;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures internal metrics for this component.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#group_by\&amp;#34;\u003e\u003ccode\u003egroup_by\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eWrites to separate files based on a resource attribute value.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#rotation\&amp;#34;\u003e\u003ccode\u003erotation\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures file rotation. Ignored when \u003ccode\u003egroup_by.enabled\u003c/code\u003e is \u003ccode\u003etrue\u003c/code\u003e.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures internal metrics for this component.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#group_by&#34;&gt;&lt;code&gt;group_by&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Writes to separate files based on a resource attribute value.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#rotation&#34;&gt;&lt;code&gt;rotation&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures file rotation. Ignored when &lt;code&gt;group_by.enabled&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;p&gt;You can&amp;rsquo;t enable &lt;code&gt;append&lt;/code&gt; and &lt;code&gt;rotation&lt;/code&gt; together.&lt;/p&gt;
&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h3 id=&#34;group_by&#34;&gt;&lt;code&gt;group_by&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;group_by&lt;/code&gt; block writes telemetry to separate files based on a resource attribute.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enable &lt;code&gt;group_by&lt;/code&gt; behavior.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_open_files&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum number of simultaneously open files.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;100&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;resource_attribute&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Resource attribute whose value replaces &lt;code&gt;*&lt;/code&gt; in &lt;code&gt;path&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;fileexporter.path_segment&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;When &lt;code&gt;group_by.enabled&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;path&lt;/code&gt; must contain exactly one &lt;code&gt;*&lt;/code&gt; character.&lt;/li&gt;
&lt;li&gt;The exporter replaces the &lt;code&gt;*&lt;/code&gt; with the &lt;code&gt;resource_attribute&lt;/code&gt; value.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;rotation&lt;/code&gt; settings don&amp;rsquo;t apply.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;rotation&#34;&gt;&lt;code&gt;rotation&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;rotation&lt;/code&gt; block configures rolling log file behavior.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;localtime&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Use local time instead of UTC in rotated filenames.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_backups&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum number of rotated files to retain.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;100&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_days&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum number of days to retain files. &lt;code&gt;0&lt;/code&gt; keeps files indefinitely.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_megabytes&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum size in megabytes before the file rotates.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;100&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.file&lt;/code&gt; doesn&amp;rsquo;t export any fields.&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.file&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.file&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;examples&#34;&gt;Examples&lt;/h2&gt;
&lt;p&gt;The following examples demonstrate how you can use &lt;code&gt;otelcol.exporter.file&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;basic-file-export&#34;&gt;Basic file export&lt;/h3&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;otelcol.exporter.file &amp;#34;default&amp;#34; {
  path = &amp;#34;/tmp/traces.json&amp;#34;
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;file-export-with-rotation&#34;&gt;File export with rotation&lt;/h3&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;otelcol.exporter.file &amp;#34;rotated&amp;#34; {
  path   = &amp;#34;/var/log/telemetry.json&amp;#34;
  format = &amp;#34;json&amp;#34;

  rotation {
    max_megabytes = 50
    max_days      = 7
    max_backups   = 10
    localtime     = true
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;file-export-with-compression&#34;&gt;File export with compression&lt;/h3&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;otelcol.exporter.file &amp;#34;compressed&amp;#34; {
  path        = &amp;#34;/tmp/traces.jsonl&amp;#34;
  format      = &amp;#34;proto&amp;#34;
  compression = &amp;#34;zstd&amp;#34;
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;group-by-resource-attribute&#34;&gt;Group by resource attribute&lt;/h3&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;otelcol.exporter.file &amp;#34;grouped&amp;#34; {
  path = &amp;#34;/tmp/logs/*/service.log&amp;#34;
  
  group_by {
    enabled           = true
    resource_attribute = &amp;#34;service.name&amp;#34;
    max_open_files     = 50
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;complete-pipeline&#34;&gt;Complete pipeline&lt;/h3&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;otelcol.receiver.otlp &amp;#34;default&amp;#34; {
  grpc {
    endpoint = &amp;#34;0.0.0.0:4317&amp;#34;
  }

  http {
    endpoint = &amp;#34;0.0.0.0:4318&amp;#34;
  }

  output {
    metrics = [otelcol.exporter.file.default.input]
    logs    = [otelcol.exporter.file.default.input]
    traces  = [otelcol.exporter.file.default.input]
  }
}

otelcol.exporter.file &amp;#34;default&amp;#34; {
  path           = &amp;#34;/tmp/telemetry.json&amp;#34;
  format         = &amp;#34;json&amp;#34;
  flush_interval = &amp;#34;5s&amp;#34;

  rotation {
    max_megabytes = 100
    max_backups   = 5
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;technical-details&#34;&gt;Technical details&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;otelcol.exporter.file&lt;/code&gt; component writes telemetry data to files on disk in either JSON or Protocol Buffers format.
It supports:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;File rotation&lt;/strong&gt;: Automatically rotate files based on size, age, or number of backups&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Compression&lt;/strong&gt;: Compress output files using &lt;code&gt;zstd&lt;/code&gt; algorithm&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Group by attributes&lt;/strong&gt;: Write to different files based on resource attribute values&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Flushing&lt;/strong&gt;: Configurable flush intervals to control write frequency&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;file-formats&#34;&gt;File formats&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;JSON format&lt;/strong&gt;: Each telemetry record is written as a separate line in JSON format (JSONL)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;proto&lt;/code&gt; format&lt;/strong&gt;: Binary Protocol Buffers format with length-prefixed messages&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;file-naming-with-rotation&#34;&gt;File naming with rotation&lt;/h3&gt;
&lt;p&gt;When rotation is enabled, rotated files are renamed with a timestamp:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Original: &lt;code&gt;data.json&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Rotated: &lt;code&gt;data-2023-09-20T10-30-00.123.json&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;group-by-functionality&#34;&gt;Group by functionality&lt;/h3&gt;
&lt;p&gt;When &lt;code&gt;group_by&lt;/code&gt; is enabled, files are created dynamically based on resource attribute values:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Path template: &lt;code&gt;/logs/*/app.log&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Resource attribute &lt;code&gt;service.name=frontend&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Resulting file: &lt;code&gt;/logs/frontend/app.log&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.file&lt;/code&gt; has exports that can be consumed by the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that consume &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-consumers&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;]]></content><description>&lt;h1 id="otelcolexporterfile">&lt;code>otelcol.exporter.file&lt;/code>&lt;/h1>
&lt;p>&lt;code>otelcol.exporter.file&lt;/code> accepts metrics, logs, and traces telemetry data from other &lt;code>otelcol&lt;/code> components and writes it to files on disk.
You can write data in JSON or Protocol Buffers &lt;code>proto&lt;/code> format.
You can optionally enable file rotation, compression, and separate output files based on a resource attribute.&lt;/p></description></item><item><title>otelcol.exporter.googlecloud</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.exporter.googlecloud/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.exporter.googlecloud/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolexportergooglecloud&#34;&gt;&lt;code&gt;otelcol.exporter.googlecloud&lt;/code&gt;&lt;/h1&gt;


&lt;div data-shared=&#34;stability/community.md&#34;&gt;
            &lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Community&lt;/strong&gt;: This component is developed, maintained, and supported by the Alloy user community.
Grafana doesn&amp;rsquo;t offer commercial support for this component.
To enable and use community components, you must set the &lt;code&gt;--feature.community-components.enabled&lt;/code&gt; 
    &lt;a href=&#34;/docs/alloy/v1.15/reference/cli/run/&#34;&gt;flag&lt;/a&gt; to &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Refer to &lt;a href=&#34;../../../../get-started/components/community-components/&#34;&gt;Community components&lt;/a&gt; for more information.&lt;/p&gt;&lt;/blockquote&gt;
&lt;/div&gt;

        
&lt;p&gt;&lt;code&gt;otelcol.exporter.googlecloud&lt;/code&gt; accepts metrics, traces, and logs from other &lt;code&gt;otelcol&lt;/code&gt; components and sends it to Google Cloud.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.exporter.googlecloud&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/exporter/googlecloudexporter&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;googlecloud&lt;/code&gt;&lt;/a&gt; exporter.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.exporter.googlecloud&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.exporter.googlecloud &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;authenticating&#34;&gt;Authenticating&lt;/h3&gt;
&lt;p&gt;Refer to the original &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/googlecloudexporter/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Google Cloud Exporter&lt;/a&gt; document.&lt;/p&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.exporter.googlecloud&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;project&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;GCP project identifier.&lt;/td&gt;
              &lt;td&gt;Fetch from credentials&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;destination_project_quota&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Counts quota for traces and metrics against the project to which the data is sent as opposed to the project associated with the Collector&amp;rsquo;s service account. For example, when setting &lt;code&gt;project_id&lt;/code&gt; or using multi-project export.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;user_agent&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Override the user agent string sent on requests to Cloud Monitoring (currently only applies to metrics). Specify &lt;code&gt;{{version}}&lt;/code&gt; to include the application version number.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;opentelemetry-collector-contrib {{version}}&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.exporter.googlecloud&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 8;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#impersonate\&amp;#34;\u003e\u003ccode\u003eimpersonate\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfiguration for service account impersonation\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#log\&amp;#34;\u003e\u003ccode\u003elog\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfiguration for sending logs to Cloud Logging.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#metric\&amp;#34;\u003e\u003ccode\u003emetric\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfiguration for sending metrics to Cloud Monitoring.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#experimental_wal\&amp;#34;\u003e\u003ccode\u003emetric\u003c/code\u003e \u0026gt; \u003ccode\u003eexperimental_wal\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfiguration for write ahead log for time series requests.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#sending_queue\&amp;#34;\u003e\u003ccode\u003esending_queue\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures batching of data before sending.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003esending_queue\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#batch\&amp;#34;\u003e\u003ccode\u003ebatch\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures batching requests based on a timeout and a minimum number of items.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#trace\&amp;#34;\u003e\u003ccode\u003etrace\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfiguration for sending traces to Cloud Trace.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#impersonate&#34;&gt;&lt;code&gt;impersonate&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configuration for service account impersonation&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#log&#34;&gt;&lt;code&gt;log&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configuration for sending logs to Cloud Logging.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configuration for sending metrics to Cloud Monitoring.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#experimental_wal&#34;&gt;&lt;code&gt;metric&lt;/code&gt; &amp;gt; &lt;code&gt;experimental_wal&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configuration for write ahead log for time series requests.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#sending_queue&#34;&gt;&lt;code&gt;sending_queue&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures batching of data before sending.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sending_queue&lt;/code&gt; &amp;gt; &lt;a href=&#34;#batch&#34;&gt;&lt;code&gt;batch&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures batching requests based on a timeout and a minimum number of items.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#trace&#34;&gt;&lt;code&gt;trace&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configuration for sending traces to Cloud Trace.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h3 id=&#34;impersonate&#34;&gt;&lt;code&gt;impersonate&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;target_principal&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;TargetPrincipal is the email address of the service account to impersonate.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;delegates&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Delegates are the service account email addresses in a delegation chain. Each service account must be granted roles/iam.serviceAccountTokenCreator on the next service account in the chain.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;subject&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Subject is the sub field of a JWT. This field should only be set if you need to impersonate as a user. This feature is useful when using domain wide delegation.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;log&#34;&gt;&lt;code&gt;log&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;compression&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Compression format for Log gRPC requests. Supported values: [&lt;code&gt;gzip&lt;/code&gt;].&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt; (no compression)&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;default_log_name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Defines a default name for log entries. If left unset, and a log entry doesn&amp;rsquo;t have the &lt;code&gt;gcp.log_name&lt;/code&gt; attribute set, the exporter returns an error processing that entry.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Endpoint where log data is sent.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;logging.googleapis.com:443&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;error_reporting_type&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables automatically parsing error logs to a JSON payload containing the type value for GCP Error Reporting.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;grpc_pool_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Sets the size of the connection pool in the GCP client.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;resource_filters&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(object)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;If provided, resource attributes matching any filter is included in log labels. Can be defined by &lt;code&gt;prefix&lt;/code&gt;, &lt;code&gt;regex&lt;/code&gt;, or &lt;code&gt;prefix&lt;/code&gt; AND &lt;code&gt;regex&lt;/code&gt;. Each object must contain one of &lt;code&gt;prefix&lt;/code&gt; or &lt;code&gt;regex&lt;/code&gt; or both.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;resource_filters&lt;/code&gt; &amp;gt; &lt;code&gt;prefix&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Match resource keys by prefix.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;resource_filters&lt;/code&gt; &amp;gt; &lt;code&gt;regex&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Match resource keys by regular expression.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;service_resource_labels&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;If true, the exporter copies the OTel service.name, service.namespace, and service.instance.id resource attributes into the GCM timeseries metric labels.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;use_insecure&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;If true, disables gRPC client transport security. Only has effect if Endpoint isn&amp;rsquo;t &lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;compression&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Compression format for Metrics gRPC requests. Supported values: [&lt;code&gt;gzip&lt;/code&gt;].&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt; (no compression)&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;create_metric_descriptor_buffer_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Buffer size for the  channel which asynchronously calls CreateMetricDescriptor.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;create_service_timeseries&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;If true, this sends all timeseries using &lt;code&gt;CreateServiceTimeSeries&lt;/code&gt;. Implicitly, this sets &lt;code&gt;skip_create_descriptor&lt;/code&gt; to true.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cumulative_normalization&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;If true, normalizes cumulative metrics without start times or with explicit reset points by subtracting subsequent points from the initial point. Since it caches starting points, it may result in increased memory usage.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Endpoint where metric data is sent to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;monitoring.googleapis.com:443&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;grpc_pool_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Sets the size of the connection pool in the GCP client.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;instrumentation_library_labels&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;If true, set the &lt;code&gt;instrumentation_source&lt;/code&gt; and &lt;code&gt;instrumentation_version&lt;/code&gt; labels.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;known_domains&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;If a metric belongs to one of these domains it doesn&amp;rsquo;t get a prefix.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[&amp;quot;googleapis.com&amp;quot;, &amp;quot;kubernetes.io&amp;quot;, &amp;quot;istio.io&amp;quot;, &amp;quot;knative.dev&amp;quot;]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;prefix&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The prefix to add to metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;workload.googleapis.com&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;resource_filters.prefix&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Match resource keys by prefix.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;resource_filters.regex&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Match resource keys by regular expression.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;resource_filters&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(object)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;If provided, resource attributes matching any filter is included in metric labels. Can be defined by &lt;code&gt;prefix&lt;/code&gt;, &lt;code&gt;regex&lt;/code&gt;, or &lt;code&gt;prefix&lt;/code&gt; AND &lt;code&gt;regex&lt;/code&gt;. Each object must contain one of &lt;code&gt;prefix&lt;/code&gt; or &lt;code&gt;regex&lt;/code&gt; or both.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;service_resource_labels&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;If true, the exporter copies the OTel service.name, service.namespace, and service.instance.id resource attributes into the GCM timeseries metric labels.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;skip_create_descriptor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;If set to true, don&amp;rsquo;t send metric descriptors to GCM.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sum_of_squared_deviation&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;If true, enables calculation of an estimated sum of squared deviation. It&amp;rsquo;s an estimate, and isn&amp;rsquo;t exact.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;use_insecure&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;If true, disables gRPC client transport security. Only has effect if Endpoint isn&amp;rsquo;t &lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;experimental_wal&#34;&gt;&lt;code&gt;experimental_wal&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;directory&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to local directory for the WAL file.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;./&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_backoff&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Max duration to retry requests on network errors (&lt;code&gt;UNAVAILABLE&lt;/code&gt; or &lt;code&gt;DEADLINE_EXCEEDED&lt;/code&gt;).&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;1h&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;sending_queue&#34;&gt;&lt;code&gt;sending_queue&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;sending_queue&lt;/code&gt; block configures queueing and batching for the exporter.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-queue-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;block_on_overflow&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The behavior when the component&amp;rsquo;s &lt;code&gt;TotalSize&lt;/code&gt; limit is reached.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables a buffer before sending data to the client.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;num_consumers&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Number of readers to send batches written to the queue in parallel.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;queue_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum number of unwritten batches allowed in the queue at the same time.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1000&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sizer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How the queue and batching is measured.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;requests&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;wait_for_result&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Determines if incoming requests are blocked until the request is processed or not.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;storage&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;capsule(otelcol.Handler)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Handler from an &lt;code&gt;otelcol.storage&lt;/code&gt; component to use to enable a persistent queue mechanism.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;code&gt;blocking&lt;/code&gt; argument is deprecated in favor of the &lt;code&gt;block_on_overflow&lt;/code&gt; argument.&lt;/p&gt;
&lt;p&gt;When &lt;code&gt;block_on_overflow&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;, the component will wait for space. Otherwise, operations will immediately return a retryable error.&lt;/p&gt;
&lt;p&gt;When &lt;code&gt;enabled&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;, data is first written to an in-memory buffer before sending it to the configured server.
Batches sent to the component&amp;rsquo;s &lt;code&gt;input&lt;/code&gt; exported field are added to the buffer as long as the number of unsent batches doesn&amp;rsquo;t exceed the configured &lt;code&gt;queue_size&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;queue_size&lt;/code&gt; determines how long an endpoint outage is tolerated.
Assuming 100 requests/second, the default queue size &lt;code&gt;1000&lt;/code&gt; provides about 10 seconds of outage tolerance.
To calculate the correct value for &lt;code&gt;queue_size&lt;/code&gt;, multiply the average number of outgoing requests per second by the time in seconds that outages are tolerated. A very high value can cause Out Of Memory (OOM) kills.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;sizer&lt;/code&gt; argument could be set to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;requests&lt;/code&gt;: number of incoming batches of metrics, logs, traces (the most performant option).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;items&lt;/code&gt;: number of the smallest parts of each signal (spans, metric data points, log records).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bytes&lt;/code&gt;: the size of serialized data in bytes (the least performant option).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The &lt;code&gt;num_consumers&lt;/code&gt; argument controls how many readers read from the buffer and send data in parallel.
Larger values of &lt;code&gt;num_consumers&lt;/code&gt; allow data to be sent more quickly at the expense of increased network traffic.&lt;/p&gt;
&lt;p&gt;If an &lt;code&gt;otelcol.storage.*&lt;/code&gt; component is configured and provided in the queue&amp;rsquo;s &lt;code&gt;storage&lt;/code&gt; argument, the queue uses the
provided storage extension to provide a persistent queue and the queue is no longer stored in memory.
Any data persisted will be processed on startup if Alloy is killed or restarted.
Refer to the 
    &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector/blob/v0.147.0/exporter/exporterhelper/README.md#persistent-queue&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;exporterhelper documentation&lt;/a&gt; in the OpenTelemetry Collector repository for more details.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;batch&#34;&gt;&lt;code&gt;batch&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;batch&lt;/code&gt; block configures batching requests based on a timeout and a minimum number of items.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-queue-batch-block.md&#34;&gt;
            &lt;p&gt;Batching is disabled by default.
To enable it, explicitly include &lt;code&gt;batch {}&lt;/code&gt; in your Alloy configuration.
You do not need to include a &lt;code&gt;batch {}&lt;/code&gt; block in your &lt;code&gt;otelcol.exporter&lt;/code&gt; if you already use a &lt;code&gt;otelcol.processor.batch&lt;/code&gt; component,
although batching in the exporter is the preferred method because it is more flexible.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;flush_timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Time after which a batch will be sent regardless of its size. Must be a non-zero value.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;200ms&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;min_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The minimum size of a batch.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;2000&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The maximum size of a batch, enables batch splitting.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;3000&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sizer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How the queue and batching is measured. Overrides the sizer set at the &lt;code&gt;sending_queue&lt;/code&gt; level for batching.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;items&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If configured, &lt;code&gt;max_size&lt;/code&gt; must be greater than or equal to &lt;code&gt;min_size&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;sizer&lt;/code&gt; argument can be set to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;items&lt;/code&gt;: The number of the smallest parts of each span, metric data point, or log record.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bytes&lt;/code&gt;: the size of serialized data in bytes (the least performant option).&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;trace&#34;&gt;&lt;code&gt;trace&lt;/code&gt;&lt;/h3&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;attribute_mappings&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(object)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Determines how to map from OpenTelemetry attribute keys to Google Cloud Trace keys. By default, it changes HTTP and service keys so that they appear more prominently in the UI.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;attribute_mappings&lt;/code&gt; &amp;gt; &lt;code&gt;key&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The OpenTelemetry attribute key.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;attribute_mappings&lt;/code&gt; &amp;gt; &lt;code&gt;replacement&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The attribute sent to Google Cloud Trace.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Endpoint where trace data is sent.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;cloudtrace.googleapis.com:443&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;grpc_pool_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Sets the size of the connection pool in the GCP client. Defaults to a single connection.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;use_insecure&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;If true, disables gRPC client transport security. Only has effect if Endpoint isn&amp;rsquo;t &lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;The following fields are exported and can be referenced by other components:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&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;code&gt;input&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A value other components can use to send telemetry data to.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;input&lt;/code&gt; accepts &lt;code&gt;otelcol.Consumer&lt;/code&gt; data for any telemetry signal (metrics, logs, or traces).&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.googlecloud&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.googlecloud&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;p&gt;This example scrapes logs from local files through a receiver for conversion to OpenTelemetry format before finally sending them to Cloud Logging.&lt;/p&gt;
&lt;p&gt;This configuration includes the recommended &lt;code&gt;memory_limiter&lt;/code&gt; and &lt;code&gt;batch&lt;/code&gt; plugins, which avoid high latency for reporting telemetry, and ensure that the collector itself will stay stable (not run out of memory) by dropping telemetry if needed.&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.file_match &amp;#34;logs&amp;#34; {
  path_targets = [{
    __address__ = &amp;#34;localhost&amp;#34;,
    __path__    = &amp;#34;/var/log/{syslog,messages,*.log}&amp;#34;,
    instance    = constants.hostname,
    job         = &amp;#34;integrations/node_exporter&amp;#34;,
  }]
}

loki.source.file &amp;#34;logs&amp;#34; {
  targets    = local.file_match.logs.targets
  forward_to = [otelcol.receiver.loki.gcp.receiver]
}

otelcol.receiver.loki &amp;#34;gcp&amp;#34; {
  output {
    logs = [otelcol.processor.memory_limiter.gcp.input]
  }
}

otelcol.processor.memory_limiter &amp;#34;gcp&amp;#34; {
  check_interval = &amp;#34;1s&amp;#34;
  limit = &amp;#34;200MiB&amp;#34;

  output {
    metrics = [otelcol.processor.batch.gcp.input]
    logs = [otelcol.processor.batch.gcp.input]
    traces = [otelcol.processor.batch.gcp.input]
  }
}

otelcol.processor.batch &amp;#34;gcp&amp;#34; {
  output {
    metrics = [otelcol.exporter.googlecloud.default.input]
    logs = [otelcol.exporter.googlecloud.default.input]
    traces = [otelcol.exporter.googlecloud.default.input]
  }
}

otelcol.exporter.googlecloud &amp;#34;default&amp;#34; {
  project = &amp;#34;my-gcp-project&amp;#34;
  log {
    default_log_name = &amp;#34;opentelemetry.io/collector-exported-log&amp;#34;
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.googlecloud&lt;/code&gt; has exports that can be consumed by the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that consume &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-consumers&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolexportergooglecloud">&lt;code>otelcol.exporter.googlecloud&lt;/code>&lt;/h1>
&lt;div data-shared="stability/community.md">
&lt;blockquote>
&lt;p>&lt;strong>Community&lt;/strong>: This component is developed, maintained, and supported by the Alloy user community.
Grafana doesn&amp;rsquo;t offer commercial support for this component.
To enable and use community components, you must set the &lt;code>--feature.community-components.enabled&lt;/code>
&lt;a href="/docs/alloy/v1.15/reference/cli/run/">flag&lt;/a> to &lt;code>true&lt;/code>.&lt;/p></description></item><item><title>otelcol.exporter.googlecloudpubsub</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.exporter.googlecloudpubsub/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.exporter.googlecloudpubsub/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolexportergooglecloudpubsub&#34;&gt;&lt;code&gt;otelcol.exporter.googlecloudpubsub&lt;/code&gt;&lt;/h1&gt;


&lt;div data-shared=&#34;stability/community.md&#34;&gt;
            &lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Community&lt;/strong&gt;: This component is developed, maintained, and supported by the Alloy user community.
Grafana doesn&amp;rsquo;t offer commercial support for this component.
To enable and use community components, you must set the &lt;code&gt;--feature.community-components.enabled&lt;/code&gt; 
    &lt;a href=&#34;/docs/alloy/v1.15/reference/cli/run/&#34;&gt;flag&lt;/a&gt; to &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Refer to &lt;a href=&#34;../../../../get-started/components/community-components/&#34;&gt;Community components&lt;/a&gt; for more information.&lt;/p&gt;&lt;/blockquote&gt;
&lt;/div&gt;

        
&lt;p&gt;&lt;code&gt;otelcol.exporter.googlecloudpubsub&lt;/code&gt; accepts metrics, traces, and logs from other &lt;code&gt;otelcol&lt;/code&gt; components and sends it to Google Cloud Pub/Sub Topic.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.exporter.googlecloudpubsub&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/exporter/googlecloudpubsubexporter&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;googlecloudpubsub&lt;/code&gt;&lt;/a&gt; exporter.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.exporter.googlecloudpubsub&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.exporter.googlecloudpubsub &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
    project = &amp;#34;&amp;lt;PROJECT-ID&amp;gt;&amp;#34;
    topic   = &amp;#34;projects/&amp;lt;PROJECT-ID&amp;gt;/topics/&amp;lt;TOPIC-NAME&amp;gt;&amp;#34;
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;authenticating&#34;&gt;Authenticating&lt;/h3&gt;
&lt;p&gt;Refer to the &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/googlecloudpubsubexporter/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Google Cloud Pub/Sub Exporter&lt;/a&gt; and &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/googlecloudexporter#prerequisite-authenticating&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Google Cloud Exporter&lt;/a&gt; documentation for more detailed information about authentication.&lt;/p&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.exporter.googlecloudpubsub&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;topic&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The topic name to send OTLP data over. The topic name should be a fully qualified resource name, for example, &lt;code&gt;projects/otel-project/topics/otlp&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;compression&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The compression used on the data sent to the topic. Only &lt;code&gt;gzip&lt;/code&gt; is supported. Default is no compression.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Override the default Pub/Sub endpoint. This is useful when connecting to the Pub/Sub emulator instance or switching between &lt;a href=&#34;https://cloud.google.com/pubsub/docs/reference/service_apis_overview#service_endpoints&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;global and regional service endpoints&lt;/a&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;insecure&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Allows performing insecure SSL connections and transfers. This is useful when connecting to a local emulator instance. Only has effect if you set &lt;code&gt;endpoint&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;project&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Google Cloud Platform project identifier.&lt;/td&gt;
              &lt;td&gt;Fetch from credentials&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;Duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Timeout for calls to the Pub/Sub API.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;12s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;user_agent&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Override the user agent string on requests to Cloud Monitoring. This only applies to metrics. Specify &lt;code&gt;{{version}}&lt;/code&gt; to include the application version number.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;opentelemetry-collector-contrib {{version}}&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.exporter.googlecloudpubsub&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 5;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#ordering\&amp;#34;\u003e\u003ccode\u003eordering\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the \u003ca href=\&amp;#34;https://cloud.google.com/pubsub/docs/ordering\&amp;#34; target=\&amp;#34;_blank\&amp;#34; rel=\&amp;#34;noopener noreferrer\&amp;#34;\u003ePub/Sub ordering\u003c/a\u003e feature.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#retry_on_failure\&amp;#34;\u003e\u003ccode\u003eretry_on_failure\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the retry behavior when the receiver encounters an error downstream in the pipeline.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#sending_queue\&amp;#34;\u003e\u003ccode\u003esending_queue\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures batching of data before sending.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#watermark\&amp;#34;\u003e\u003ccode\u003ewatermark\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eBehaviour of how the ce-time attribute is set.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#ordering&#34;&gt;&lt;code&gt;ordering&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the &lt;a href=&#34;https://cloud.google.com/pubsub/docs/ordering&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Pub/Sub ordering&lt;/a&gt; feature.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#retry_on_failure&#34;&gt;&lt;code&gt;retry_on_failure&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the retry behavior when the receiver encounters an error downstream in the pipeline.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#sending_queue&#34;&gt;&lt;code&gt;sending_queue&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures batching of data before sending.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#watermark&#34;&gt;&lt;code&gt;watermark&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Behaviour of how the ce-time attribute is set.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h3 id=&#34;ordering&#34;&gt;&lt;code&gt;ordering&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables ordering.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;from_resource_attribute&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Resource attribute used as the ordering key. Required when &lt;code&gt;enabled&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;. If the resource attribute is missing or has an empty value, messages aren&amp;rsquo;t ordered for this resource.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;remove_resource_attribute&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether the ordering key resource attribute specified &lt;code&gt;from_resource_attribute&lt;/code&gt; should be removed from the resource attributes.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;retry_on_failure&#34;&gt;&lt;code&gt;retry_on_failure&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;retry_on_failure&lt;/code&gt; block configures how failed requests to Datadog are retried.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-retry-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables retrying failed requests.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;initial_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Initial time to wait before retrying a failed request.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;5s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_elapsed_time&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum time to wait before discarding a failed batch.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;5m&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum time to wait between retries.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;30s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;multiplier&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Factor to grow wait time before retrying.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1.5&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;randomization_factor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Factor to randomize wait time before retrying.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;0.5&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;When &lt;code&gt;enabled&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;, failed batches are retried after a given interval.
The &lt;code&gt;initial_interval&lt;/code&gt; argument specifies how long to wait before the first retry attempt.
If requests continue to fail, the time to wait before retrying increases by the factor specified by the &lt;code&gt;multiplier&lt;/code&gt; argument, which must be greater than &lt;code&gt;1.0&lt;/code&gt;.
The &lt;code&gt;max_interval&lt;/code&gt; argument specifies the upper bound of how long to wait between retries.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;randomization_factor&lt;/code&gt; argument is useful for adding jitter between retrying Alloy instances.
If &lt;code&gt;randomization_factor&lt;/code&gt; is greater than &lt;code&gt;0&lt;/code&gt;, the wait time before retries is multiplied by a random factor in the range &lt;code&gt;[ I - randomization_factor * I, I &#43; randomization_factor * I]&lt;/code&gt;, where &lt;code&gt;I&lt;/code&gt; is the current interval.&lt;/p&gt;
&lt;p&gt;If a batch hasn&amp;rsquo;t been sent successfully, it&amp;rsquo;s discarded after the time specified by &lt;code&gt;max_elapsed_time&lt;/code&gt; elapses.
If &lt;code&gt;max_elapsed_time&lt;/code&gt; is set to &lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;, failed requests are retried forever until they succeed.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;sending_queue&#34;&gt;&lt;code&gt;sending_queue&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;sending_queue&lt;/code&gt; block configures an in-memory buffer of batches before data is sent to the HTTP server.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-queue-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;block_on_overflow&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The behavior when the component&amp;rsquo;s &lt;code&gt;TotalSize&lt;/code&gt; limit is reached.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables a buffer before sending data to the client.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;num_consumers&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Number of readers to send batches written to the queue in parallel.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;queue_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum number of unwritten batches allowed in the queue at the same time.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1000&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sizer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How the queue and batching is measured.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;requests&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;wait_for_result&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Determines if incoming requests are blocked until the request is processed or not.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;storage&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;capsule(otelcol.Handler)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Handler from an &lt;code&gt;otelcol.storage&lt;/code&gt; component to use to enable a persistent queue mechanism.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;code&gt;blocking&lt;/code&gt; argument is deprecated in favor of the &lt;code&gt;block_on_overflow&lt;/code&gt; argument.&lt;/p&gt;
&lt;p&gt;When &lt;code&gt;block_on_overflow&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;, the component will wait for space. Otherwise, operations will immediately return a retryable error.&lt;/p&gt;
&lt;p&gt;When &lt;code&gt;enabled&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;, data is first written to an in-memory buffer before sending it to the configured server.
Batches sent to the component&amp;rsquo;s &lt;code&gt;input&lt;/code&gt; exported field are added to the buffer as long as the number of unsent batches doesn&amp;rsquo;t exceed the configured &lt;code&gt;queue_size&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;queue_size&lt;/code&gt; determines how long an endpoint outage is tolerated.
Assuming 100 requests/second, the default queue size &lt;code&gt;1000&lt;/code&gt; provides about 10 seconds of outage tolerance.
To calculate the correct value for &lt;code&gt;queue_size&lt;/code&gt;, multiply the average number of outgoing requests per second by the time in seconds that outages are tolerated. A very high value can cause Out Of Memory (OOM) kills.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;sizer&lt;/code&gt; argument could be set to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;requests&lt;/code&gt;: number of incoming batches of metrics, logs, traces (the most performant option).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;items&lt;/code&gt;: number of the smallest parts of each signal (spans, metric data points, log records).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bytes&lt;/code&gt;: the size of serialized data in bytes (the least performant option).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The &lt;code&gt;num_consumers&lt;/code&gt; argument controls how many readers read from the buffer and send data in parallel.
Larger values of &lt;code&gt;num_consumers&lt;/code&gt; allow data to be sent more quickly at the expense of increased network traffic.&lt;/p&gt;
&lt;p&gt;If an &lt;code&gt;otelcol.storage.*&lt;/code&gt; component is configured and provided in the queue&amp;rsquo;s &lt;code&gt;storage&lt;/code&gt; argument, the queue uses the
provided storage extension to provide a persistent queue and the queue is no longer stored in memory.
Any data persisted will be processed on startup if Alloy is killed or restarted.
Refer to the 
    &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector/blob/v0.147.0/exporter/exporterhelper/README.md#persistent-queue&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;exporterhelper documentation&lt;/a&gt; in the OpenTelemetry Collector repository for more details.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;watermark&#34;&gt;&lt;code&gt;watermark&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;behavior&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;current&lt;/code&gt; sets the &lt;code&gt;ce-time&lt;/code&gt; attribute to the system clock, &lt;code&gt;earliest&lt;/code&gt; sets the attribute to the smallest timestamp of all the messages.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;allow_drift&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;Duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The maximum difference the &lt;code&gt;ce-time&lt;/code&gt; attribute can have from the system clock. If you set &lt;code&gt;allow_drift&lt;/code&gt; to &lt;code&gt;0s&lt;/code&gt; and &lt;code&gt;behavior&lt;/code&gt; to &lt;code&gt;earliest&lt;/code&gt;, the maximum drift from the clock is allowed.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;0s&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;The following fields are exported and can be referenced by other components:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&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;code&gt;input&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A value other components can use to send telemetry data to.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;input&lt;/code&gt; accepts &lt;code&gt;otelcol.Consumer&lt;/code&gt; data for any telemetry signal , including metrics, logs, and traces.&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.googlecloudpubsub&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.googlecloudpubsub&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;p&gt;This example scrapes logs from local files through a receiver for conversion to OpenTelemetry format before finally sending them to Pub/Sub.&lt;/p&gt;
&lt;p&gt;This configuration includes the recommended &lt;code&gt;memory_limiter&lt;/code&gt; and &lt;code&gt;batch&lt;/code&gt; plugins, which avoid high reporting latency and ensure the collector stays stable by dropping telemetry when memory limits are reached.&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.file_match &amp;#34;logs&amp;#34; {
  path_targets = [{
    __address__ = &amp;#34;localhost&amp;#34;,
    __path__    = &amp;#34;/var/log/{syslog,messages,*.log}&amp;#34;,
    instance    = constants.hostname,
    job         = &amp;#34;integrations/node_exporter&amp;#34;,
  }]
}

loki.source.file &amp;#34;logs&amp;#34; {
  targets    = local.file_match.logs.targets
  forward_to = [otelcol.receiver.loki.gcp.receiver]
}

otelcol.receiver.loki &amp;#34;gcp&amp;#34; {
  output {
    logs = [otelcol.processor.memory_limiter.gcp.input]
  }
}

otelcol.processor.memory_limiter &amp;#34;gcp&amp;#34; {
  check_interval = &amp;#34;1s&amp;#34;
  limit = &amp;#34;200MiB&amp;#34;

  output {
    metrics = [otelcol.processor.batch.gcp.input]
    logs = [otelcol.processor.batch.gcp.input]
    traces = [otelcol.processor.batch.gcp.input]
  }
}

otelcol.processor.batch &amp;#34;gcp&amp;#34; {
  output {
    metrics = [otelcol.exporter.googlecloudpubsub.default.input]
    logs = [otelcol.exporter.googlecloudpubsub.default.input]
    traces = [otelcol.exporter.googlecloudpubsub.default.input]
  }
}

otelcol.exporter.googlecloudpubsub &amp;#34;default&amp;#34; {
  project = &amp;#34;my-gcp-project&amp;#34;
  topic = &amp;#34;projects/&amp;lt;my-gcp-project&amp;gt;/topics/my-pubsub-topic&amp;#34;
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.googlecloudpubsub&lt;/code&gt; has exports that can be consumed by the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that consume &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-consumers&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolexportergooglecloudpubsub">&lt;code>otelcol.exporter.googlecloudpubsub&lt;/code>&lt;/h1>
&lt;div data-shared="stability/community.md">
&lt;blockquote>
&lt;p>&lt;strong>Community&lt;/strong>: This component is developed, maintained, and supported by the Alloy user community.
Grafana doesn&amp;rsquo;t offer commercial support for this component.
To enable and use community components, you must set the &lt;code>--feature.community-components.enabled&lt;/code>
&lt;a href="/docs/alloy/v1.15/reference/cli/run/">flag&lt;/a> to &lt;code>true&lt;/code>.&lt;/p></description></item><item><title>otelcol.exporter.kafka</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.exporter.kafka/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.exporter.kafka/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolexporterkafka&#34;&gt;&lt;code&gt;otelcol.exporter.kafka&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.kafka&lt;/code&gt; accepts logs, metrics, and traces telemetry data from other &lt;code&gt;otelcol&lt;/code&gt; components and sends it to Kafka.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s important to use &lt;code&gt;otelcol.exporter.kafka&lt;/code&gt; together with &lt;code&gt;otelcol.processor.batch&lt;/code&gt; to make sure &lt;code&gt;otelcol.exporter.kafka&lt;/code&gt; doesn&amp;rsquo;t slow down due to sending Kafka a huge number of small payloads.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.exporter.kafka&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/exporter/kafkaexporter&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;kafka&lt;/code&gt;&lt;/a&gt; exporter.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;Multiple &lt;code&gt;otelcol.exporter.kafka&lt;/code&gt; components can be specified by giving them
different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.exporter.kafka &amp;#34;LABEL&amp;#34; {
  protocol_version = &amp;#34;PROTOCOL_VERSION&amp;#34;
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.exporter.kafka&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;protocol_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Kafka protocol version to use.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;brokers&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Kafka brokers to connect to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[&amp;quot;localhost:9092&amp;quot;]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;allow_auto_topic_creation&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to allow automatic topic creation.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;client_id&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Consumer client ID to use. The ID will be used for all produce requests.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;otel-collector&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;conn_idle_timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Time after which idle connections are not reused and may be closed.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;9m&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;encoding&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;(Deprecated) Encoding of payload read from Kafka.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;otlp_proto&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_metadata_keys&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of metadata keys to propagate as Kafka message headers.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;partition_metrics_by_resource_attributes&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to include the hash of sorted resource attributes as the message partitioning key in metric messages sent to Kafka.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;partition_logs_by_resource_attributes&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to include the hash of sorted resource attributes as the message partitioning key in log messages sent to Kafka.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;partition_logs_by_trace_id&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to use the 16-bit hex string of the trace ID as the message partitioning key in log messages sent to Kafka.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;partition_traces_by_id&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to include the trace ID as the message key in trace messages sent to Kafka.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;resolve_canonical_bootstrap_servers_only&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to resolve then reverse-lookup broker IPs during startup.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The timeout for every attempt to send data to the backend.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;5s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;topic_from_attribute&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A resource attribute whose value should be used as the message&amp;rsquo;s topic.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;topic&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;(Deprecated) Kafka topic to send to.&lt;/td&gt;
              &lt;td&gt;&lt;em&gt;See below&lt;/em&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;

&lt;div class=&#34;admonition admonition-warning&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Warning&lt;/p&gt;&lt;p&gt;The &lt;code&gt;topic&lt;/code&gt; and &lt;code&gt;encoding&lt;/code&gt; arguments are deprecated in favor of the [&lt;code&gt;logs&lt;/code&gt;][logs], [&lt;code&gt;metrics&lt;/code&gt;][metrics], and [&lt;code&gt;traces&lt;/code&gt;][traces] blocks.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;When &lt;code&gt;topic_from_metadata_key&lt;/code&gt; is set in a signal-specific block, it will take precedence over &lt;code&gt;topic_from_attribute&lt;/code&gt; and &lt;code&gt;topic&lt;/code&gt; arguments.
When &lt;code&gt;topic_from_attribute&lt;/code&gt; is set, it will take precedence over the &lt;code&gt;topic&lt;/code&gt; arguments in [&lt;code&gt;logs&lt;/code&gt;][logs], [&lt;code&gt;metrics&lt;/code&gt;][metrics], and [&lt;code&gt;traces&lt;/code&gt;][traces] blocks.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;partition_traces_by_id&lt;/code&gt; doesn&amp;rsquo;t have any effect on Jaeger encoding exporters since Jaeger exporters include trace ID as the message key by default.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;partition_logs_by_resource_attributes&lt;/code&gt; and &lt;code&gt;partition_logs_by_trace_id&lt;/code&gt; are mutually exclusive and can&amp;rsquo;t both be &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;include_metadata_keys&lt;/code&gt; specifies metadata keys to propagate as Kafka message headers. If one or more keys aren&amp;rsquo;t found in the metadata, they are ignored. The keys also partition the data before export if &lt;code&gt;sending_queue.batch&lt;/code&gt; is defined.&lt;/p&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.exporter.kafka&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 20;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#authentication\&amp;#34;\u003e\u003ccode\u003eauthentication\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures authentication for connecting to Kafka brokers.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eauthentication\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#kerberos\&amp;#34;\u003e\u003ccode\u003ekerberos\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eAuthenticates against Kafka brokers with Kerberos.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eauthentication\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#plaintext\&amp;#34;\u003e\u003ccode\u003eplaintext\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eAuthenticates against Kafka brokers with plaintext.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eauthentication\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#sasl\&amp;#34;\u003e\u003ccode\u003esasl\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eAuthenticates against Kafka brokers with SASL.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eauthentication\u003c/code\u003e \u0026gt; \u003ccode\u003esasl\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#aws_msk\&amp;#34;\u003e\u003ccode\u003eaws_msk\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eAdditional SASL parameters when using AWS_MSK_IAM_OAUTHBEARER.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eauthentication\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#tls\&amp;#34;\u003e\u003ccode\u003etls\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TLS for connecting to the Kafka brokers.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eauthentication\u003c/code\u003e \u0026gt; \u003ccode\u003etls\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#tpm\&amp;#34;\u003e\u003ccode\u003etpm\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TPM for the TLS `key_file.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics which this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#logs\&amp;#34;\u003e\u003ccode\u003elogs\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures how to send logs to Kafka brokers.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#metadata\&amp;#34;\u003e\u003ccode\u003emetadata\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures how to retrieve metadata from Kafka brokers.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003emetadata\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#retry\&amp;#34;\u003e\u003ccode\u003eretry\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures how to retry metadata retrieval.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#metrics\&amp;#34;\u003e\u003ccode\u003emetrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures how to send metrics to Kafka brokers.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#producer\&amp;#34;\u003e\u003ccode\u003eproducer\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eKafka producer configuration,\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eproducer\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#compression_params\&amp;#34;\u003e\u003ccode\u003ecompression_params\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the compression parameters for the kafka producer.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#retry_on_failure\&amp;#34;\u003e\u003ccode\u003eretry_on_failure\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures retry mechanism for failed requests.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#sending_queue\&amp;#34;\u003e\u003ccode\u003esending_queue\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures batching of data before sending.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003esending_queue\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#batch\&amp;#34;\u003e\u003ccode\u003ebatch\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures batching requests based on a timeout and a minimum number of items.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#tls\&amp;#34;\u003e\u003ccode\u003etls\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TLS for connecting to the Kafka brokers.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003etls\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#tpm\&amp;#34;\u003e\u003ccode\u003etpm\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TPM settings for the TLS \u003ccode\u003ekey_file\u003c/code\u003e.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#traces\&amp;#34;\u003e\u003ccode\u003etraces\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures how to send traces to Kafka brokers.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#authentication&#34;&gt;&lt;code&gt;authentication&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures authentication for connecting to Kafka brokers.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;authentication&lt;/code&gt; &amp;gt; &lt;a href=&#34;#kerberos&#34;&gt;&lt;code&gt;kerberos&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Authenticates against Kafka brokers with Kerberos.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;authentication&lt;/code&gt; &amp;gt; &lt;a href=&#34;#plaintext&#34;&gt;&lt;code&gt;plaintext&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Authenticates against Kafka brokers with plaintext.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;authentication&lt;/code&gt; &amp;gt; &lt;a href=&#34;#sasl&#34;&gt;&lt;code&gt;sasl&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Authenticates against Kafka brokers with SASL.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;authentication&lt;/code&gt; &amp;gt; &lt;code&gt;sasl&lt;/code&gt; &amp;gt; &lt;a href=&#34;#aws_msk&#34;&gt;&lt;code&gt;aws_msk&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Additional SASL parameters when using AWS_MSK_IAM_OAUTHBEARER.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;authentication&lt;/code&gt; &amp;gt; &lt;a href=&#34;#tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TLS for connecting to the Kafka brokers.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;authentication&lt;/code&gt; &amp;gt; &lt;code&gt;tls&lt;/code&gt; &amp;gt; &lt;a href=&#34;#tpm&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TPM for the TLS `key_file.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics which this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#logs&#34;&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures how to send logs to Kafka brokers.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#metadata&#34;&gt;&lt;code&gt;metadata&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures how to retrieve metadata from Kafka brokers.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metadata&lt;/code&gt; &amp;gt; &lt;a href=&#34;#retry&#34;&gt;&lt;code&gt;retry&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures how to retry metadata retrieval.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#metrics&#34;&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures how to send metrics to Kafka brokers.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#producer&#34;&gt;&lt;code&gt;producer&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Kafka producer configuration,&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;producer&lt;/code&gt; &amp;gt; &lt;a href=&#34;#compression_params&#34;&gt;&lt;code&gt;compression_params&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the compression parameters for the kafka producer.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#retry_on_failure&#34;&gt;&lt;code&gt;retry_on_failure&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures retry mechanism for failed requests.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#sending_queue&#34;&gt;&lt;code&gt;sending_queue&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures batching of data before sending.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sending_queue&lt;/code&gt; &amp;gt; &lt;a href=&#34;#batch&#34;&gt;&lt;code&gt;batch&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures batching requests based on a timeout and a minimum number of items.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TLS for connecting to the Kafka brokers.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;tls&lt;/code&gt; &amp;gt; &lt;a href=&#34;#tpm&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TPM settings for the TLS &lt;code&gt;key_file&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#traces&#34;&gt;&lt;code&gt;traces&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures how to send traces to Kafka brokers.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;logs&#34;&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;logs&lt;/code&gt; block configures how to send logs to Kafka brokers.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;encoding&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The encoding for logs. Refer to &lt;a href=&#34;#supported-encodings&#34;&gt;Supported encodings&lt;/a&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;otlp_proto&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;topic&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The name of the Kafka topic to which logs will be exported.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;otlp_logs&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;topic_from_metadata_key&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The name of the metadata key whose value should be used as the message&amp;rsquo;s topic. Takes precedence over &lt;code&gt;topic_from_attribute&lt;/code&gt; and &lt;code&gt;topic&lt;/code&gt; settings.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;metrics&#34;&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;metrics&lt;/code&gt; block configures how to send metrics to Kafka brokers.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;encoding&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The encoding for metrics. Refer to &lt;a href=&#34;#supported-encodings&#34;&gt;Supported encodings&lt;/a&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;otlp_proto&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;topic&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The name of the Kafka topic to which metrics will be exported.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;otlp_metrics&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;topic_from_metadata_key&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The name of the metadata key whose value should be used as the message&amp;rsquo;s topic. Takes precedence over &lt;code&gt;topic_from_attribute&lt;/code&gt; and &lt;code&gt;topic&lt;/code&gt; settings.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;traces&#34;&gt;&lt;code&gt;traces&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;traces&lt;/code&gt; block configures how to send traces to Kafka brokers.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;encoding&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The encoding for traces. Refer to &lt;a href=&#34;#supported-encodings&#34;&gt;Supported encodings&lt;/a&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;otlp_proto&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;topic&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The name of the Kafka topic to which traces will be exported.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;otlp_spans&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;topic_from_metadata_key&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The name of the metadata key whose value should be used as the message&amp;rsquo;s topic. Takes precedence over &lt;code&gt;topic_from_attribute&lt;/code&gt; and &lt;code&gt;topic&lt;/code&gt; settings.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;authentication&#34;&gt;&lt;code&gt;authentication&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-kafka-authentication.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;authentication&lt;/code&gt; block holds the definition of different authentication mechanisms to use when connecting to Kafka brokers.
It doesn&amp;rsquo;t support any arguments and is configured fully through inner blocks.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;kerberos&#34;&gt;&lt;code&gt;kerberos&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-kafka-authentication-kerberos.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;kerberos&lt;/code&gt; block configures Kerberos authentication against the Kafka broker.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;config_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to Kerberos location, for example, &lt;code&gt;/etc/krb5.conf&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_fast_negotiation&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Disable PA-FX-FAST negotiation.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;keytab_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to keytab file, for example, &lt;code&gt;/etc/security/kafka.keytab&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;password&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;secret&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Kerberos password to authenticate with.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;realm&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Kerberos realm.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;service_name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Kerberos service name.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;use_keytab&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables using keytab instead of password.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;username&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Kerberos username to authenticate as.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;When &lt;code&gt;use_keytab&lt;/code&gt; is &lt;code&gt;false&lt;/code&gt;, the &lt;code&gt;password&lt;/code&gt; argument is required.
When &lt;code&gt;use_keytab&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;, the file pointed to by the &lt;code&gt;keytab_file&lt;/code&gt; argument is used for authentication instead.
At most one of &lt;code&gt;password&lt;/code&gt; or &lt;code&gt;keytab_file&lt;/code&gt; must be provided.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;disable_fast_negotiation&lt;/code&gt; is useful for Kerberos implementations which don&amp;rsquo;t support PA-FX-FAST (Pre-Authentication Framework - Fast) negotiation.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;plaintext&#34;&gt;&lt;code&gt;plaintext&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-kafka-authentication-plaintext.md&#34;&gt;
            

&lt;div class=&#34;admonition admonition-caution&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Caution&lt;/p&gt;&lt;p&gt;The &lt;code&gt;plaintext&lt;/code&gt; block has been deprecated.
Use &lt;code&gt;sasl&lt;/code&gt; with &lt;code&gt;mechanism&lt;/code&gt; set to &lt;code&gt;PLAIN&lt;/code&gt; instead.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;The &lt;code&gt;plaintext&lt;/code&gt; block configures plain text authentication against Kafka brokers.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;password&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;secret&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Password to use for plain text authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;username&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Username to use for plain text authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;

        
&lt;h3 id=&#34;sasl&#34;&gt;&lt;code&gt;sasl&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-kafka-authentication-sasl.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;sasl&lt;/code&gt; block configures SASL authentication against Kafka brokers.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;mechanism&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;SASL mechanism to use when authenticating.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;password&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;secret&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Password to use for SASL authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;username&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Username to use for SASL authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Version of the SASL Protocol to use when authenticating.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You can set the &lt;code&gt;mechanism&lt;/code&gt; argument to one of the following strings:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;PLAIN&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;SCRAM-SHA-256&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;SCRAM-SHA-512&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;AWS_MSK_IAM_OAUTHBEARER&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When &lt;code&gt;mechanism&lt;/code&gt; is set to &lt;code&gt;&amp;quot;AWS_MSK_IAM_OAUTHBEARER&amp;quot;&lt;/code&gt;, the &lt;code&gt;aws_msk&lt;/code&gt; child block must also be provided.&lt;/p&gt;
&lt;p&gt;You can set the &lt;code&gt;version&lt;/code&gt; argument to either &lt;code&gt;0&lt;/code&gt; or &lt;code&gt;1&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;aws_msk&#34;&gt;&lt;code&gt;aws_msk&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-kafka-authentication-sasl-aws_msk.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;aws_msk&lt;/code&gt; block configures extra parameters for SASL authentication when using the &lt;code&gt;AWS_MSK_IAM_OAUTHBEARER&lt;/code&gt; mechanisms.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;region&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;AWS region the MSK cluster is based in.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;

        
&lt;h3 id=&#34;tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;tls&lt;/code&gt; block configures TLS settings used for connecting to the Kafka brokers.
If the &lt;code&gt;tls&lt;/code&gt; block isn&amp;rsquo;t provided, TLS won&amp;rsquo;t be used for communication.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-tls-client-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ca_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the CA file.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ca_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;CA PEM-encoded text to validate the server with.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cert_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS certificate.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cert_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Certificate PEM-encoded text for client authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cipher_suites&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of TLS cipher suites that the TLS transport can use.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;curve_preferences&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Set of elliptic curves to use in a handshake.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_system_ca_certs_pool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to load the system certificate authorities pool alongside the certificate authority.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;insecure_skip_verify&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Ignores insecure server TLS certificates.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;insecure&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Disables TLS when connecting to the configured server.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS certificate key.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;secret&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Key PEM-encoded text for client authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum acceptable TLS version for connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;TLS 1.3&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;min_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Minimum acceptable TLS version for connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;TLS 1.2&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;reload_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The duration after which the certificate is reloaded.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;server_name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Verifies the hostname of server certificates when set.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If the server doesn&amp;rsquo;t support TLS, you must set the &lt;code&gt;insecure&lt;/code&gt; argument to &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;To disable &lt;code&gt;tls&lt;/code&gt; for connections to the server, set the &lt;code&gt;insecure&lt;/code&gt; argument to &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;If you set &lt;code&gt;reload_interval&lt;/code&gt; to &lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;, the certificate never reloaded.&lt;/p&gt;
&lt;p&gt;The following pairs of arguments are mutually exclusive and can&amp;rsquo;t both be set simultaneously:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ca_pem&lt;/code&gt; and &lt;code&gt;ca_file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cert_pem&lt;/code&gt; and &lt;code&gt;cert_file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;key_pem&lt;/code&gt; and &lt;code&gt;key_file&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If &lt;code&gt;cipher_suites&lt;/code&gt; is left blank, a safe default list is used.
Refer to the &lt;a href=&#34;https://go.dev/src/crypto/tls/cipher_suites.go&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Go TLS documentation&lt;/a&gt; for a list of supported cipher suites.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;curve_preferences&lt;/code&gt; argument determines the set of &lt;a href=&#34;https://go.dev/src/crypto/tls/common.go#L138&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;elliptic curves&lt;/a&gt; to prefer during a handshake in preference order.
If not provided, a default list is used.
The set of elliptic curves available are &lt;code&gt;X25519&lt;/code&gt;, &lt;code&gt;P521&lt;/code&gt;, &lt;code&gt;P256&lt;/code&gt;, and &lt;code&gt;P384&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;tpm&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;tpm&lt;/code&gt; block configures retrieving the TLS &lt;code&gt;key_file&lt;/code&gt; from a trusted device.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-tls-tpm-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The authorization value used to authenticate the TPM device.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Load the &lt;code&gt;tls.key_file&lt;/code&gt; from TPM.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;owner_auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The owner authorization value used to authenticate the TPM device.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;path&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TPM device or Unix domain socket.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;a href=&#34;https://trustedcomputinggroup.org/resource/trusted-platform-module-tpm-summary/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;trusted platform module&lt;/a&gt; (TPM) configuration can be used for loading TLS key from TPM. Currently only TSS2 format is supported.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;path&lt;/code&gt; attribute is not supported on Windows.&lt;/p&gt;
&lt;p&gt;In the following example, the private key &lt;code&gt;my-tss2-key.key&lt;/code&gt; in TSS2 format is loaded from the TPM device &lt;code&gt;/dev/tmprm0&lt;/code&gt;:&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;otelcol.example.component &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
    ...
    tls {
        ...
        key_file = &amp;#34;my-tss2-key.key&amp;#34;
        tpm {
            enabled = true
            path = &amp;#34;/dev/tpmrm0&amp;#34;
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h3 id=&#34;metadata&#34;&gt;&lt;code&gt;metadata&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-kafka-metadata.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;metadata&lt;/code&gt; block configures how to retrieve and store metadata from the Kafka broker.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;full&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to maintain a full set of metadata.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;refresh_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The frequency at which cluster metadata is refreshed.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;10m&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;When &lt;code&gt;full&lt;/code&gt; is set to &lt;code&gt;false&lt;/code&gt;, the client does not make the initial request to broker at the startup.&lt;/p&gt;
&lt;p&gt;Retrieving metadata may fail if the Kafka broker is starting up at the same time as the Alloy component.
The &lt;code&gt;retry&lt;/code&gt; child block can be provided to customize retry behavior.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;retry&#34;&gt;&lt;code&gt;retry&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-kafka-metadata-retry.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;retry&lt;/code&gt; block configures how to retry retrieving metadata when retrieval fails.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;backoff&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Time to wait between retries.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;250ms&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_retries&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How many times to reattempt retrieving metadata.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;3&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;

        
&lt;h3 id=&#34;producer&#34;&gt;&lt;code&gt;producer&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;producer&lt;/code&gt; block configures how to retry retrieving metadata when retrieval fails.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;compression&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The level of compression to use on messages.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;none&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;flush_max_messages&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The maximum number of messages in one request.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;10000&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_message_bytes&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The maximum permitted size of a message in bytes.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1000000&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;required_acks&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Controls when a message is regarded as transmitted.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;Refer to the &lt;a href=&#34;https://pkg.go.dev/github.com/IBM/sarama@v1.43.2#RequiredAcks&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Go sarama documentation&lt;/a&gt; for more information on &lt;code&gt;required_acks&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;compression&lt;/code&gt; could be set to either &lt;code&gt;none&lt;/code&gt;, &lt;code&gt;gzip&lt;/code&gt;, &lt;code&gt;snappy&lt;/code&gt;, &lt;code&gt;lz4&lt;/code&gt;, or &lt;code&gt;zstd&lt;/code&gt;.
Refer to the &lt;a href=&#34;https://pkg.go.dev/github.com/IBM/sarama@v1.43.2#CompressionCodec&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Go sarama documentation&lt;/a&gt; for more information.&lt;/p&gt;
&lt;h3 id=&#34;compression_params&#34;&gt;&lt;code&gt;compression_params&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;compression_params&lt;/code&gt; block configures the producer compression parameters.&lt;/p&gt;
&lt;p&gt;The following argument is supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;level&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The level of compression to use on messages.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The following levels are valid combinations of &lt;code&gt;compression&lt;/code&gt; and &lt;code&gt;level&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Compression&lt;/th&gt;
              &lt;th&gt;Value&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;code&gt;gzip&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;BestSpeed&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;gzip&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;9&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;BestCompression&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;gzip&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;-1&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;DefaultCompression&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;zstd&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;SpeedFastest&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;zstd&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;3&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;SpeedDefault&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;zstd&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;6&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;SpeedBetterCompression&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;zstd&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;11&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;SpeedBestCompression&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;lz4&lt;/code&gt; and &lt;code&gt;snappy&lt;/code&gt; do not currently support compression levels in this component.&lt;/p&gt;
&lt;h3 id=&#34;retry_on_failure&#34;&gt;&lt;code&gt;retry_on_failure&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;retry_on_failure&lt;/code&gt; block configures how failed requests to Kafka are retried.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-retry-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables retrying failed requests.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;initial_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Initial time to wait before retrying a failed request.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;5s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_elapsed_time&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum time to wait before discarding a failed batch.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;5m&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum time to wait between retries.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;30s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;multiplier&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Factor to grow wait time before retrying.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1.5&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;randomization_factor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Factor to randomize wait time before retrying.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;0.5&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;When &lt;code&gt;enabled&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;, failed batches are retried after a given interval.
The &lt;code&gt;initial_interval&lt;/code&gt; argument specifies how long to wait before the first retry attempt.
If requests continue to fail, the time to wait before retrying increases by the factor specified by the &lt;code&gt;multiplier&lt;/code&gt; argument, which must be greater than &lt;code&gt;1.0&lt;/code&gt;.
The &lt;code&gt;max_interval&lt;/code&gt; argument specifies the upper bound of how long to wait between retries.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;randomization_factor&lt;/code&gt; argument is useful for adding jitter between retrying Alloy instances.
If &lt;code&gt;randomization_factor&lt;/code&gt; is greater than &lt;code&gt;0&lt;/code&gt;, the wait time before retries is multiplied by a random factor in the range &lt;code&gt;[ I - randomization_factor * I, I &#43; randomization_factor * I]&lt;/code&gt;, where &lt;code&gt;I&lt;/code&gt; is the current interval.&lt;/p&gt;
&lt;p&gt;If a batch hasn&amp;rsquo;t been sent successfully, it&amp;rsquo;s discarded after the time specified by &lt;code&gt;max_elapsed_time&lt;/code&gt; elapses.
If &lt;code&gt;max_elapsed_time&lt;/code&gt; is set to &lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;, failed requests are retried forever until they succeed.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;sending_queue&#34;&gt;&lt;code&gt;sending_queue&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;sending_queue&lt;/code&gt; block configures queueing and batching for the exporter.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-queue-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;block_on_overflow&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The behavior when the component&amp;rsquo;s &lt;code&gt;TotalSize&lt;/code&gt; limit is reached.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables a buffer before sending data to the client.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;num_consumers&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Number of readers to send batches written to the queue in parallel.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;queue_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum number of unwritten batches allowed in the queue at the same time.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1000&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sizer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How the queue and batching is measured.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;requests&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;wait_for_result&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Determines if incoming requests are blocked until the request is processed or not.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;storage&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;capsule(otelcol.Handler)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Handler from an &lt;code&gt;otelcol.storage&lt;/code&gt; component to use to enable a persistent queue mechanism.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;code&gt;blocking&lt;/code&gt; argument is deprecated in favor of the &lt;code&gt;block_on_overflow&lt;/code&gt; argument.&lt;/p&gt;
&lt;p&gt;When &lt;code&gt;block_on_overflow&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;, the component will wait for space. Otherwise, operations will immediately return a retryable error.&lt;/p&gt;
&lt;p&gt;When &lt;code&gt;enabled&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;, data is first written to an in-memory buffer before sending it to the configured server.
Batches sent to the component&amp;rsquo;s &lt;code&gt;input&lt;/code&gt; exported field are added to the buffer as long as the number of unsent batches doesn&amp;rsquo;t exceed the configured &lt;code&gt;queue_size&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;queue_size&lt;/code&gt; determines how long an endpoint outage is tolerated.
Assuming 100 requests/second, the default queue size &lt;code&gt;1000&lt;/code&gt; provides about 10 seconds of outage tolerance.
To calculate the correct value for &lt;code&gt;queue_size&lt;/code&gt;, multiply the average number of outgoing requests per second by the time in seconds that outages are tolerated. A very high value can cause Out Of Memory (OOM) kills.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;sizer&lt;/code&gt; argument could be set to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;requests&lt;/code&gt;: number of incoming batches of metrics, logs, traces (the most performant option).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;items&lt;/code&gt;: number of the smallest parts of each signal (spans, metric data points, log records).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bytes&lt;/code&gt;: the size of serialized data in bytes (the least performant option).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The &lt;code&gt;num_consumers&lt;/code&gt; argument controls how many readers read from the buffer and send data in parallel.
Larger values of &lt;code&gt;num_consumers&lt;/code&gt; allow data to be sent more quickly at the expense of increased network traffic.&lt;/p&gt;
&lt;p&gt;If an &lt;code&gt;otelcol.storage.*&lt;/code&gt; component is configured and provided in the queue&amp;rsquo;s &lt;code&gt;storage&lt;/code&gt; argument, the queue uses the
provided storage extension to provide a persistent queue and the queue is no longer stored in memory.
Any data persisted will be processed on startup if Alloy is killed or restarted.
Refer to the 
    &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector/blob/v0.147.0/exporter/exporterhelper/README.md#persistent-queue&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;exporterhelper documentation&lt;/a&gt; in the OpenTelemetry Collector repository for more details.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;batch&#34;&gt;&lt;code&gt;batch&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;batch&lt;/code&gt; block configures batching requests based on a timeout and a minimum number of items.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-queue-batch-block.md&#34;&gt;
            &lt;p&gt;Batching is disabled by default.
To enable it, explicitly include &lt;code&gt;batch {}&lt;/code&gt; in your Alloy configuration.
You do not need to include a &lt;code&gt;batch {}&lt;/code&gt; block in your &lt;code&gt;otelcol.exporter&lt;/code&gt; if you already use a &lt;code&gt;otelcol.processor.batch&lt;/code&gt; component,
although batching in the exporter is the preferred method because it is more flexible.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;flush_timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Time after which a batch will be sent regardless of its size. Must be a non-zero value.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;200ms&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;min_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The minimum size of a batch.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;2000&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The maximum size of a batch, enables batch splitting.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;3000&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sizer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How the queue and batching is measured. Overrides the sizer set at the &lt;code&gt;sending_queue&lt;/code&gt; level for batching.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;items&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If configured, &lt;code&gt;max_size&lt;/code&gt; must be greater than or equal to &lt;code&gt;min_size&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;sizer&lt;/code&gt; argument can be set to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;items&lt;/code&gt;: The number of the smallest parts of each span, metric data point, or log record.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bytes&lt;/code&gt;: the size of serialized data in bytes (the least performant option).&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

        
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;The following fields are exported and can be referenced by other components:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&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;code&gt;input&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A value that other components can use to send telemetry data to.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;input&lt;/code&gt; accepts &lt;code&gt;otelcol.Consumer&lt;/code&gt; data for any telemetry signal (metrics, logs, or traces).&lt;/p&gt;
&lt;h2 id=&#34;supported-encodings&#34;&gt;Supported encodings&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.kafka&lt;/code&gt; supports encoding extensions, as well as the following built-in encodings.&lt;/p&gt;
&lt;p&gt;Available for all signals:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;otlp_proto&lt;/code&gt;: Data is encoded as OTLP Protobuf.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;otlp_json&lt;/code&gt;: Data is encoded as OTLP JSON.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Available only for traces:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;jaeger_proto&lt;/code&gt;: The payload is serialized to a single Jaeger proto &lt;code&gt;Span&lt;/code&gt;, and keyed by TraceID.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;jaeger_json&lt;/code&gt;: The payload is serialized to a single Jaeger JSON Span using &lt;code&gt;jsonpb&lt;/code&gt;, and keyed by TraceID.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;zipkin_proto&lt;/code&gt;: The payload is serialized to Zipkin v2 proto Span.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;zipkin_json&lt;/code&gt;: The payload is serialized to Zipkin v2 JSON Span.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Available only for logs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;raw&lt;/code&gt;: If the log record body is a byte array, it is sent as is.
Otherwise, it is serialized to JSON.
Resource and record attributes are discarded.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.kafka&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.kafka&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;p&gt;This example forwards telemetry data through a batch processor before finally sending it to Kafka:&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;otelcol.receiver.otlp &amp;#34;default&amp;#34; {
  http {}
  grpc {}

  output {
    metrics = [otelcol.processor.batch.default.input]
    logs    = [otelcol.processor.batch.default.input]
    traces  = [otelcol.processor.batch.default.input]
  }
}

otelcol.processor.batch &amp;#34;default&amp;#34; {
  output {
    metrics = [otelcol.exporter.kafka.default.input]
    logs    = [otelcol.exporter.kafka.default.input]
    traces  = [otelcol.exporter.kafka.default.input]
  }
}

otelcol.exporter.kafka &amp;#34;default&amp;#34; {
  brokers          = [&amp;#34;localhost:9092&amp;#34;]
  protocol_version = &amp;#34;2.0.0&amp;#34;
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.kafka&lt;/code&gt; has exports that can be consumed by the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that consume &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-consumers&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolexporterkafka">&lt;code>otelcol.exporter.kafka&lt;/code>&lt;/h1>
&lt;p>&lt;code>otelcol.exporter.kafka&lt;/code> accepts logs, metrics, and traces telemetry data from other &lt;code>otelcol&lt;/code> components and sends it to Kafka.&lt;/p>
&lt;p>It&amp;rsquo;s important to use &lt;code>otelcol.exporter.kafka&lt;/code> together with &lt;code>otelcol.processor.batch&lt;/code> to make sure &lt;code>otelcol.exporter.kafka&lt;/code> doesn&amp;rsquo;t slow down due to sending Kafka a huge number of small payloads.&lt;/p></description></item><item><title>otelcol.exporter.loadbalancing</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.exporter.loadbalancing/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.exporter.loadbalancing/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolexporterloadbalancing&#34;&gt;&lt;code&gt;otelcol.exporter.loadbalancing&lt;/code&gt;&lt;/h1&gt;
&lt;!-- Include a picture of the LB architecture? --&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.loadbalancing&lt;/code&gt; accepts logs and traces from other &lt;code&gt;otelcol&lt;/code&gt; components and writes them over the network using the OpenTelemetry Protocol (OTLP) protocol.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.exporter.loadbalancing&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/exporter/loadbalancingexporter&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;loadbalancing&lt;/code&gt;&lt;/a&gt; exporter.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.exporter.loadbalancing&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;p&gt;The decision which backend to use depends on the trace ID or the service name.
The backend load doesn&amp;rsquo;t influence the choice. Even though this load-balancer won&amp;rsquo;t do round-robin balancing of the batches, the load distribution should be very similar among backends, with a standard deviation under 5% at the current configuration.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.loadbalancing&lt;/code&gt; is especially useful for backends configured with tail-based samplers which choose a backend based on the view of the full trace.&lt;/p&gt;
&lt;p&gt;When a list of backends is updated, some of the signals will be rerouted to different backends.
Around R/N of the &amp;ldquo;routes&amp;rdquo; will be rerouted differently, where:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A &amp;ldquo;route&amp;rdquo; is either a trace ID or a service name mapped to a certain backend.&lt;/li&gt;
&lt;li&gt;&amp;ldquo;R&amp;rdquo; is the total number of routes.&lt;/li&gt;
&lt;li&gt;&amp;ldquo;N&amp;rdquo; is the total number of backends.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This should be stable enough for most cases, and the larger the number of backends, the less disruption it should cause.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.exporter.loadbalancing &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  resolver {
    ...
  }
  protocol {
    otlp {
      client {}
    }
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.exporter.loadbalancing&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;routing_key&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Routing strategy for load balancing.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;traceID&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Time to wait before marking a request to the &lt;code&gt;otlp &amp;gt; protocol&lt;/code&gt; exporter as failed.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;code&gt;routing_key&lt;/code&gt; attribute determines how to route signals across endpoints. Its value can be one of the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;service&amp;quot;&lt;/code&gt;: spans, logs, and metrics with the same &lt;code&gt;service.name&lt;/code&gt; will be exported to the same backend.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is useful when using processors like the span metrics, so all spans for each service are sent to consistent Alloy instances
for metric collection. Otherwise, metrics for the same services would be sent to different instances, making aggregations inaccurate.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;traceID&amp;quot;&lt;/code&gt;: Spans and logs belonging to the same &lt;code&gt;traceID&lt;/code&gt; will be exported to the same backend.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;resource&amp;quot;&lt;/code&gt;: Metrics belonging to the same resource will be exported to the same backend.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;metric&amp;quot;&lt;/code&gt;: Metrics with the same name will be exported to the same backend.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;streamID&amp;quot;&lt;/code&gt;: Metrics with the same &lt;code&gt;streamID&lt;/code&gt; will be exported to the same backend.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The loadbalancer configures the exporter for the signal types supported by the &lt;code&gt;routing_key&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;timeout&lt;/code&gt; argument is similar to the top-level &lt;code&gt;queue&lt;/code&gt; and &lt;code&gt;retry&lt;/code&gt; &lt;a href=&#34;#blocks&#34;&gt;blocks&lt;/a&gt; for &lt;code&gt;otelcol.exporter.loadbalancing&lt;/code&gt; itself.
It helps to re-route data into a new set of healthy backends.
This is especially useful for highly elastic environments like Kubernetes,
where the list of resolved endpoints changes frequently due to deployments and scaling events.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;EXPERIMENTAL&lt;/strong&gt;: Metrics support in &lt;code&gt;otelcol.exporter.loadbalancing&lt;/code&gt; is an &lt;a href=&#34;/docs/release-life-cycle/&#34;&gt;experimental&lt;/a&gt; feature.
Experimental features are subject to frequent breaking changes, and may be removed with no equivalent replacement.
To enable and use an experimental feature, you must set the &lt;code&gt;stability.level&lt;/code&gt; 
    &lt;a href=&#34;/docs/alloy/v1.15/reference/cli/run/&#34;&gt;flag&lt;/a&gt; to &lt;code&gt;experimental&lt;/code&gt;.&lt;/p&gt;&lt;/blockquote&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.exporter.loadbalancing&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 17;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#resolver\&amp;#34;\u003e\u003ccode\u003eresolver\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures discovering the endpoints to export to.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eresolver\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#aws_cloud_map\&amp;#34;\u003e\u003ccode\u003eaws_cloud_map\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eAWS CloudMap-sourced list of endpoints to export to.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eresolver\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#dns\&amp;#34;\u003e\u003ccode\u003edns\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eDNS-sourced list of endpoints to export to.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eresolver\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#kubernetes\&amp;#34;\u003e\u003ccode\u003ekubernetes\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eKubernetes-sourced list of endpoints to export to.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eresolver\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#static\&amp;#34;\u003e\u003ccode\u003estatic\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eStatic list of endpoints to export to.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#protocol\&amp;#34;\u003e\u003ccode\u003eprotocol\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eProtocol settings. Only OTLP is supported at the moment.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eprotocol\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#otlp\&amp;#34;\u003e\u003ccode\u003eotlp\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures an OTLP exporter.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eprotocol\u003c/code\u003e \u0026gt; \u003ccode\u003eotlp\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#client\&amp;#34;\u003e\u003ccode\u003eclient\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the exporter gRPC client.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eprotocol\u003c/code\u003e \u0026gt; \u003ccode\u003eotlp\u003c/code\u003e \u0026gt; \u003ccode\u003eclient\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#keepalive\&amp;#34;\u003e\u003ccode\u003ekeepalive\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures keepalive settings for the gRPC client.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eprotocol\u003c/code\u003e \u0026gt; \u003ccode\u003eotlp\u003c/code\u003e \u0026gt; \u003ccode\u003eclient\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#tls\&amp;#34;\u003e\u003ccode\u003etls\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TLS for the gRPC client.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eprotocol\u003c/code\u003e \u0026gt; \u003ccode\u003eotlp\u003c/code\u003e \u0026gt; \u003ccode\u003eclient\u003c/code\u003e \u0026gt; \u003ccode\u003etls\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#tpm\&amp;#34;\u003e\u003ccode\u003etpm\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TPM settings for the TLS \u003ccode\u003ekey_file\u003c/code\u003e.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eprotocol\u003c/code\u003e \u0026gt; \u003ccode\u003eotlp\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#queue\&amp;#34;\u003e\u003ccode\u003equeue\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures batching of data before sending.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eprotocol\u003c/code\u003e \u0026gt; \u003ccode\u003eotlp\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#retry\&amp;#34;\u003e\u003ccode\u003eretry\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures retry mechanism for failed requests.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#queue\&amp;#34;\u003e\u003ccode\u003esending_queue\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures batching of data before sending to the \u003ccode\u003eotlp \u0026gt; protocol\u003c/code\u003e exporter.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003esending_queue\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#batch\&amp;#34;\u003e\u003ccode\u003ebatch\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures batching requests based on a timeout and a minimum number of items.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#retry\&amp;#34;\u003e\u003ccode\u003eretry\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures retry mechanism for failed requests to the \u003ccode\u003eotlp \u0026gt; protocol\u003c/code\u003e exporter.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#resolver&#34;&gt;&lt;code&gt;resolver&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures discovering the endpoints to export to.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;resolver&lt;/code&gt; &amp;gt; &lt;a href=&#34;#aws_cloud_map&#34;&gt;&lt;code&gt;aws_cloud_map&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;AWS CloudMap-sourced list of endpoints to export to.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;resolver&lt;/code&gt; &amp;gt; &lt;a href=&#34;#dns&#34;&gt;&lt;code&gt;dns&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;DNS-sourced list of endpoints to export to.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;resolver&lt;/code&gt; &amp;gt; &lt;a href=&#34;#kubernetes&#34;&gt;&lt;code&gt;kubernetes&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Kubernetes-sourced list of endpoints to export to.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;resolver&lt;/code&gt; &amp;gt; &lt;a href=&#34;#static&#34;&gt;&lt;code&gt;static&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Static list of endpoints to export to.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#protocol&#34;&gt;&lt;code&gt;protocol&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Protocol settings. Only OTLP is supported at the moment.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;protocol&lt;/code&gt; &amp;gt; &lt;a href=&#34;#otlp&#34;&gt;&lt;code&gt;otlp&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures an OTLP exporter.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;protocol&lt;/code&gt; &amp;gt; &lt;code&gt;otlp&lt;/code&gt; &amp;gt; &lt;a href=&#34;#client&#34;&gt;&lt;code&gt;client&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the exporter gRPC client.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;protocol&lt;/code&gt; &amp;gt; &lt;code&gt;otlp&lt;/code&gt; &amp;gt; &lt;code&gt;client&lt;/code&gt; &amp;gt; &lt;a href=&#34;#keepalive&#34;&gt;&lt;code&gt;keepalive&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures keepalive settings for the gRPC client.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;protocol&lt;/code&gt; &amp;gt; &lt;code&gt;otlp&lt;/code&gt; &amp;gt; &lt;code&gt;client&lt;/code&gt; &amp;gt; &lt;a href=&#34;#tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TLS for the gRPC client.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;protocol&lt;/code&gt; &amp;gt; &lt;code&gt;otlp&lt;/code&gt; &amp;gt; &lt;code&gt;client&lt;/code&gt; &amp;gt; &lt;code&gt;tls&lt;/code&gt; &amp;gt; &lt;a href=&#34;#tpm&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TPM settings for the TLS &lt;code&gt;key_file&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;protocol&lt;/code&gt; &amp;gt; &lt;code&gt;otlp&lt;/code&gt; &amp;gt; &lt;a href=&#34;#queue&#34;&gt;&lt;code&gt;queue&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures batching of data before sending.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;protocol&lt;/code&gt; &amp;gt; &lt;code&gt;otlp&lt;/code&gt; &amp;gt; &lt;a href=&#34;#retry&#34;&gt;&lt;code&gt;retry&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures retry mechanism for failed requests.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#queue&#34;&gt;&lt;code&gt;sending_queue&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures batching of data before sending to the &lt;code&gt;otlp &amp;gt; protocol&lt;/code&gt; exporter.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sending_queue&lt;/code&gt; &amp;gt; &lt;a href=&#34;#batch&#34;&gt;&lt;code&gt;batch&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures batching requests based on a timeout and a minimum number of items.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#retry&#34;&gt;&lt;code&gt;retry&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures retry mechanism for failed requests to the &lt;code&gt;otlp &amp;gt; protocol&lt;/code&gt; exporter.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;p&gt;There are two types of [queue][] and [retry][] blocks:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The queue and retry blocks under &lt;code&gt;protocol &amp;gt; otlp&lt;/code&gt;.
This is useful for temporary problems with a specific backend, like transient network issues.&lt;/li&gt;
&lt;li&gt;The top-level queue and retry blocks for &lt;code&gt;otelcol.exporter.loadbalancing&lt;/code&gt;.
Those configuration options provide capability to re-route data into a new set of healthy backends.
This is useful for highly elastic environments like Kubernetes,  where the list of resolved endpoints changes frequently due to deployments and scaling events.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;resolver&#34;&gt;&lt;code&gt;resolver&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;

&lt;p&gt;The &lt;code&gt;resolver&lt;/code&gt; block configures how to retrieve the endpoint to which this exporter will send data.&lt;/p&gt;
&lt;p&gt;Inside the &lt;code&gt;resolver&lt;/code&gt; block, either the [&lt;code&gt;dns&lt;/code&gt;][dns] block or the [&lt;code&gt;static&lt;/code&gt;][static] block should be specified.
If both &lt;code&gt;dns&lt;/code&gt; and &lt;code&gt;static&lt;/code&gt; are specified, &lt;code&gt;dns&lt;/code&gt; takes precedence.&lt;/p&gt;
&lt;h3 id=&#34;aws_cloud_map&#34;&gt;&lt;code&gt;aws_cloud_map&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;aws_cloud_map&lt;/code&gt; block allows users to use &lt;code&gt;otelcol.exporter.loadbalancing&lt;/code&gt; when using ECS over EKS in an AWS infrastructure.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;namespace&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The CloudMap namespace where the service is registered.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;service_name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The name of the service which was specified when registering the instance.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;health_status&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Ports to use with the IP addresses resolved from &lt;code&gt;service&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;HEALTHY&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Resolver interval.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;30s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;port&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Port to be used for exporting the traces to the addresses resolved from &lt;code&gt;service&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;null&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Resolver timeout.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;5s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;health_status&lt;/code&gt; can be set to either of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;HEALTHY&lt;/code&gt;: Only return instances that are healthy.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;UNHEALTHY&lt;/code&gt;: Only return instances that are unhealthy.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ALL&lt;/code&gt;: Return all instances, regardless of their health status.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;HEALTHY_OR_ELSE_ALL&lt;/code&gt;: Returns healthy instances, unless none are reporting a healthy state.
In that case, return all instances. This is also called failing open.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If &lt;code&gt;port&lt;/code&gt; isn&amp;rsquo;t set, a default port defined in CloudMap will be used.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;The &lt;code&gt;aws_cloud_map&lt;/code&gt; resolver returns a maximum of 100 hosts.
A &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/29771&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;feature request&lt;/a&gt; aims to cover pagination for this scenario.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h3 id=&#34;dns&#34;&gt;&lt;code&gt;dns&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;dns&lt;/code&gt; block periodically resolves an IP address via the DNS &lt;code&gt;hostname&lt;/code&gt; attribute.
This IP address and the port specified via the &lt;code&gt;port&lt;/code&gt; attribute will then be used by the gRPC exporter as the endpoint to which to export data to.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;hostname&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;DNS hostname to resolve.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Resolver interval.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;5s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;port&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Port to be used with the IP addresses resolved from the DNS hostname.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;4317&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Resolver timeout.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;1s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;kubernetes&#34;&gt;&lt;code&gt;kubernetes&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;You can use the &lt;code&gt;kubernetes&lt;/code&gt; block to load balance across the pods of a Kubernetes service.
The Kubernetes API notifies Alloy whenever a new Pod is added or removed from the service.
The &lt;code&gt;kubernetes&lt;/code&gt; resolver has a much faster response time than the &lt;code&gt;dns&lt;/code&gt; resolver because it doesn&amp;rsquo;t require polling.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;service&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Kubernetes service to resolve.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ports&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(number)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Ports to use with the IP addresses resolved from &lt;code&gt;service&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[4317]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;return_hostnames&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Return hostnames instead of IPs.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Resolver timeout.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;1s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If no namespace is specified inside &lt;code&gt;service&lt;/code&gt;, an attempt will be made to infer the namespace for this Alloy.
If this fails, the &lt;code&gt;default&lt;/code&gt; namespace will be used.&lt;/p&gt;
&lt;p&gt;Each of the ports listed in &lt;code&gt;ports&lt;/code&gt; will be used with each of the IPs resolved from &lt;code&gt;service&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The &amp;ldquo;get&amp;rdquo;, &amp;ldquo;list&amp;rdquo;, and &amp;ldquo;watch&amp;rdquo; &lt;a href=&#34;https://kubernetes.io/docs/reference/access-authn-authz/rbac/#role-example&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;roles&lt;/a&gt; must be granted in Kubernetes for the resolver to work.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;return_hostnames&lt;/code&gt; is useful in certain situations like using Istio in sidecar mode.
To use this feature, the &lt;code&gt;service&lt;/code&gt; argument must be a headless &lt;code&gt;Service&lt;/code&gt;, pointing at a &lt;code&gt;StatefulSet&lt;/code&gt;.
Also, the &lt;code&gt;service&lt;/code&gt; argument must be what&amp;rsquo;s specified under &lt;code&gt;.spec.serviceName&lt;/code&gt; in the &lt;code&gt;StatefulSet&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;static&#34;&gt;&lt;code&gt;static&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;static&lt;/code&gt; block configures a list of endpoints which this exporter will send data to.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;hostnames&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of endpoints to export to.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;protocol&#34;&gt;&lt;code&gt;protocol&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;protocol&lt;/code&gt; block configures protocol-related settings for exporting.
At the moment only the OTLP protocol is supported.&lt;/p&gt;
&lt;h3 id=&#34;otlp&#34;&gt;&lt;code&gt;otlp&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;otlp&lt;/code&gt; block configures OTLP-related settings for exporting.&lt;/p&gt;
&lt;h3 id=&#34;client&#34;&gt;&lt;code&gt;client&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;client&lt;/code&gt; block configures the gRPC client used by the component.
The endpoints used by the client block are the ones from the &lt;code&gt;resolver&lt;/code&gt; block&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;capsule(otelcol.Handler)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Handler from an &lt;code&gt;otelcol.auth&lt;/code&gt; component to use for authenticating requests.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;authority&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Overrides the default &lt;code&gt;:authority&lt;/code&gt; header in gRPC requests from the gRPC client.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;balancer_name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Which gRPC client-side load balancer to use for requests.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;round_robin&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;compression&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Compression mechanism to use for requests.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;gzip&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;headers&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;map(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Additional headers to send with the request.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;{}&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;read_buffer_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Size of the read buffer the gRPC client to use for reading server responses.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;wait_for_ready&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Waits for gRPC connection to be in the &lt;code&gt;READY&lt;/code&gt; state before sending data.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;write_buffer_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Size of the write buffer the gRPC client to use for writing requests.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;512KiB&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;

&lt;div data-shared=&#34;reference/components/otelcol-compression-field.md&#34;&gt;
            &lt;p&gt;By default, requests are compressed with Gzip.
The &lt;code&gt;compression&lt;/code&gt; argument controls which compression mechanism to use. Supported strings are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;gzip&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;zlib&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;deflate&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;snappy&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;zstd&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you set &lt;code&gt;compression&lt;/code&gt; to &lt;code&gt;&amp;quot;none&amp;quot;&lt;/code&gt; or an empty string &lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;, the requests aren&amp;rsquo;t compressed.&lt;/p&gt;
&lt;/div&gt;

        


&lt;div data-shared=&#34;reference/components/otelcol-grpc-balancer-name.md&#34;&gt;
            &lt;p&gt;The supported values for &lt;code&gt;balancer_name&lt;/code&gt; are listed in the gRPC documentation on &lt;a href=&#34;https://github.com/grpc/grpc-go/blob/master/examples/features/load_balancing/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Load balancing&lt;/a&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;pick_first&lt;/code&gt;: Tries to connect to the first address. It uses the address for all RPCs if it connects, or if it fails, it tries the next address and keeps trying until one connection is successful.
Because of this, all the RPCs are sent to the same backend.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;round_robin&lt;/code&gt;: Connects to all the addresses it sees and sends an RPC to each backend one at a time in order.
For example, the first RPC is sent to backend-1, the second RPC is sent to backend-2, and the third RPC is sent to backend-1.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

        


&lt;div data-shared=&#34;reference/components/otelcol-grpc-authority.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;:authority&lt;/code&gt; header in gRPC specifies the host to which the request is being sent.
It&amp;rsquo;s similar to the &lt;code&gt;Host&lt;/code&gt; &lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Host&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;header&lt;/a&gt; in HTTP requests.
By default, the value for &lt;code&gt;:authority&lt;/code&gt; is derived from the endpoint URL used for the gRPC call.
Overriding &lt;code&gt;:authority&lt;/code&gt; could be useful when routing traffic using a proxy like Envoy, which &lt;a href=&#34;https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_conn_man/route_matching&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;makes routing decisions&lt;/a&gt; based on the value of the &lt;code&gt;:authority&lt;/code&gt; header.&lt;/p&gt;
&lt;/div&gt;

        
&lt;p&gt;You can configure an HTTP proxy with the following environment variables:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;HTTPS_PROXY&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;NO_PROXY&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The &lt;code&gt;HTTPS_PROXY&lt;/code&gt; environment variable specifies a URL to use for proxying requests.
Connections to the proxy are established via &lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/CONNECT&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;the &lt;code&gt;HTTP CONNECT&lt;/code&gt; method&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;NO_PROXY&lt;/code&gt; environment variable is an optional list of comma-separated hostnames for which the HTTPS proxy should &lt;em&gt;not&lt;/em&gt; be used.
Each hostname can be provided as an IP address (&lt;code&gt;1.2.3.4&lt;/code&gt;), an IP address in CIDR notation (&lt;code&gt;1.2.3.4/8&lt;/code&gt;), a domain name (&lt;code&gt;example.com&lt;/code&gt;), or &lt;code&gt;*&lt;/code&gt;.
A domain name matches that domain and all subdomains. A domain name with a leading &amp;ldquo;.&amp;rdquo; (&lt;code&gt;.example.com&lt;/code&gt;) matches subdomains only.
&lt;code&gt;NO_PROXY&lt;/code&gt; is only read when &lt;code&gt;HTTPS_PROXY&lt;/code&gt; is set.&lt;/p&gt;
&lt;p&gt;Because &lt;code&gt;otelcol.exporter.loadbalancing&lt;/code&gt; uses gRPC, the configured proxy server must be able to handle and proxy HTTP/2 traffic.&lt;/p&gt;
&lt;h3 id=&#34;keepalive&#34;&gt;&lt;code&gt;keepalive&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;keepalive&lt;/code&gt; block configures keepalive settings for gRPC client connections.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ping_wait&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How often to ping the server after no activity.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ping_response_timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Time to wait before closing inactive connections if the server doesn&amp;rsquo;t respond to a ping.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ping_without_stream&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Send pings even if there is no active stream request.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;tls&lt;/code&gt; block configures TLS settings used for the connection to the gRPC server.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-tls-client-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ca_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the CA file.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ca_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;CA PEM-encoded text to validate the server with.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cert_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS certificate.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cert_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Certificate PEM-encoded text for client authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cipher_suites&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of TLS cipher suites that the TLS transport can use.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;curve_preferences&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Set of elliptic curves to use in a handshake.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_system_ca_certs_pool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to load the system certificate authorities pool alongside the certificate authority.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;insecure_skip_verify&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Ignores insecure server TLS certificates.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;insecure&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Disables TLS when connecting to the configured server.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS certificate key.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;secret&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Key PEM-encoded text for client authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum acceptable TLS version for connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;TLS 1.3&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;min_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Minimum acceptable TLS version for connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;TLS 1.2&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;reload_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The duration after which the certificate is reloaded.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;server_name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Verifies the hostname of server certificates when set.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If the server doesn&amp;rsquo;t support TLS, you must set the &lt;code&gt;insecure&lt;/code&gt; argument to &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;To disable &lt;code&gt;tls&lt;/code&gt; for connections to the server, set the &lt;code&gt;insecure&lt;/code&gt; argument to &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;If you set &lt;code&gt;reload_interval&lt;/code&gt; to &lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;, the certificate never reloaded.&lt;/p&gt;
&lt;p&gt;The following pairs of arguments are mutually exclusive and can&amp;rsquo;t both be set simultaneously:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ca_pem&lt;/code&gt; and &lt;code&gt;ca_file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cert_pem&lt;/code&gt; and &lt;code&gt;cert_file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;key_pem&lt;/code&gt; and &lt;code&gt;key_file&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If &lt;code&gt;cipher_suites&lt;/code&gt; is left blank, a safe default list is used.
Refer to the &lt;a href=&#34;https://go.dev/src/crypto/tls/cipher_suites.go&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Go TLS documentation&lt;/a&gt; for a list of supported cipher suites.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;curve_preferences&lt;/code&gt; argument determines the set of &lt;a href=&#34;https://go.dev/src/crypto/tls/common.go#L138&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;elliptic curves&lt;/a&gt; to prefer during a handshake in preference order.
If not provided, a default list is used.
The set of elliptic curves available are &lt;code&gt;X25519&lt;/code&gt;, &lt;code&gt;P521&lt;/code&gt;, &lt;code&gt;P256&lt;/code&gt;, and &lt;code&gt;P384&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;tpm&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;tpm&lt;/code&gt; block configures retrieving the TLS &lt;code&gt;key_file&lt;/code&gt; from a trusted device.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-tls-tpm-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The authorization value used to authenticate the TPM device.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Load the &lt;code&gt;tls.key_file&lt;/code&gt; from TPM.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;owner_auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The owner authorization value used to authenticate the TPM device.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;path&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TPM device or Unix domain socket.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;a href=&#34;https://trustedcomputinggroup.org/resource/trusted-platform-module-tpm-summary/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;trusted platform module&lt;/a&gt; (TPM) configuration can be used for loading TLS key from TPM. Currently only TSS2 format is supported.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;path&lt;/code&gt; attribute is not supported on Windows.&lt;/p&gt;
&lt;p&gt;In the following example, the private key &lt;code&gt;my-tss2-key.key&lt;/code&gt; in TSS2 format is loaded from the TPM device &lt;code&gt;/dev/tmprm0&lt;/code&gt;:&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;otelcol.example.component &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
    ...
    tls {
        ...
        key_file = &amp;#34;my-tss2-key.key&amp;#34;
        tpm {
            enabled = true
            path = &amp;#34;/dev/tpmrm0&amp;#34;
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;queue&#34;&gt;&lt;code&gt;queue&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;queue&lt;/code&gt; block configures an in-memory buffer of batches before data is sent to the gRPC server.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-queue-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;block_on_overflow&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The behavior when the component&amp;rsquo;s &lt;code&gt;TotalSize&lt;/code&gt; limit is reached.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables a buffer before sending data to the client.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;num_consumers&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Number of readers to send batches written to the queue in parallel.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;queue_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum number of unwritten batches allowed in the queue at the same time.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1000&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sizer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How the queue and batching is measured.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;requests&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;wait_for_result&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Determines if incoming requests are blocked until the request is processed or not.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;storage&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;capsule(otelcol.Handler)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Handler from an &lt;code&gt;otelcol.storage&lt;/code&gt; component to use to enable a persistent queue mechanism.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;code&gt;blocking&lt;/code&gt; argument is deprecated in favor of the &lt;code&gt;block_on_overflow&lt;/code&gt; argument.&lt;/p&gt;
&lt;p&gt;When &lt;code&gt;block_on_overflow&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;, the component will wait for space. Otherwise, operations will immediately return a retryable error.&lt;/p&gt;
&lt;p&gt;When &lt;code&gt;enabled&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;, data is first written to an in-memory buffer before sending it to the configured server.
Batches sent to the component&amp;rsquo;s &lt;code&gt;input&lt;/code&gt; exported field are added to the buffer as long as the number of unsent batches doesn&amp;rsquo;t exceed the configured &lt;code&gt;queue_size&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;queue_size&lt;/code&gt; determines how long an endpoint outage is tolerated.
Assuming 100 requests/second, the default queue size &lt;code&gt;1000&lt;/code&gt; provides about 10 seconds of outage tolerance.
To calculate the correct value for &lt;code&gt;queue_size&lt;/code&gt;, multiply the average number of outgoing requests per second by the time in seconds that outages are tolerated. A very high value can cause Out Of Memory (OOM) kills.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;sizer&lt;/code&gt; argument could be set to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;requests&lt;/code&gt;: number of incoming batches of metrics, logs, traces (the most performant option).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;items&lt;/code&gt;: number of the smallest parts of each signal (spans, metric data points, log records).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bytes&lt;/code&gt;: the size of serialized data in bytes (the least performant option).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The &lt;code&gt;num_consumers&lt;/code&gt; argument controls how many readers read from the buffer and send data in parallel.
Larger values of &lt;code&gt;num_consumers&lt;/code&gt; allow data to be sent more quickly at the expense of increased network traffic.&lt;/p&gt;
&lt;p&gt;If an &lt;code&gt;otelcol.storage.*&lt;/code&gt; component is configured and provided in the queue&amp;rsquo;s &lt;code&gt;storage&lt;/code&gt; argument, the queue uses the
provided storage extension to provide a persistent queue and the queue is no longer stored in memory.
Any data persisted will be processed on startup if Alloy is killed or restarted.
Refer to the 
    &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector/blob/v0.147.0/exporter/exporterhelper/README.md#persistent-queue&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;exporterhelper documentation&lt;/a&gt; in the OpenTelemetry Collector repository for more details.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;batch&#34;&gt;&lt;code&gt;batch&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;batch&lt;/code&gt; block configures batching requests based on a timeout and a minimum number of items.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-queue-batch-block.md&#34;&gt;
            &lt;p&gt;Batching is disabled by default.
To enable it, explicitly include &lt;code&gt;batch {}&lt;/code&gt; in your Alloy configuration.
You do not need to include a &lt;code&gt;batch {}&lt;/code&gt; block in your &lt;code&gt;otelcol.exporter&lt;/code&gt; if you already use a &lt;code&gt;otelcol.processor.batch&lt;/code&gt; component,
although batching in the exporter is the preferred method because it is more flexible.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;flush_timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Time after which a batch will be sent regardless of its size. Must be a non-zero value.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;200ms&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;min_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The minimum size of a batch.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;2000&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The maximum size of a batch, enables batch splitting.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;3000&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sizer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How the queue and batching is measured. Overrides the sizer set at the &lt;code&gt;sending_queue&lt;/code&gt; level for batching.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;items&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If configured, &lt;code&gt;max_size&lt;/code&gt; must be greater than or equal to &lt;code&gt;min_size&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;sizer&lt;/code&gt; argument can be set to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;items&lt;/code&gt;: The number of the smallest parts of each span, metric data point, or log record.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bytes&lt;/code&gt;: the size of serialized data in bytes (the least performant option).&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;retry&#34;&gt;&lt;code&gt;retry&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;retry&lt;/code&gt; block configures how failed requests to the gRPC server are retried.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-retry-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables retrying failed requests.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;initial_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Initial time to wait before retrying a failed request.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;5s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_elapsed_time&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum time to wait before discarding a failed batch.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;5m&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum time to wait between retries.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;30s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;multiplier&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Factor to grow wait time before retrying.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1.5&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;randomization_factor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Factor to randomize wait time before retrying.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;0.5&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;When &lt;code&gt;enabled&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;, failed batches are retried after a given interval.
The &lt;code&gt;initial_interval&lt;/code&gt; argument specifies how long to wait before the first retry attempt.
If requests continue to fail, the time to wait before retrying increases by the factor specified by the &lt;code&gt;multiplier&lt;/code&gt; argument, which must be greater than &lt;code&gt;1.0&lt;/code&gt;.
The &lt;code&gt;max_interval&lt;/code&gt; argument specifies the upper bound of how long to wait between retries.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;randomization_factor&lt;/code&gt; argument is useful for adding jitter between retrying Alloy instances.
If &lt;code&gt;randomization_factor&lt;/code&gt; is greater than &lt;code&gt;0&lt;/code&gt;, the wait time before retries is multiplied by a random factor in the range &lt;code&gt;[ I - randomization_factor * I, I &#43; randomization_factor * I]&lt;/code&gt;, where &lt;code&gt;I&lt;/code&gt; is the current interval.&lt;/p&gt;
&lt;p&gt;If a batch hasn&amp;rsquo;t been sent successfully, it&amp;rsquo;s discarded after the time specified by &lt;code&gt;max_elapsed_time&lt;/code&gt; elapses.
If &lt;code&gt;max_elapsed_time&lt;/code&gt; is set to &lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;, failed requests are retried forever until they succeed.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;The following fields are exported and can be referenced by other components:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&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;code&gt;input&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A value that other components can use to send telemetry data to.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;input&lt;/code&gt; accepts &lt;code&gt;otelcol.Consumer&lt;/code&gt; OTLP-formatted data for telemetry signals of these types:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;logs&lt;/li&gt;
&lt;li&gt;traces&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;choose-a-load-balancing-strategy&#34;&gt;Choose a load balancing strategy&lt;/h2&gt;
&lt;!-- TODO: Mention gropubytrace processor when Alloy supports it --&gt;
&lt;!-- TODO: Should we run more than 1 LB instance for better resiliency and spreading out the load? --&gt;
&lt;p&gt;Different Alloy components require different load-balancing strategies.
The use of &lt;code&gt;otelcol.exporter.loadbalancing&lt;/code&gt; is only necessary for &lt;a href=&#34;../../../../set-up/deploy/#stateful-and-stateless-components&#34;&gt;stateful components&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;otelcolprocessortail_sampling&#34;&gt;&lt;code&gt;otelcol.processor.tail_sampling&lt;/code&gt;&lt;/h3&gt;
&lt;!-- TODO: Add a picture of the architecture?  --&gt;
&lt;p&gt;All spans for a given trace ID must go to the same tail sampling Alloy instance.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;This can be done by configuring &lt;code&gt;otelcol.exporter.loadbalancing&lt;/code&gt; with &lt;code&gt;routing_key = &amp;quot;traceID&amp;quot;&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;If you don&amp;rsquo;t configure &lt;code&gt;routing_key = &amp;quot;traceID&amp;quot;&lt;/code&gt;, the sampling decision may be incorrect.
The tail sampler must have a full view of the trace when making a sampling decision.
For example, a &lt;code&gt;rate_limiting&lt;/code&gt; tail sampling strategy may incorrectly pass through more spans than expected if the spans for the same trace are spread out to more than one Alloy instance.&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- Make &#34;rate limiting&#34; a URL to the tail sampler doc --&gt;
&lt;h3 id=&#34;otelcolconnectorspanmetrics&#34;&gt;&lt;code&gt;otelcol.connector.spanmetrics&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;All spans for a given &lt;code&gt;service.name&lt;/code&gt; must go to the same spanmetrics Alloy.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;This can be done by configuring &lt;code&gt;otelcol.exporter.loadbalancing&lt;/code&gt; with &lt;code&gt;routing_key = &amp;quot;service&amp;quot;&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;If you do not configure &lt;code&gt;routing_key = &amp;quot;service&amp;quot;&lt;/code&gt;, metrics generated from spans might be incorrect.
For example, if similar spans for the same &lt;code&gt;service.name&lt;/code&gt; end up on different Alloy instances, the two Alloy instances will have identical metric series for calculating span latency, errors, and number of requests.
When both Alloy instances attempt to write the metrics to a database such as Mimir, the series may clash with each other.
At best, this will lead to an error in Alloy and a rejected write to the metrics database.
At worst, it could lead to inaccurate data due to overlapping samples for the metric series.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;However, there are ways to scale &lt;code&gt;otelcol.connector.spanmetrics&lt;/code&gt; without the need for a load balancer:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Each Alloy could add an attribute such as &lt;code&gt;collector.id&lt;/code&gt; to make its series unique.
Then, for example, you could use a &lt;code&gt;sum by&lt;/code&gt; PromQL query to aggregate the metrics from different Alloys.
Unfortunately, an extra &lt;code&gt;collector.id&lt;/code&gt; attribute has a downside that the metrics stored in the database will have higher &lt;span class=&#34;term&#34; x-data=&#34;app_term(&#39;cardinality&#39;, `The total combination of key/value pairs, such as labels and label values for a given metric series or log stream, and how many unique combinations they generate.`)&#34; x-init=&#34;init()&#34; :class=&#34;{ &#39;term-hover&#39; : open }&#34;&gt;&lt;span x-ref=&#34;tooltip&#34;&gt;cardinality&lt;/span&gt;&lt;/span&gt;.&lt;/li&gt;
&lt;li&gt;Spanmetrics could be generated in the backend database instead of in Alloy.
For example, span metrics can be &lt;a href=&#34;/docs/tempo/latest/metrics-generator/span_metrics/&#34;&gt;generated&lt;/a&gt; in Grafana Cloud by the Tempo traces database.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;otelcolconnectorservicegraph&#34;&gt;&lt;code&gt;otelcol.connector.servicegraph&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;It&amp;rsquo;s challenging to scale &lt;code&gt;otelcol.connector.servicegraph&lt;/code&gt; over multiple Alloy instances.
For &lt;code&gt;otelcol.connector.servicegraph&lt;/code&gt; to work correctly, each &amp;ldquo;client&amp;rdquo; span must be paired with a &amp;ldquo;server&amp;rdquo; span to calculate metrics such as span duration.
If a &amp;ldquo;client&amp;rdquo; span goes to one Alloy, but a &amp;ldquo;server&amp;rdquo; span goes to another Alloy,  then no single Alloy will be able to pair the spans and a metric won&amp;rsquo;t be generated.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.loadbalancing&lt;/code&gt; can solve this problem partially if it is configured with &lt;code&gt;routing_key = &amp;quot;traceID&amp;quot;&lt;/code&gt;.
Each Alloy will then be able to calculate a service graph for each &amp;ldquo;client&amp;rdquo;/&amp;ldquo;server&amp;rdquo; pair in a trace.
It&amp;rsquo;s possible to have a span with similar &amp;ldquo;server&amp;rdquo;/&amp;ldquo;client&amp;rdquo; values in a different trace, processed by another Alloy.
If two different Alloy instances process similar &amp;ldquo;server&amp;rdquo;/&amp;ldquo;client&amp;rdquo; spans, they will generate the same service graph metric series.
If the series from two Alloy are the same, this will lead to issues when writing them to the backend database.
You could differentiate the series by adding an attribute such as &lt;code&gt;&amp;quot;collector.id&amp;quot;&lt;/code&gt;.
The series from different Alloys can be aggregated using PromQL queries on the backed metrics database.
If the metrics are stored in Grafana Mimir, cardinality issues due to &lt;code&gt;&amp;quot;collector.id&amp;quot;&lt;/code&gt; labels can be solved using &lt;a href=&#34;/docs/grafana-cloud/cost-management-and-billing/reduce-costs/metrics-costs/control-metrics-usage-via-adaptive-metrics/&#34;&gt;Adaptive Metrics&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;A simpler, more scalable alternative to generating service graph metrics in Alloy is to generate them entirely in the backend database.
For example, service graphs can be &lt;a href=&#34;/docs/tempo/latest/metrics-generator/service_graphs/&#34;&gt;generated&lt;/a&gt; in Grafana Cloud by the Tempo traces database.&lt;/p&gt;
&lt;h3 id=&#34;mix-stateful-components&#34;&gt;Mix stateful components&lt;/h3&gt;
&lt;!-- TODO: Add a picture of the architecture?  --&gt;
&lt;p&gt;Different Alloy components may require a different &lt;code&gt;routing_key&lt;/code&gt; for &lt;code&gt;otelcol.exporter.loadbalancing&lt;/code&gt;.
For example, &lt;code&gt;otelcol.processor.tail_sampling&lt;/code&gt; requires &lt;code&gt;routing_key = &amp;quot;traceID&amp;quot;&lt;/code&gt; whereas &lt;code&gt;otelcol.connector.spanmetrics&lt;/code&gt; requires &lt;code&gt;routing_key = &amp;quot;service&amp;quot;&lt;/code&gt;.
To load balance both types of components, two different sets of load balancers have to be set up:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;One set of &lt;code&gt;otelcol.exporter.loadbalancing&lt;/code&gt; with &lt;code&gt;routing_key = &amp;quot;traceID&amp;quot;&lt;/code&gt;, sending spans to Alloys doing tail sampling and no span metrics.&lt;/li&gt;
&lt;li&gt;Another set of &lt;code&gt;otelcol.exporter.loadbalancing&lt;/code&gt; with &lt;code&gt;routing_key = &amp;quot;service&amp;quot;&lt;/code&gt;, sending spans to Alloys doing span metrics and no service graphs.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Unfortunately, this can also lead to side effects.
For example, if &lt;code&gt;otelcol.connector.spanmetrics&lt;/code&gt; is configured to generate exemplars, the tail sampling Alloys might drop the trace that the exemplar points to.
There is no coordination between the tail sampling Alloys and the span metrics Alloys to make sure trace IDs for exemplars are kept.&lt;/p&gt;
&lt;!--
TODO: Add a troubleshooting section?
1. Use GODEBUG for DNS resolver logging
2. Enable debug logging on Alloy
3. gRPC debug env variables?
 --&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.loadbalancing&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.loadbalancing&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;examples&#34;&gt;Examples&lt;/h2&gt;
&lt;h3 id=&#34;static-resolver&#34;&gt;Static resolver&lt;/h3&gt;
&lt;p&gt;This example accepts OTLP logs and traces over gRPC.
It then sends them in a load-balanced way to &lt;code&gt;&amp;quot;localhost:55690&amp;quot;&lt;/code&gt; or &lt;code&gt;&amp;quot;localhost:55700&amp;quot;&lt;/code&gt;.&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;otelcol.receiver.otlp &amp;#34;default&amp;#34; {
    grpc {}
    output {
        traces  = [otelcol.exporter.loadbalancing.default.input]
        logs    = [otelcol.exporter.loadbalancing.default.input]
    }
}

otelcol.exporter.loadbalancing &amp;#34;default&amp;#34; {
    resolver {
        static {
            hostnames = [&amp;#34;localhost:55690&amp;#34;, &amp;#34;localhost:55700&amp;#34;]
        }
    }
    protocol {
        otlp {
            client {}
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;dns-resolver&#34;&gt;DNS resolver&lt;/h3&gt;
&lt;p&gt;When configured with a &lt;code&gt;dns&lt;/code&gt; resolver, &lt;code&gt;otelcol.exporter.loadbalancing&lt;/code&gt; will do a DNS lookup on regular intervals.
Spans are exported to the addresses the DNS lookup returned.&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;otelcol.exporter.loadbalancing &amp;#34;default&amp;#34; {
    resolver {
        dns {
            hostname = &amp;#34;alloy-traces-sampling.grafana-cloud-monitoring.svc.cluster.local&amp;#34;
            port     = &amp;#34;34621&amp;#34;
            interval = &amp;#34;5s&amp;#34;
            timeout  = &amp;#34;1s&amp;#34;
        }
    }
    protocol {
        otlp {
            client {}
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The following example shows a Kubernetes configuration that configures two groups of Alloy instances:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A pool of load-balancer Alloy instances:
&lt;ul&gt;
&lt;li&gt;Spans are received from instrumented applications via &lt;code&gt;otelcol.receiver.otlp&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Spans are exported via &lt;code&gt;otelcol.exporter.loadbalancing&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;A pool of sampling Alloy instances:
&lt;ul&gt;
&lt;li&gt;The sampling Alloys run behind a headless service to enable the load-balancer Alloys to discover them.&lt;/li&gt;
&lt;li&gt;Spans are received from the load-balancer Alloys via &lt;code&gt;otelcol.receiver.otlp&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Traces are sampled via &lt;code&gt;otelcol.processor.tail_sampling&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The traces are exported via &lt;code&gt;otelcol.exporter.otlp&lt;/code&gt; to an OTLP-compatible database such as Tempo.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;collapse&#34; x-data=&#34;app_collapse()&#34;&gt;
  &lt;button class=&#34;collapse-trigger&#34; @click=&#34;toggle()&#34;&gt;
    &lt;span class=&#34;body-large&#34;&gt;Example Kubernetes configuration&lt;/span&gt;
    &lt;span class=&#34;collapse-trigger__icon&#34; :class=&#34;{ &#39;collapse-trigger__icon-open&#39; : open }&#34;&gt;
      
  &lt;svg width=&#34;27&#34; height=&#34;26&#34; viewBox=&#34;0 0 27 26&#34; fill=&#34;none&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
&lt;path opacity=&#34;0.2&#34; d=&#34;M1.73047 12.8359C1.73047 19.4634 7.10305 24.8359 13.7305 24.8359C20.3579 24.8359 25.7305 19.4634 25.7305 12.8359C25.7305 6.20852 20.3579 0.835937 13.7305 0.835937C7.10305 0.835937 1.73047 6.20852 1.73047 12.8359Z&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;path d=&#34;M18.2344 12.8359L9.23438 12.8359&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;path d=&#34;M13.7344 8.33594L13.7344 17.3359&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;/svg&gt;


    &lt;/span&gt;
  &lt;/button&gt;
  &lt;div class=&#34;collapse-content&#34; x-ref=&#34;content&#34; hidden=&#34;until-found&#34;&gt;
    &lt;div class=&#34;collapse-content__inner&#34; x-ref=&#34;content-inner&#34;&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;YAML&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-yaml&#34;&gt;apiVersion: v1
kind: Namespace
metadata:
  name: grafana-cloud-monitoring
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: k6-trace-generator
  namespace: grafana-cloud-monitoring
spec:
  minReadySeconds: 10
  replicas: 1
  revisionHistoryLimit: 1
  selector:
    matchLabels:
      name: k6-trace-generator
  template:
    metadata:
      labels:
        name: k6-trace-generator
    spec:
      containers:
      - env:
        - name: ENDPOINT
          value: alloy-traces-lb.grafana-cloud-monitoring.svc.cluster.local:9411
        image: ghcr.io/grafana/xk6-client-tracing:v0.0.2
        imagePullPolicy: IfNotPresent
        name: k6-trace-generator
---
apiVersion: v1
kind: Service
metadata:
  name: alloy-traces-lb
  namespace: grafana-cloud-monitoring
spec:
  clusterIP: None
  ports:
  - name: alloy-traces-otlp-grpc
    port: 9411
    protocol: TCP
    targetPort: 9411
  selector:
    name: alloy-traces-lb
  type: ClusterIP
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: alloy-traces-lb
  namespace: grafana-cloud-monitoring
spec:
  minReadySeconds: 10
  replicas: 1
  revisionHistoryLimit: 1
  selector:
    matchLabels:
      name: alloy-traces-lb
  template:
    metadata:
      labels:
        name: alloy-traces-lb
    spec:
      containers:
      - args:
        - run
        - /etc/alloy/alloy_lb.alloy
        command:
        - /bin/alloy
        image: grafana/alloy:v1.0
        imagePullPolicy: IfNotPresent
        name: alloy-traces
        ports:
        - containerPort: 9411
          name: otlp-grpc
          protocol: TCP
        - containerPort: 34621
          name: alloy-lb
          protocol: TCP
        volumeMounts:
        - mountPath: /etc/alloy
          name: alloy-traces
      volumes:
      - configMap:
          name: alloy-traces
        name: alloy-traces
---
apiVersion: v1
kind: Service
metadata:
  name: alloy-traces-sampling
  namespace: grafana-cloud-monitoring
spec:
  clusterIP: None
  ports:
  - name: alloy-lb
    port: 34621
    protocol: TCP
    targetPort: alloy-lb
  selector:
    name: alloy-traces-sampling
  type: ClusterIP
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: alloy-traces-sampling
  namespace: grafana-cloud-monitoring
spec:
  minReadySeconds: 10
  replicas: 3
  revisionHistoryLimit: 1
  selector:
    matchLabels:
      name: alloy-traces-sampling
  template:
    metadata:
      labels:
        name: alloy-traces-sampling
    spec:
      containers:
      - args:
        - run
        - /etc/alloy/alloy_sampling.alloy
        command:
        - /bin/alloy
        image: grafana/alloy:v1.0
        imagePullPolicy: IfNotPresent
        name: alloy-traces
        ports:
        - containerPort: 9411
          name: otlp-grpc
          protocol: TCP
        - containerPort: 34621
          name: alloy-lb
          protocol: TCP
        volumeMounts:
        - mountPath: /etc/alloy
          name: alloy-traces
      volumes:
      - configMap:
          name: alloy-traces
        name: alloy-traces
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: alloy-traces
  namespace: grafana-cloud-monitoring
data:
  alloy_lb.alloy: |
    otelcol.receiver.otlp &amp;#34;default&amp;#34; {
      grpc {
        endpoint = &amp;#34;0.0.0.0:9411&amp;#34;
      }
      output {
        traces = [otelcol.exporter.loadbalancing.default.input,otelcol.exporter.debug.default.input]
      }
    }

    otelcol.exporter.debug &amp;#34;default&amp;#34; {
      verbosity = &amp;#34;detailed&amp;#34;
    }

    otelcol.exporter.loadbalancing &amp;#34;default&amp;#34; {
      resolver {
        dns {
          hostname = &amp;#34;alloy-traces-sampling.grafana-cloud-monitoring.svc.cluster.local&amp;#34;
          port = &amp;#34;34621&amp;#34;
        }
      }
      protocol {
        otlp {
          client {
            tls {
              insecure = true
            }
          }
        }
      }
    }

  alloy_sampling.alloy: |
    otelcol.receiver.otlp &amp;#34;default&amp;#34; {
      grpc {
        endpoint = &amp;#34;0.0.0.0:34621&amp;#34;
      }
      output {
        traces = [otelcol.exporter.otlp.default.input,otelcol.exporter.debug.default.input]
      }
    }

    otelcol.exporter.debug &amp;#34;default&amp;#34; {
      verbosity = &amp;#34;detailed&amp;#34;
    }

    otelcol.exporter.otlp &amp;#34;default&amp;#34; {
      client {
        endpoint = &amp;#34;tempo-prod-06-prod-gb-south-0.grafana.net:443&amp;#34;
        auth     = otelcol.auth.basic.creds.handler
      }
    }

    otelcol.auth.basic &amp;#34;creds&amp;#34; {
      username = &amp;#34;111111&amp;#34;
      password = &amp;#34;pass&amp;#34;
    }&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;You must fill in the correct OTLP credentials prior to running the example.
You can use &lt;a href=&#34;https://k3d.io/v5.6.0/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;k3d&lt;/a&gt; to start the example:&lt;/p&gt;
&lt;!-- TODO: Link to the k3d page --&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;Bash&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-bash&#34;&gt;k3d cluster create alloy-lb-test
kubectl apply -f kubernetes_config.yaml&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;To delete the cluster, run:&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;Bash&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-bash&#34;&gt;k3d cluster delete alloy-lb-test&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;kubernetes-resolver&#34;&gt;Kubernetes resolver&lt;/h3&gt;
&lt;p&gt;When you configure &lt;code&gt;otelcol.exporter.loadbalancing&lt;/code&gt;  with a &lt;code&gt;kubernetes&lt;/code&gt; resolver, the Kubernetes API notifies Alloy whenever a new Pod is added or removed from the service.
Spans are exported to the addresses from the Kubernetes API, combined with all the possible &lt;code&gt;ports&lt;/code&gt;.&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;otelcol.exporter.loadbalancing &amp;#34;default&amp;#34; {
    resolver {
        kubernetes {
            service = &amp;#34;alloy-traces-headless&amp;#34;
            ports   = [ 34621 ]
        }
    }
    protocol {
        otlp {
            client {}
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The following example shows a Kubernetes configuration that sets up two groups of Alloy instances:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A pool of load-balancer Alloys:
&lt;ul&gt;
&lt;li&gt;Spans are received from instrumented applications via &lt;code&gt;otelcol.receiver.otlp&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Spans are exported via &lt;code&gt;otelcol.exporter.loadbalancing&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The load-balancer Alloys will get notified by the Kubernetes API any time a Pod
is added or removed from the pool of sampling Alloys.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;A pool of sampling Alloyinstances:
&lt;ul&gt;
&lt;li&gt;The sampling Alloy instances don&amp;rsquo;t need to run behind a headless service.&lt;/li&gt;
&lt;li&gt;Spans are received from the load-balancer Alloys via &lt;code&gt;otelcol.receiver.otlp&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Traces are sampled via &lt;code&gt;otelcol.processor.tail_sampling&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The traces are exported via &lt;code&gt;otelcol.exporter.otlp&lt;/code&gt; to a an OTLP-compatible database such as Tempo.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- TODO: In the k8s config, why does the LB service has to be headless? --&gt;
&lt;div class=&#34;collapse&#34; x-data=&#34;app_collapse()&#34;&gt;
  &lt;button class=&#34;collapse-trigger&#34; @click=&#34;toggle()&#34;&gt;
    &lt;span class=&#34;body-large&#34;&gt;Example Kubernetes configuration&lt;/span&gt;
    &lt;span class=&#34;collapse-trigger__icon&#34; :class=&#34;{ &#39;collapse-trigger__icon-open&#39; : open }&#34;&gt;
      
  &lt;svg width=&#34;27&#34; height=&#34;26&#34; viewBox=&#34;0 0 27 26&#34; fill=&#34;none&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
&lt;path opacity=&#34;0.2&#34; d=&#34;M1.73047 12.8359C1.73047 19.4634 7.10305 24.8359 13.7305 24.8359C20.3579 24.8359 25.7305 19.4634 25.7305 12.8359C25.7305 6.20852 20.3579 0.835937 13.7305 0.835937C7.10305 0.835937 1.73047 6.20852 1.73047 12.8359Z&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;path d=&#34;M18.2344 12.8359L9.23438 12.8359&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;path d=&#34;M13.7344 8.33594L13.7344 17.3359&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;/svg&gt;


    &lt;/span&gt;
  &lt;/button&gt;
  &lt;div class=&#34;collapse-content&#34; x-ref=&#34;content&#34; hidden=&#34;until-found&#34;&gt;
    &lt;div class=&#34;collapse-content__inner&#34; x-ref=&#34;content-inner&#34;&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;YAML&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-yaml&#34;&gt;apiVersion: v1
kind: Namespace
metadata:
  name: grafana-cloud-monitoring
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: alloy-traces
  namespace: grafana-cloud-monitoring
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: alloy-traces-role
  namespace: grafana-cloud-monitoring
rules:
- apiGroups:
  - &amp;#34;&amp;#34;
  resources:
  - endpoints
  verbs:
  - list
  - watch
  - get
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: alloy-traces-rolebinding
  namespace: grafana-cloud-monitoring
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: alloy-traces-role
subjects:
- kind: ServiceAccount
  name: alloy-traces
  namespace: grafana-cloud-monitoring
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: k6-trace-generator
  namespace: grafana-cloud-monitoring
spec:
  minReadySeconds: 10
  replicas: 1
  revisionHistoryLimit: 1
  selector:
    matchLabels:
      name: k6-trace-generator
  template:
    metadata:
      labels:
        name: k6-trace-generator
    spec:
      containers:
      - env:
        - name: ENDPOINT
          value: alloy-traces-lb.grafana-cloud-monitoring.svc.cluster.local:9411
        image: ghcr.io/grafana/xk6-client-tracing:v0.0.2
        imagePullPolicy: IfNotPresent
        name: k6-trace-generator
---
apiVersion: v1
kind: Service
metadata:
  name: alloy-traces-lb
  namespace: grafana-cloud-monitoring
spec:
  clusterIP: None
  ports:
  - name: alloy-traces-otlp-grpc
    port: 9411
    protocol: TCP
    targetPort: 9411
  selector:
    name: alloy-traces-lb
  type: ClusterIP
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: alloy-traces-lb
  namespace: grafana-cloud-monitoring
spec:
  minReadySeconds: 10
  replicas: 1
  revisionHistoryLimit: 1
  selector:
    matchLabels:
      name: alloy-traces-lb
  template:
    metadata:
      labels:
        name: alloy-traces-lb
    spec:
      containers:
      - args:
        - run
        - /etc/alloy/alloy_lb.alloy
        command:
        - /bin/alloy
        image: grafana/alloy:v1.0
        imagePullPolicy: IfNotPresent
        name: alloy-traces
        ports:
        - containerPort: 9411
          name: otlp-grpc
          protocol: TCP
        volumeMounts:
        - mountPath: /etc/alloy
          name: alloy-traces
      serviceAccount: alloy-traces
      volumes:
      - configMap:
          name: alloy-traces
        name: alloy-traces
---
apiVersion: v1
kind: Service
metadata:
  name: alloy-traces-sampling
  namespace: grafana-cloud-monitoring
spec:
  ports:
  - name: alloy-lb
    port: 34621
    protocol: TCP
    targetPort: alloy-lb
  selector:
    name: alloy-traces-sampling
  type: ClusterIP
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: alloy-traces-sampling
  namespace: grafana-cloud-monitoring
spec:
  minReadySeconds: 10
  replicas: 3
  revisionHistoryLimit: 1
  selector:
    matchLabels:
      name: alloy-traces-sampling
  template:
    metadata:
      labels:
        name: alloy-traces-sampling
    spec:
      containers:
      - args:
        - run
        - /etc/alloy/alloy_sampling.alloy
        command:
        - /bin/alloy
        image: grafana/alloy:v1.0
        imagePullPolicy: IfNotPresent
        name: alloy-traces
        ports:
        - containerPort: 34621
          name: alloy-lb
          protocol: TCP
        volumeMounts:
        - mountPath: /etc/alloy
          name: alloy-traces
      volumes:
      - configMap:
          name: alloy-traces
        name: alloy-traces
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: alloy-traces
  namespace: grafana-cloud-monitoring
data:
  alloy_lb.alloy: |
    otelcol.receiver.otlp &amp;#34;default&amp;#34; {
      grpc {
        endpoint = &amp;#34;0.0.0.0:9411&amp;#34;
      }
      output {
        traces = [otelcol.exporter.loadbalancing.default.input,otelcol.exporter.debug.default.input]
      }
    }

    otelcol.exporter.debug &amp;#34;default&amp;#34; {
      verbosity = &amp;#34;detailed&amp;#34;
    }

    otelcol.exporter.loadbalancing &amp;#34;default&amp;#34; {
      resolver {
        kubernetes {
          service = &amp;#34;alloy-traces-sampling&amp;#34;
          ports = [&amp;#34;34621&amp;#34;]
        }
      }
      protocol {
        otlp {
          client {
            tls {
              insecure = true
            }
          }
        }
      }
    }

  alloy_sampling.alloy: |
    otelcol.receiver.otlp &amp;#34;default&amp;#34; {
      grpc {
        endpoint = &amp;#34;0.0.0.0:34621&amp;#34;
      }
      output {
        traces = [otelcol.exporter.otlp.default.input,otelcol.exporter.debug.default.input]
      }
    }

    otelcol.exporter.debug &amp;#34;default&amp;#34; {
      verbosity = &amp;#34;detailed&amp;#34;
    }

    otelcol.exporter.otlp &amp;#34;default&amp;#34; {
      client {
        endpoint = &amp;#34;tempo-prod-06-prod-gb-south-0.grafana.net:443&amp;#34;
        auth     = otelcol.auth.basic.creds.handler
      }
    }

    otelcol.auth.basic &amp;#34;creds&amp;#34; {
      username = &amp;#34;111111&amp;#34;
      password = &amp;#34;pass&amp;#34;
    }&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;You must fill in the correct OTLP credentials prior to running the example.
You can use &lt;a href=&#34;https://k3d.io/v5.6.0/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;k3d&lt;/a&gt; to start the example:&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;Bash&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-bash&#34;&gt;k3d cluster create alloy-lb-test
kubectl apply -f kubernetes_config.yaml&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;To delete the cluster, run:&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;Bash&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-bash&#34;&gt;k3d cluster delete alloy-lb-test&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.loadbalancing&lt;/code&gt; has exports that can be consumed by the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that consume &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-consumers&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolexporterloadbalancing">&lt;code>otelcol.exporter.loadbalancing&lt;/code>&lt;/h1>
&lt;!-- Include a picture of the LB architecture? -->
&lt;p>&lt;code>otelcol.exporter.loadbalancing&lt;/code> accepts logs and traces from other &lt;code>otelcol&lt;/code> components and writes them over the network using the OpenTelemetry Protocol (OTLP) protocol.&lt;/p></description></item><item><title>otelcol.exporter.loki</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.exporter.loki/</link><pubDate>Mon, 30 Mar 2026 15:47:22 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.exporter.loki/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolexporterloki&#34;&gt;&lt;code&gt;otelcol.exporter.loki&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.loki&lt;/code&gt; accepts OTLP-formatted logs from other &lt;code&gt;otelcol&lt;/code&gt; components, converts them to Loki-formatted log entries, and forwards them to &lt;code&gt;loki&lt;/code&gt; components.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.exporter.loki&lt;/code&gt; is a custom component unrelated to the &lt;code&gt;lokiexporter&lt;/code&gt; from the OpenTelemetry Collector.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;The attributes of the OTLP log aren&amp;rsquo;t converted to Loki attributes by default.
To convert them, the OTLP log should contain special &amp;ldquo;hint&amp;rdquo; attributes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;To convert OTLP resource attributes to Loki labels, use the &lt;code&gt;loki.resource.labels&lt;/code&gt; hint attribute.&lt;/li&gt;
&lt;li&gt;To convert OTLP log attributes to Loki labels, use the &lt;code&gt;loki.attribute.labels&lt;/code&gt; hint attribute.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Labels will be translated to a &lt;a href=&#34;https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Prometheus format&lt;/a&gt;, which is more constrained than the OTLP format.
For examples on label translation, see the &lt;a href=&#34;#convert-otlp-attributes-to-loki-labels&#34;&gt;Convert OTLP attributes to Loki labels&lt;/a&gt; section.&lt;/p&gt;
&lt;p&gt;Multiple &lt;code&gt;otelcol.exporter.loki&lt;/code&gt; components can be specified by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.exporter.loki &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  forward_to = [...]
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following argument with &lt;code&gt;otelcol.exporter.loki&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;forward_to&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(receiver)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Where to forward converted Loki logs.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;otelcol.exporter.loki&lt;/code&gt; component doesn&amp;rsquo;t support any blocks. You can configure this component with arguments.&lt;/p&gt;
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;The following fields are exported and can be referenced by other components:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&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;code&gt;input&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A value that other components can use to send telemetry data to.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;input&lt;/code&gt; accepts &lt;code&gt;otelcol.Consumer&lt;/code&gt; data for logs. Other telemetry signals are ignored.&lt;/p&gt;
&lt;p&gt;Logs sent to &lt;code&gt;input&lt;/code&gt; are converted to Loki-compatible log entries and are forwarded to the &lt;code&gt;forward_to&lt;/code&gt; argument in sequence.&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.loki&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.loki&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug
information.&lt;/p&gt;
&lt;h2 id=&#34;examples&#34;&gt;Examples&lt;/h2&gt;
&lt;h3 id=&#34;basic-usage&#34;&gt;Basic usage&lt;/h3&gt;
&lt;p&gt;This example accepts OTLP logs over gRPC, transforms them and forwards the converted log entries to &lt;code&gt;loki.write&lt;/code&gt;:&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;otelcol.receiver.otlp &amp;#34;default&amp;#34; {
  grpc {}

  output {
    logs = [otelcol.exporter.loki.default.input]
  }
}

otelcol.exporter.loki &amp;#34;default&amp;#34; {
  forward_to = [loki.write.local.receiver]
}

loki.write &amp;#34;local&amp;#34; {
  endpoint {
    url = &amp;#34;loki:3100&amp;#34;
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;convert-otlp-attributes-to-loki-labels&#34;&gt;Convert OTLP attributes to Loki labels&lt;/h3&gt;
&lt;p&gt;This example converts the following attributes to Loki labels:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;service.name&lt;/code&gt; and &lt;code&gt;service.namespace&lt;/code&gt; OTLP resource attributes.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;event.domain&lt;/code&gt; and &lt;code&gt;event.name&lt;/code&gt; OTLP log attributes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Labels will be translated to a &lt;a href=&#34;https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Prometheus format&lt;/a&gt;.
For example:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;OpenTelemetry Attribute&lt;/th&gt;
              &lt;th&gt;Prometheus Label&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;name&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;host.name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;host_name&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;host_name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;host_name&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;name (of the host)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;name__of_the_host_&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;2 cents&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;key_2_cents&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;__name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;__name&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;_name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;key_name&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;_name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;_name&lt;/code&gt; (if &lt;code&gt;PermissiveLabelSanitization&lt;/code&gt; is enabled)&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&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;otelcol.receiver.otlp &amp;#34;default&amp;#34; {
  grpc {}

  output {
    logs = [otelcol.processor.attributes.default.input]
  }
}

otelcol.processor.attributes &amp;#34;default&amp;#34; {
  action {
    key = &amp;#34;loki.attribute.labels&amp;#34;
    action = &amp;#34;insert&amp;#34;
    value = &amp;#34;event.domain, event.name&amp;#34;
  }

  action {
    key = &amp;#34;loki.resource.labels&amp;#34;
    action = &amp;#34;insert&amp;#34;
    value = &amp;#34;service.name, service.namespace&amp;#34;
  }

  output {
    logs = [otelcol.exporter.loki.default.input]
  }
}

otelcol.exporter.loki &amp;#34;default&amp;#34; {
  forward_to = [loki.write.local.receiver]
}

loki.write &amp;#34;local&amp;#34; {
  endpoint {
      url = &amp;#34;loki:3100&amp;#34;
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.loki&lt;/code&gt; can accept arguments from the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that export &lt;a href=&#34;../../../compatibility/#loki-logsreceiver-exporters&#34;&gt;Loki &lt;code&gt;LogsReceiver&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.loki&lt;/code&gt; has exports that can be consumed by the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that consume &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-consumers&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolexporterloki">&lt;code>otelcol.exporter.loki&lt;/code>&lt;/h1>
&lt;p>&lt;code>otelcol.exporter.loki&lt;/code> accepts OTLP-formatted logs from other &lt;code>otelcol&lt;/code> components, converts them to Loki-formatted log entries, and forwards them to &lt;code>loki&lt;/code> components.&lt;/p>
&lt;div class="admonition admonition-note">&lt;blockquote>&lt;p class="title text-uppercase">Note&lt;/p>&lt;p>&lt;code>otelcol.exporter.loki&lt;/code> is a custom component unrelated to the &lt;code>lokiexporter&lt;/code> from the OpenTelemetry Collector.&lt;/p></description></item><item><title>otelcol.exporter.otlp</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.exporter.otlp/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.exporter.otlp/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolexporterotlp&#34;&gt;&lt;code&gt;otelcol.exporter.otlp&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.otlp&lt;/code&gt; accepts telemetry data from other &lt;code&gt;otelcol&lt;/code&gt; components and writes them over the network using the OTLP gRPC protocol.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.exporter.otlp&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector/tree/v0.147.0/exporter/otlpexporter&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;otlp&lt;/code&gt;&lt;/a&gt; exporter.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.exporter.otlp&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.exporter.otlp &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  client {
    endpoint = &amp;#34;&amp;lt;HOST&amp;gt;:&amp;lt;PORT&amp;gt;&amp;#34;
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following argument with &lt;code&gt;otelcol.exporter.otlp&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Time to wait before marking a request as failed.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;5s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.exporter.otlp&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 8;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#client\&amp;#34;\u003e\u003ccode\u003eclient\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the gRPC client to send telemetry data to.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eclient\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#keepalive\&amp;#34;\u003e\u003ccode\u003ekeepalive\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures keepalive settings for the gRPC client.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eclient\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#tls\&amp;#34;\u003e\u003ccode\u003etls\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TLS for the gRPC client.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eclient\u003c/code\u003e \u0026gt; \u003ccode\u003etls\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#tpm\&amp;#34;\u003e\u003ccode\u003etpm\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TPM settings for the TLS \u003ccode\u003ekey_file\u003c/code\u003e.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#retry_on_failure\&amp;#34;\u003e\u003ccode\u003eretry_on_failure\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures retry mechanism for failed requests.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#sending_queue\&amp;#34;\u003e\u003ccode\u003esending_queue\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures batching of data before sending.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003esending_queue\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#batch\&amp;#34;\u003e\u003ccode\u003ebatch\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures batching requests based on a timeout and a minimum number of items.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#client&#34;&gt;&lt;code&gt;client&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the gRPC client to send telemetry data to.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;client&lt;/code&gt; &amp;gt; &lt;a href=&#34;#keepalive&#34;&gt;&lt;code&gt;keepalive&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures keepalive settings for the gRPC client.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;client&lt;/code&gt; &amp;gt; &lt;a href=&#34;#tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TLS for the gRPC client.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;client&lt;/code&gt; &amp;gt; &lt;code&gt;tls&lt;/code&gt; &amp;gt; &lt;a href=&#34;#tpm&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TPM settings for the TLS &lt;code&gt;key_file&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#retry_on_failure&#34;&gt;&lt;code&gt;retry_on_failure&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures retry mechanism for failed requests.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#sending_queue&#34;&gt;&lt;code&gt;sending_queue&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures batching of data before sending.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sending_queue&lt;/code&gt; &amp;gt; &lt;a href=&#34;#batch&#34;&gt;&lt;code&gt;batch&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures batching requests based on a timeout and a minimum number of items.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;client&#34;&gt;&lt;code&gt;client&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;

&lt;p&gt;The &lt;code&gt;client&lt;/code&gt; block configures the gRPC client used by the component.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;host:port&lt;/code&gt; to send telemetry data to.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;capsule(otelcol.Handler)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Handler from an &lt;code&gt;otelcol.auth&lt;/code&gt; component to use for authenticating requests.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;authority&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Overrides the default &lt;code&gt;:authority&lt;/code&gt; header in gRPC requests from the gRPC client.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;balancer_name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Which gRPC client-side load balancer to use for requests.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;round_robin&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;compression&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Compression mechanism to use for requests.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;gzip&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;headers&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;map(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Additional headers to send with the request.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;{}&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;read_buffer_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Size of the read buffer the gRPC client to use for reading server responses.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;wait_for_ready&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Waits for gRPC connection to be in the &lt;code&gt;READY&lt;/code&gt; state before sending data.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;write_buffer_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Size of the write buffer the gRPC client to use for writing requests.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;512KiB&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;

&lt;div data-shared=&#34;reference/components/otelcol-compression-field.md&#34;&gt;
            &lt;p&gt;By default, requests are compressed with Gzip.
The &lt;code&gt;compression&lt;/code&gt; argument controls which compression mechanism to use. Supported strings are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;gzip&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;zlib&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;deflate&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;snappy&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;zstd&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you set &lt;code&gt;compression&lt;/code&gt; to &lt;code&gt;&amp;quot;none&amp;quot;&lt;/code&gt; or an empty string &lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;, the requests aren&amp;rsquo;t compressed.&lt;/p&gt;
&lt;/div&gt;

        


&lt;div data-shared=&#34;reference/components/otelcol-grpc-balancer-name.md&#34;&gt;
            &lt;p&gt;The supported values for &lt;code&gt;balancer_name&lt;/code&gt; are listed in the gRPC documentation on &lt;a href=&#34;https://github.com/grpc/grpc-go/blob/master/examples/features/load_balancing/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Load balancing&lt;/a&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;pick_first&lt;/code&gt;: Tries to connect to the first address. It uses the address for all RPCs if it connects, or if it fails, it tries the next address and keeps trying until one connection is successful.
Because of this, all the RPCs are sent to the same backend.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;round_robin&lt;/code&gt;: Connects to all the addresses it sees and sends an RPC to each backend one at a time in order.
For example, the first RPC is sent to backend-1, the second RPC is sent to backend-2, and the third RPC is sent to backend-1.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

        


&lt;div data-shared=&#34;reference/components/otelcol-grpc-authority.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;:authority&lt;/code&gt; header in gRPC specifies the host to which the request is being sent.
It&amp;rsquo;s similar to the &lt;code&gt;Host&lt;/code&gt; &lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Host&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;header&lt;/a&gt; in HTTP requests.
By default, the value for &lt;code&gt;:authority&lt;/code&gt; is derived from the endpoint URL used for the gRPC call.
Overriding &lt;code&gt;:authority&lt;/code&gt; could be useful when routing traffic using a proxy like Envoy, which &lt;a href=&#34;https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_conn_man/route_matching&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;makes routing decisions&lt;/a&gt; based on the value of the &lt;code&gt;:authority&lt;/code&gt; header.&lt;/p&gt;
&lt;/div&gt;

        
&lt;p&gt;An HTTP proxy can be configured through the following environment variables:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;HTTPS_PROXY&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;NO_PROXY&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The &lt;code&gt;HTTPS_PROXY&lt;/code&gt; environment variable specifies a URL to use for proxying requests.
Connections to the proxy are established via &lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/CONNECT&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;the &lt;code&gt;HTTP CONNECT&lt;/code&gt; method&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;NO_PROXY&lt;/code&gt; environment variable is an optional list of comma-separated hostnames for which the HTTPS proxy should &lt;em&gt;not&lt;/em&gt; be used.
Each hostname can be provided as an IP address (&lt;code&gt;1.2.3.4&lt;/code&gt;), an IP address in CIDR notation (&lt;code&gt;1.2.3.4/8&lt;/code&gt;), a domain name (&lt;code&gt;example.com&lt;/code&gt;), or &lt;code&gt;*&lt;/code&gt;.
A domain name matches that domain and all subdomains.
A domain name with a leading &amp;ldquo;.&amp;rdquo; (&lt;code&gt;.example.com&lt;/code&gt;) matches subdomains only.
&lt;code&gt;NO_PROXY&lt;/code&gt; is only read when &lt;code&gt;HTTPS_PROXY&lt;/code&gt; is set.&lt;/p&gt;
&lt;p&gt;Because &lt;code&gt;otelcol.exporter.otlp&lt;/code&gt; uses gRPC, the configured proxy server must be able to handle and proxy HTTP/2 traffic.&lt;/p&gt;
&lt;h3 id=&#34;keepalive&#34;&gt;&lt;code&gt;keepalive&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;keepalive&lt;/code&gt; block configures keepalive settings for gRPC client connections.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ping_wait&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How often to ping the server after no activity.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ping_response_timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Time to wait before closing inactive connections if the server doesn&amp;rsquo;t respond to a ping.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ping_without_stream&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Send pings even if there is no active stream request.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;tls&lt;/code&gt; block configures TLS settings used for the connection to the gRPC
server.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-tls-client-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ca_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the CA file.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ca_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;CA PEM-encoded text to validate the server with.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cert_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS certificate.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cert_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Certificate PEM-encoded text for client authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cipher_suites&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of TLS cipher suites that the TLS transport can use.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;curve_preferences&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Set of elliptic curves to use in a handshake.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_system_ca_certs_pool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to load the system certificate authorities pool alongside the certificate authority.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;insecure_skip_verify&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Ignores insecure server TLS certificates.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;insecure&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Disables TLS when connecting to the configured server.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS certificate key.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;secret&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Key PEM-encoded text for client authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum acceptable TLS version for connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;TLS 1.3&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;min_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Minimum acceptable TLS version for connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;TLS 1.2&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;reload_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The duration after which the certificate is reloaded.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;server_name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Verifies the hostname of server certificates when set.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If the server doesn&amp;rsquo;t support TLS, you must set the &lt;code&gt;insecure&lt;/code&gt; argument to &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;To disable &lt;code&gt;tls&lt;/code&gt; for connections to the server, set the &lt;code&gt;insecure&lt;/code&gt; argument to &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;If you set &lt;code&gt;reload_interval&lt;/code&gt; to &lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;, the certificate never reloaded.&lt;/p&gt;
&lt;p&gt;The following pairs of arguments are mutually exclusive and can&amp;rsquo;t both be set simultaneously:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ca_pem&lt;/code&gt; and &lt;code&gt;ca_file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cert_pem&lt;/code&gt; and &lt;code&gt;cert_file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;key_pem&lt;/code&gt; and &lt;code&gt;key_file&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If &lt;code&gt;cipher_suites&lt;/code&gt; is left blank, a safe default list is used.
Refer to the &lt;a href=&#34;https://go.dev/src/crypto/tls/cipher_suites.go&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Go TLS documentation&lt;/a&gt; for a list of supported cipher suites.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;curve_preferences&lt;/code&gt; argument determines the set of &lt;a href=&#34;https://go.dev/src/crypto/tls/common.go#L138&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;elliptic curves&lt;/a&gt; to prefer during a handshake in preference order.
If not provided, a default list is used.
The set of elliptic curves available are &lt;code&gt;X25519&lt;/code&gt;, &lt;code&gt;P521&lt;/code&gt;, &lt;code&gt;P256&lt;/code&gt;, and &lt;code&gt;P384&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;tpm&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;tpm&lt;/code&gt; block configures retrieving the TLS &lt;code&gt;key_file&lt;/code&gt; from a trusted device.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-tls-tpm-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The authorization value used to authenticate the TPM device.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Load the &lt;code&gt;tls.key_file&lt;/code&gt; from TPM.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;owner_auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The owner authorization value used to authenticate the TPM device.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;path&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TPM device or Unix domain socket.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;a href=&#34;https://trustedcomputinggroup.org/resource/trusted-platform-module-tpm-summary/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;trusted platform module&lt;/a&gt; (TPM) configuration can be used for loading TLS key from TPM. Currently only TSS2 format is supported.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;path&lt;/code&gt; attribute is not supported on Windows.&lt;/p&gt;
&lt;p&gt;In the following example, the private key &lt;code&gt;my-tss2-key.key&lt;/code&gt; in TSS2 format is loaded from the TPM device &lt;code&gt;/dev/tmprm0&lt;/code&gt;:&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;otelcol.example.component &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
    ...
    tls {
        ...
        key_file = &amp;#34;my-tss2-key.key&amp;#34;
        tpm {
            enabled = true
            path = &amp;#34;/dev/tpmrm0&amp;#34;
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

        


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.exporter.otlp&lt;/code&gt; uses gRPC, which doesn&amp;rsquo;t allow you to send sensitive credentials like &lt;code&gt;auth&lt;/code&gt; over insecure channels.
Sending sensitive credentials over insecure non-TLS connections is supported by non-gRPC exporters such as &lt;a href=&#34;../otelcol.exporter.otlphttp/&#34;&gt;&lt;code&gt;otelcol.exporter.otlphttp&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h3 id=&#34;retry_on_failure&#34;&gt;&lt;code&gt;retry_on_failure&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;retry_on_failure&lt;/code&gt; block configures how failed requests to the gRPC server are retried.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-retry-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables retrying failed requests.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;initial_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Initial time to wait before retrying a failed request.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;5s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_elapsed_time&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum time to wait before discarding a failed batch.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;5m&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum time to wait between retries.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;30s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;multiplier&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Factor to grow wait time before retrying.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1.5&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;randomization_factor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Factor to randomize wait time before retrying.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;0.5&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;When &lt;code&gt;enabled&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;, failed batches are retried after a given interval.
The &lt;code&gt;initial_interval&lt;/code&gt; argument specifies how long to wait before the first retry attempt.
If requests continue to fail, the time to wait before retrying increases by the factor specified by the &lt;code&gt;multiplier&lt;/code&gt; argument, which must be greater than &lt;code&gt;1.0&lt;/code&gt;.
The &lt;code&gt;max_interval&lt;/code&gt; argument specifies the upper bound of how long to wait between retries.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;randomization_factor&lt;/code&gt; argument is useful for adding jitter between retrying Alloy instances.
If &lt;code&gt;randomization_factor&lt;/code&gt; is greater than &lt;code&gt;0&lt;/code&gt;, the wait time before retries is multiplied by a random factor in the range &lt;code&gt;[ I - randomization_factor * I, I &#43; randomization_factor * I]&lt;/code&gt;, where &lt;code&gt;I&lt;/code&gt; is the current interval.&lt;/p&gt;
&lt;p&gt;If a batch hasn&amp;rsquo;t been sent successfully, it&amp;rsquo;s discarded after the time specified by &lt;code&gt;max_elapsed_time&lt;/code&gt; elapses.
If &lt;code&gt;max_elapsed_time&lt;/code&gt; is set to &lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;, failed requests are retried forever until they succeed.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;sending_queue&#34;&gt;&lt;code&gt;sending_queue&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;sending_queue&lt;/code&gt; block configures queueing and batching for the exporter.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-queue-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;block_on_overflow&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The behavior when the component&amp;rsquo;s &lt;code&gt;TotalSize&lt;/code&gt; limit is reached.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables a buffer before sending data to the client.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;num_consumers&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Number of readers to send batches written to the queue in parallel.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;queue_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum number of unwritten batches allowed in the queue at the same time.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1000&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sizer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How the queue and batching is measured.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;requests&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;wait_for_result&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Determines if incoming requests are blocked until the request is processed or not.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;storage&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;capsule(otelcol.Handler)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Handler from an &lt;code&gt;otelcol.storage&lt;/code&gt; component to use to enable a persistent queue mechanism.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;code&gt;blocking&lt;/code&gt; argument is deprecated in favor of the &lt;code&gt;block_on_overflow&lt;/code&gt; argument.&lt;/p&gt;
&lt;p&gt;When &lt;code&gt;block_on_overflow&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;, the component will wait for space. Otherwise, operations will immediately return a retryable error.&lt;/p&gt;
&lt;p&gt;When &lt;code&gt;enabled&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;, data is first written to an in-memory buffer before sending it to the configured server.
Batches sent to the component&amp;rsquo;s &lt;code&gt;input&lt;/code&gt; exported field are added to the buffer as long as the number of unsent batches doesn&amp;rsquo;t exceed the configured &lt;code&gt;queue_size&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;queue_size&lt;/code&gt; determines how long an endpoint outage is tolerated.
Assuming 100 requests/second, the default queue size &lt;code&gt;1000&lt;/code&gt; provides about 10 seconds of outage tolerance.
To calculate the correct value for &lt;code&gt;queue_size&lt;/code&gt;, multiply the average number of outgoing requests per second by the time in seconds that outages are tolerated. A very high value can cause Out Of Memory (OOM) kills.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;sizer&lt;/code&gt; argument could be set to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;requests&lt;/code&gt;: number of incoming batches of metrics, logs, traces (the most performant option).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;items&lt;/code&gt;: number of the smallest parts of each signal (spans, metric data points, log records).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bytes&lt;/code&gt;: the size of serialized data in bytes (the least performant option).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The &lt;code&gt;num_consumers&lt;/code&gt; argument controls how many readers read from the buffer and send data in parallel.
Larger values of &lt;code&gt;num_consumers&lt;/code&gt; allow data to be sent more quickly at the expense of increased network traffic.&lt;/p&gt;
&lt;p&gt;If an &lt;code&gt;otelcol.storage.*&lt;/code&gt; component is configured and provided in the queue&amp;rsquo;s &lt;code&gt;storage&lt;/code&gt; argument, the queue uses the
provided storage extension to provide a persistent queue and the queue is no longer stored in memory.
Any data persisted will be processed on startup if Alloy is killed or restarted.
Refer to the 
    &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector/blob/v0.147.0/exporter/exporterhelper/README.md#persistent-queue&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;exporterhelper documentation&lt;/a&gt; in the OpenTelemetry Collector repository for more details.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;batch&#34;&gt;&lt;code&gt;batch&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;batch&lt;/code&gt; block configures batching requests based on a timeout and a minimum number of items.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-queue-batch-block.md&#34;&gt;
            &lt;p&gt;Batching is disabled by default.
To enable it, explicitly include &lt;code&gt;batch {}&lt;/code&gt; in your Alloy configuration.
You do not need to include a &lt;code&gt;batch {}&lt;/code&gt; block in your &lt;code&gt;otelcol.exporter&lt;/code&gt; if you already use a &lt;code&gt;otelcol.processor.batch&lt;/code&gt; component,
although batching in the exporter is the preferred method because it is more flexible.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;flush_timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Time after which a batch will be sent regardless of its size. Must be a non-zero value.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;200ms&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;min_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The minimum size of a batch.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;2000&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The maximum size of a batch, enables batch splitting.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;3000&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sizer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How the queue and batching is measured. Overrides the sizer set at the &lt;code&gt;sending_queue&lt;/code&gt; level for batching.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;items&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If configured, &lt;code&gt;max_size&lt;/code&gt; must be greater than or equal to &lt;code&gt;min_size&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;sizer&lt;/code&gt; argument can be set to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;items&lt;/code&gt;: The number of the smallest parts of each span, metric data point, or log record.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bytes&lt;/code&gt;: the size of serialized data in bytes (the least performant option).&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

        
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;The following fields are exported and can be referenced by other components:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&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;code&gt;input&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A value that other components can use to send telemetry data to.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;input&lt;/code&gt; accepts &lt;code&gt;otelcol.Consumer&lt;/code&gt; data for any telemetry signal (metrics, logs, or traces).&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.otlp&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.otlp&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;debug-metrics&#34;&gt;Debug metrics&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;otelcol_exporter_queue_capacity&lt;/code&gt; (gauge): Fixed capacity of the retry queue (in batches)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;otelcol_exporter_queue_size&lt;/code&gt; (gauge): Current size of the retry queue (in batches)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;otelcol_exporter_send_failed_spans_total&lt;/code&gt; (counter): Number of spans in failed attempts to send to destination.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;otelcol_exporter_sent_spans_total&lt;/code&gt; (counter): Number of spans successfully sent to destination.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;rpc_client_duration_milliseconds&lt;/code&gt; (histogram): Measures the duration of inbound RPC.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;rpc_client_request_size_bytes&lt;/code&gt; (histogram): Measures size of RPC request messages (uncompressed).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;rpc_client_requests_per_rpc&lt;/code&gt; (histogram): Measures the number of messages received per RPC. Should be 1 for all non-streaming RPCs.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;rpc_client_response_size_bytes&lt;/code&gt; (histogram): Measures size of RPC response messages (uncompressed).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;rpc_client_responses_per_rpc&lt;/code&gt; (histogram): Measures the number of messages received per RPC. Should be 1 for all non-streaming RPCs.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;examples&#34;&gt;Examples&lt;/h2&gt;
&lt;p&gt;The following examples show you how to create an exporter to send data to different destinations.&lt;/p&gt;
&lt;h3 id=&#34;send-data-to-a-local-tempo-instance&#34;&gt;Send data to a local Tempo instance&lt;/h3&gt;
&lt;p&gt;You can create an exporter that sends your data to a local Grafana Tempo instance without TLS:&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;otelcol.exporter.otlp &amp;#34;tempo&amp;#34; {
    client {
        endpoint = &amp;#34;tempo:4317&amp;#34;
        tls {
            insecure             = true
            insecure_skip_verify = true
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;send-data-to-a-managed-service&#34;&gt;Send data to a managed service&lt;/h3&gt;
&lt;p&gt;You can create an &lt;code&gt;otlp&lt;/code&gt; exporter that sends your data to a managed service, for example, Grafana Cloud.
The Tempo username and Grafana Cloud API Key are injected in this example through environment variables.&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;otelcol.exporter.otlp &amp;#34;grafana_cloud_traces&amp;#34; {
    client {
        endpoint = &amp;#34;tempo-xxx.grafana.net/tempo:443&amp;#34;
        auth     = otelcol.auth.basic.grafana_cloud_traces.handler
    }
}
otelcol.auth.basic &amp;#34;grafana_cloud_traces&amp;#34; {
    username = sys.env(&amp;#34;TEMPO_USERNAME&amp;#34;)
    password = sys.env(&amp;#34;GRAFANA_CLOUD_API_KEY&amp;#34;)
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.otlp&lt;/code&gt; has exports that can be consumed by the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that consume &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-consumers&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolexporterotlp">&lt;code>otelcol.exporter.otlp&lt;/code>&lt;/h1>
&lt;p>&lt;code>otelcol.exporter.otlp&lt;/code> accepts telemetry data from other &lt;code>otelcol&lt;/code> components and writes them over the network using the OTLP gRPC protocol.&lt;/p>
&lt;div class="admonition admonition-note">&lt;blockquote>&lt;p class="title text-uppercase">Note&lt;/p>&lt;p>&lt;code>otelcol.exporter.otlp&lt;/code> is a wrapper over the upstream OpenTelemetry Collector &lt;a href="https://github.com/open-telemetry/opentelemetry-collector/tree/v0.147.0/exporter/otlpexporter" target="_blank" rel="noopener noreferrer">&lt;code>otlp&lt;/code>&lt;/a> exporter.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p></description></item><item><title>otelcol.exporter.otlphttp</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.exporter.otlphttp/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.exporter.otlphttp/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolexporterotlphttp&#34;&gt;&lt;code&gt;otelcol.exporter.otlphttp&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.otlphttp&lt;/code&gt; accepts telemetry data from other &lt;code&gt;otelcol&lt;/code&gt; components and writes them over the network using the OTLP HTTP protocol.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.exporter.otlphttp&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector/tree/v0.147.0/exporter/otlphttpexporter&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;otlphttp&lt;/code&gt;&lt;/a&gt; exporter.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.exporter.otlphttp&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.exporter.otlphttp &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  client {
    endpoint = &amp;#34;&amp;lt;HOST&amp;gt;:&amp;lt;PORT&amp;gt;&amp;#34;
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.exporter.otlphttp&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;encoding&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The encoding to use for messages. Should be either &lt;code&gt;&amp;quot;proto&amp;quot;&lt;/code&gt; or &lt;code&gt;&amp;quot;json&amp;quot;&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;proto&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;logs_endpoint&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The endpoint to send logs to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;client.endpoint &#43; &amp;quot;/v1/logs&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics_endpoint&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The endpoint to send metrics to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;client.endpoint &#43; &amp;quot;/v1/metrics&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;traces_endpoint&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The endpoint to send traces to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;client.endpoint &#43; &amp;quot;/v1/traces&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The default value depends on the &lt;code&gt;endpoint&lt;/code&gt; field set in the required &lt;code&gt;client&lt;/code&gt; block.
If set, these arguments override the &lt;code&gt;client.endpoint&lt;/code&gt; field for the corresponding signal.&lt;/p&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.exporter.otlphttp&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 9;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#client\&amp;#34;\u003e\u003ccode\u003eclient\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the HTTP client to send telemetry data to.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eclient\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#compression_params\&amp;#34;\u003e\u003ccode\u003ecompression_params\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigure advanced compression options.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eclient\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#cookies\&amp;#34;\u003e\u003ccode\u003ecookies\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eStore cookies from server responses and reuse them in subsequent requests.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eclient\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#tls\&amp;#34;\u003e\u003ccode\u003etls\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TLS for the HTTP client.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eclient\u003c/code\u003e \u0026gt; \u003ccode\u003etls\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#tpm\&amp;#34;\u003e\u003ccode\u003etpm\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TPM settings for the TLS \u003ccode\u003ekey_file\u003c/code\u003e.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#retry_on_failure\&amp;#34;\u003e\u003ccode\u003eretry_on_failure\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures retry mechanism for failed requests.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#sending_queue\&amp;#34;\u003e\u003ccode\u003esending_queue\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures queueing and batching for the exporter.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003esending_queue\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#batch\&amp;#34;\u003e\u003ccode\u003ebatch\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures batching requests based on a timeout and a minimum number of items.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#client&#34;&gt;&lt;code&gt;client&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the HTTP client to send telemetry data to.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;client&lt;/code&gt; &amp;gt; &lt;a href=&#34;#compression_params&#34;&gt;&lt;code&gt;compression_params&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configure advanced compression options.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;client&lt;/code&gt; &amp;gt; &lt;a href=&#34;#cookies&#34;&gt;&lt;code&gt;cookies&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Store cookies from server responses and reuse them in subsequent requests.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;client&lt;/code&gt; &amp;gt; &lt;a href=&#34;#tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TLS for the HTTP client.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;client&lt;/code&gt; &amp;gt; &lt;code&gt;tls&lt;/code&gt; &amp;gt; &lt;a href=&#34;#tpm&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TPM settings for the TLS &lt;code&gt;key_file&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#retry_on_failure&#34;&gt;&lt;code&gt;retry_on_failure&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures retry mechanism for failed requests.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#sending_queue&#34;&gt;&lt;code&gt;sending_queue&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures queueing and batching for the exporter.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sending_queue&lt;/code&gt; &amp;gt; &lt;a href=&#34;#batch&#34;&gt;&lt;code&gt;batch&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures batching requests based on a timeout and a minimum number of items.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;client&#34;&gt;&lt;code&gt;client&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;

&lt;p&gt;The &lt;code&gt;client&lt;/code&gt; block configures the HTTP client used by the component.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-http-client-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The target URL to send telemetry data to.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;capsule(otelcol.Handler)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Handler from an &lt;code&gt;otelcol.auth&lt;/code&gt; component to use for authenticating requests.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;compression&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Compression mechanism to use for requests.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;gzip&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_keep_alives&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Disable HTTP keep-alive.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;force_attempt_http2&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Force the HTTP client to try to use the HTTP/2 protocol.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;headers&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;map(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Additional headers to send with the request.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;{}&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;http2_ping_timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Timeout after which the connection will be closed if a response to Ping isn&amp;rsquo;t received.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;15s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;http2_read_idle_timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Timeout after which a health check using ping frame will be carried out if no frame is received on the connection.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;idle_conn_timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Time to wait before an idle connection closes itself.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;90s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_conns_per_host&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Limits the total (dialing,active, and idle) number of connections per host.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_idle_conns_per_host&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Limits the number of idle HTTP connections the host can keep open.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_idle_conns&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Limits the number of idle HTTP connections the client can keep open.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;100&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;proxy_url&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;HTTP proxy to send requests through.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;read_buffer_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Size of the read buffer the HTTP client uses for reading server responses.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Time to wait before marking a request as failed.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;30s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;write_buffer_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Size of the write buffer the HTTP client uses for writing requests.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;512KiB&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;When setting &lt;code&gt;headers&lt;/code&gt;, note that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Certain headers such as &lt;code&gt;Content-Length&lt;/code&gt; and &lt;code&gt;Connection&lt;/code&gt; are automatically written when needed and values in &lt;code&gt;headers&lt;/code&gt; may be ignored.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;Host&lt;/code&gt; header is automatically derived from the &lt;code&gt;endpoint&lt;/code&gt; value. However, this automatic assignment can be overridden by explicitly setting a &lt;code&gt;Host&lt;/code&gt; header in &lt;code&gt;headers&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Setting &lt;code&gt;disable_keep_alives&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; will result in significant overhead establishing a new HTTP or HTTPS connection for every request.
Before enabling this option, consider whether changes to idle connection settings can achieve your goal.&lt;/p&gt;
&lt;p&gt;If &lt;code&gt;http2_ping_timeout&lt;/code&gt; is unset or set to &lt;code&gt;0s&lt;/code&gt;, it will default to &lt;code&gt;15s&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;If &lt;code&gt;http2_read_idle_timeout&lt;/code&gt; is unset or set to &lt;code&gt;0s&lt;/code&gt;, then no health check will be performed.&lt;/p&gt;
&lt;p&gt;Golang&amp;rsquo;s default HTTP transport attempts HTTP/2 by default, however some settings (&lt;code&gt;max_conns_per_host&lt;/code&gt;, &lt;code&gt;max_idle_conns_per_host&lt;/code&gt;, &lt;code&gt;max_idle_conns&lt;/code&gt;) are only relevant for HTTP/1.
The &lt;code&gt;force_attempt_http2&lt;/code&gt; attribute allows a user to only attempt HTTP/1.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-compression-field.md&#34;&gt;
            &lt;p&gt;By default, requests are compressed with Gzip.
The &lt;code&gt;compression&lt;/code&gt; argument controls which compression mechanism to use. Supported strings are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;gzip&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;zlib&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;deflate&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;snappy&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;zstd&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you set &lt;code&gt;compression&lt;/code&gt; to &lt;code&gt;&amp;quot;none&amp;quot;&lt;/code&gt; or an empty string &lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;, the requests aren&amp;rsquo;t compressed.&lt;/p&gt;
&lt;/div&gt;

        
&lt;/div&gt;

        
&lt;h3 id=&#34;compression_params&#34;&gt;&lt;code&gt;compression_params&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;compression_params&lt;/code&gt; block allows for configuration of advanced compression options.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-compression-params-client-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;level&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Configure compression level.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;For valid combinations of &lt;code&gt;client.compression&lt;/code&gt; and &lt;code&gt;client.compression_params.level&lt;/code&gt;, refer to the 
    &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector/blob/v0.147.0/config/confighttp/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;upstream documentation&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;cookies&#34;&gt;&lt;code&gt;cookies&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;cookies&lt;/code&gt; block allows the HTTP client to store cookies from server responses and reuse them in subsequent requests.&lt;/p&gt;
&lt;p&gt;This could be useful in situations such as load balancers relying on cookies for sticky sessions and enforcing a maximum session age.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-cookies-client-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The target URL to send telemetry data to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;

        
&lt;h3 id=&#34;tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;tls&lt;/code&gt; block configures TLS settings used for the connection to the HTTP server.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-tls-client-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ca_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the CA file.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ca_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;CA PEM-encoded text to validate the server with.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cert_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS certificate.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cert_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Certificate PEM-encoded text for client authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cipher_suites&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of TLS cipher suites that the TLS transport can use.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;curve_preferences&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Set of elliptic curves to use in a handshake.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_system_ca_certs_pool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to load the system certificate authorities pool alongside the certificate authority.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;insecure_skip_verify&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Ignores insecure server TLS certificates.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;insecure&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Disables TLS when connecting to the configured server.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS certificate key.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;secret&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Key PEM-encoded text for client authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum acceptable TLS version for connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;TLS 1.3&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;min_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Minimum acceptable TLS version for connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;TLS 1.2&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;reload_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The duration after which the certificate is reloaded.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;server_name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Verifies the hostname of server certificates when set.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If the server doesn&amp;rsquo;t support TLS, you must set the &lt;code&gt;insecure&lt;/code&gt; argument to &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;To disable &lt;code&gt;tls&lt;/code&gt; for connections to the server, set the &lt;code&gt;insecure&lt;/code&gt; argument to &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;If you set &lt;code&gt;reload_interval&lt;/code&gt; to &lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;, the certificate never reloaded.&lt;/p&gt;
&lt;p&gt;The following pairs of arguments are mutually exclusive and can&amp;rsquo;t both be set simultaneously:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ca_pem&lt;/code&gt; and &lt;code&gt;ca_file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cert_pem&lt;/code&gt; and &lt;code&gt;cert_file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;key_pem&lt;/code&gt; and &lt;code&gt;key_file&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If &lt;code&gt;cipher_suites&lt;/code&gt; is left blank, a safe default list is used.
Refer to the &lt;a href=&#34;https://go.dev/src/crypto/tls/cipher_suites.go&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Go TLS documentation&lt;/a&gt; for a list of supported cipher suites.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;curve_preferences&lt;/code&gt; argument determines the set of &lt;a href=&#34;https://go.dev/src/crypto/tls/common.go#L138&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;elliptic curves&lt;/a&gt; to prefer during a handshake in preference order.
If not provided, a default list is used.
The set of elliptic curves available are &lt;code&gt;X25519&lt;/code&gt;, &lt;code&gt;P521&lt;/code&gt;, &lt;code&gt;P256&lt;/code&gt;, and &lt;code&gt;P384&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;tpm&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;tpm&lt;/code&gt; block configures retrieving the TLS &lt;code&gt;key_file&lt;/code&gt; from a trusted device.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-tls-tpm-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The authorization value used to authenticate the TPM device.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Load the &lt;code&gt;tls.key_file&lt;/code&gt; from TPM.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;owner_auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The owner authorization value used to authenticate the TPM device.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;path&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TPM device or Unix domain socket.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;a href=&#34;https://trustedcomputinggroup.org/resource/trusted-platform-module-tpm-summary/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;trusted platform module&lt;/a&gt; (TPM) configuration can be used for loading TLS key from TPM. Currently only TSS2 format is supported.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;path&lt;/code&gt; attribute is not supported on Windows.&lt;/p&gt;
&lt;p&gt;In the following example, the private key &lt;code&gt;my-tss2-key.key&lt;/code&gt; in TSS2 format is loaded from the TPM device &lt;code&gt;/dev/tmprm0&lt;/code&gt;:&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;otelcol.example.component &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
    ...
    tls {
        ...
        key_file = &amp;#34;my-tss2-key.key&amp;#34;
        tpm {
            enabled = true
            path = &amp;#34;/dev/tpmrm0&amp;#34;
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h3 id=&#34;retry_on_failure&#34;&gt;&lt;code&gt;retry_on_failure&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;retry_on_failure&lt;/code&gt; block configures how failed requests to the HTTP server are retried.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-retry-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables retrying failed requests.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;initial_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Initial time to wait before retrying a failed request.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;5s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_elapsed_time&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum time to wait before discarding a failed batch.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;5m&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum time to wait between retries.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;30s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;multiplier&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Factor to grow wait time before retrying.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1.5&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;randomization_factor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Factor to randomize wait time before retrying.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;0.5&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;When &lt;code&gt;enabled&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;, failed batches are retried after a given interval.
The &lt;code&gt;initial_interval&lt;/code&gt; argument specifies how long to wait before the first retry attempt.
If requests continue to fail, the time to wait before retrying increases by the factor specified by the &lt;code&gt;multiplier&lt;/code&gt; argument, which must be greater than &lt;code&gt;1.0&lt;/code&gt;.
The &lt;code&gt;max_interval&lt;/code&gt; argument specifies the upper bound of how long to wait between retries.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;randomization_factor&lt;/code&gt; argument is useful for adding jitter between retrying Alloy instances.
If &lt;code&gt;randomization_factor&lt;/code&gt; is greater than &lt;code&gt;0&lt;/code&gt;, the wait time before retries is multiplied by a random factor in the range &lt;code&gt;[ I - randomization_factor * I, I &#43; randomization_factor * I]&lt;/code&gt;, where &lt;code&gt;I&lt;/code&gt; is the current interval.&lt;/p&gt;
&lt;p&gt;If a batch hasn&amp;rsquo;t been sent successfully, it&amp;rsquo;s discarded after the time specified by &lt;code&gt;max_elapsed_time&lt;/code&gt; elapses.
If &lt;code&gt;max_elapsed_time&lt;/code&gt; is set to &lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;, failed requests are retried forever until they succeed.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;sending_queue&#34;&gt;&lt;code&gt;sending_queue&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;sending_queue&lt;/code&gt; block configures queueing and batching for the exporter.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-queue-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;block_on_overflow&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The behavior when the component&amp;rsquo;s &lt;code&gt;TotalSize&lt;/code&gt; limit is reached.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables a buffer before sending data to the client.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;num_consumers&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Number of readers to send batches written to the queue in parallel.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;queue_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum number of unwritten batches allowed in the queue at the same time.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1000&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sizer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How the queue and batching is measured.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;requests&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;wait_for_result&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Determines if incoming requests are blocked until the request is processed or not.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;storage&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;capsule(otelcol.Handler)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Handler from an &lt;code&gt;otelcol.storage&lt;/code&gt; component to use to enable a persistent queue mechanism.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;code&gt;blocking&lt;/code&gt; argument is deprecated in favor of the &lt;code&gt;block_on_overflow&lt;/code&gt; argument.&lt;/p&gt;
&lt;p&gt;When &lt;code&gt;block_on_overflow&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;, the component will wait for space. Otherwise, operations will immediately return a retryable error.&lt;/p&gt;
&lt;p&gt;When &lt;code&gt;enabled&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;, data is first written to an in-memory buffer before sending it to the configured server.
Batches sent to the component&amp;rsquo;s &lt;code&gt;input&lt;/code&gt; exported field are added to the buffer as long as the number of unsent batches doesn&amp;rsquo;t exceed the configured &lt;code&gt;queue_size&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;queue_size&lt;/code&gt; determines how long an endpoint outage is tolerated.
Assuming 100 requests/second, the default queue size &lt;code&gt;1000&lt;/code&gt; provides about 10 seconds of outage tolerance.
To calculate the correct value for &lt;code&gt;queue_size&lt;/code&gt;, multiply the average number of outgoing requests per second by the time in seconds that outages are tolerated. A very high value can cause Out Of Memory (OOM) kills.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;sizer&lt;/code&gt; argument could be set to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;requests&lt;/code&gt;: number of incoming batches of metrics, logs, traces (the most performant option).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;items&lt;/code&gt;: number of the smallest parts of each signal (spans, metric data points, log records).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bytes&lt;/code&gt;: the size of serialized data in bytes (the least performant option).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The &lt;code&gt;num_consumers&lt;/code&gt; argument controls how many readers read from the buffer and send data in parallel.
Larger values of &lt;code&gt;num_consumers&lt;/code&gt; allow data to be sent more quickly at the expense of increased network traffic.&lt;/p&gt;
&lt;p&gt;If an &lt;code&gt;otelcol.storage.*&lt;/code&gt; component is configured and provided in the queue&amp;rsquo;s &lt;code&gt;storage&lt;/code&gt; argument, the queue uses the
provided storage extension to provide a persistent queue and the queue is no longer stored in memory.
Any data persisted will be processed on startup if Alloy is killed or restarted.
Refer to the 
    &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector/blob/v0.147.0/exporter/exporterhelper/README.md#persistent-queue&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;exporterhelper documentation&lt;/a&gt; in the OpenTelemetry Collector repository for more details.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;batch&#34;&gt;&lt;code&gt;batch&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;batch&lt;/code&gt; block configures batching requests based on a timeout and a minimum number of items.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-queue-batch-block.md&#34;&gt;
            &lt;p&gt;Batching is disabled by default.
To enable it, explicitly include &lt;code&gt;batch {}&lt;/code&gt; in your Alloy configuration.
You do not need to include a &lt;code&gt;batch {}&lt;/code&gt; block in your &lt;code&gt;otelcol.exporter&lt;/code&gt; if you already use a &lt;code&gt;otelcol.processor.batch&lt;/code&gt; component,
although batching in the exporter is the preferred method because it is more flexible.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;flush_timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Time after which a batch will be sent regardless of its size. Must be a non-zero value.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;200ms&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;min_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The minimum size of a batch.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;2000&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The maximum size of a batch, enables batch splitting.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;3000&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sizer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How the queue and batching is measured. Overrides the sizer set at the &lt;code&gt;sending_queue&lt;/code&gt; level for batching.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;items&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If configured, &lt;code&gt;max_size&lt;/code&gt; must be greater than or equal to &lt;code&gt;min_size&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;sizer&lt;/code&gt; argument can be set to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;items&lt;/code&gt;: The number of the smallest parts of each span, metric data point, or log record.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bytes&lt;/code&gt;: the size of serialized data in bytes (the least performant option).&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

        
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;The following fields are exported and can be referenced by other components:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&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;code&gt;input&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A value that other components can use to send telemetry data to.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;input&lt;/code&gt; accepts &lt;code&gt;otelcol.Consumer&lt;/code&gt; data for any telemetry signal (metrics, logs, or traces).&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.otlphttp&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.otlphttp&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;examples&#34;&gt;Examples&lt;/h2&gt;
&lt;h3 id=&#34;grafana-cloud&#34;&gt;Grafana Cloud&lt;/h3&gt;
&lt;p&gt;This example creates an exporter which can send OTLP logs, metrics, and traces to Grafana Cloud using basic authentication:&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;otelcol.exporter.otlphttp &amp;#34;default&amp;#34; {
  client {
    endpoint = `https://otlp-gateway-prod-gb-south-0.grafana.net/otlp`
    auth     = otelcol.auth.basic.creds.handler
  }
}

otelcol.auth.basic &amp;#34;creds&amp;#34; {
  client_auth {
    username = sys.env(&amp;#34;OTLP_USERNAME&amp;#34;)
    password = sys.env(&amp;#34;OTLP_API_KEY&amp;#34;)
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;local-tempo-database&#34;&gt;Local Tempo database&lt;/h3&gt;
&lt;p&gt;This example creates an exporter to send data to a locally running Grafana Tempo without TLS:&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;otelcol.exporter.otlphttp &amp;#34;tempo&amp;#34; {
    client {
        endpoint = &amp;#34;http://tempo:4318&amp;#34;
        tls {
            insecure             = true
            insecure_skip_verify = true
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.otlphttp&lt;/code&gt; has exports that can be consumed by the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that consume &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-consumers&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolexporterotlphttp">&lt;code>otelcol.exporter.otlphttp&lt;/code>&lt;/h1>
&lt;p>&lt;code>otelcol.exporter.otlphttp&lt;/code> accepts telemetry data from other &lt;code>otelcol&lt;/code> components and writes them over the network using the OTLP HTTP protocol.&lt;/p>
&lt;div class="admonition admonition-note">&lt;blockquote>&lt;p class="title text-uppercase">Note&lt;/p>&lt;p>&lt;code>otelcol.exporter.otlphttp&lt;/code> is a wrapper over the upstream OpenTelemetry Collector &lt;a href="https://github.com/open-telemetry/opentelemetry-collector/tree/v0.147.0/exporter/otlphttpexporter" target="_blank" rel="noopener noreferrer">&lt;code>otlphttp&lt;/code>&lt;/a> exporter.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p></description></item><item><title>otelcol.exporter.prometheus</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.exporter.prometheus/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.exporter.prometheus/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolexporterprometheus&#34;&gt;&lt;code&gt;otelcol.exporter.prometheus&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.prometheus&lt;/code&gt; accepts OTLP-formatted metrics from other &lt;code&gt;otelcol&lt;/code&gt; components, converts metrics to Prometheus-formatted metrics, and forwards the resulting metrics to &lt;code&gt;prometheus&lt;/code&gt; components.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.exporter.prometheus&lt;/code&gt; is a custom component unrelated to the &lt;code&gt;prometheus&lt;/code&gt; exporter from OpenTelemetry Collector.&lt;/p&gt;
&lt;p&gt;Conversion of metrics are done according to the OpenTelemetry &lt;a href=&#34;https://opentelemetry.io/docs/reference/specification/metrics/data-model/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Metrics Data Model&lt;/a&gt; specification.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.exporter.prometheus&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.exporter.prometheus &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  forward_to = [...]
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.exporter.prometheus&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;forward_to&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(MetricsReceiver)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Where to forward converted Prometheus metrics.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;add_metric_suffixes&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to add type and unit suffixes to metric names.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;gc_frequency&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How often to clean up stale metrics from memory.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;5m&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;honor_metadata&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;(Experimental) Whether to send metric metadata to downstream components.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_scope_info&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to include &lt;code&gt;otel_scope_info&lt;/code&gt; metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_scope_labels&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to include additional OTLP labels in all metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_target_info&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to include &lt;code&gt;target_info&lt;/code&gt; metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;resource_to_telemetry_conversion&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to convert OTel resource attributes to Prometheus labels.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;By default, OpenTelemetry resources are converted into &lt;code&gt;target_info&lt;/code&gt; metrics.
OpenTelemetry instrumentation scopes are converted into &lt;code&gt;otel_scope_info&lt;/code&gt; metrics.
Set the &lt;code&gt;include_scope_info&lt;/code&gt; and &lt;code&gt;include_target_info&lt;/code&gt; arguments to &lt;code&gt;false&lt;/code&gt;, respectively, to disable the custom metrics.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-warning&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Warning&lt;/p&gt;&lt;p&gt;&lt;strong&gt;EXPERIMENTAL&lt;/strong&gt;: The &lt;code&gt;honor_metadata&lt;/code&gt; argument is an &lt;a href=&#34;../../../get-started/configuration-syntax/expressions/function_calls/#experimental-functions&#34;&gt;experimental&lt;/a&gt; feature.
If you enable this argument, resource consumption may increase, particularly if you ingest many metrics with different names.
Some downstream components aren&amp;rsquo;t compatible with Prometheus metadata.
The following components are compatible:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;otelcol.receiver.prometheus&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;prometheus.remote_write&lt;/code&gt; only when configured for Remote Write v2.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;prometheus.write_queue&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;When &lt;code&gt;include_scope_labels&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;  the &lt;code&gt;otel_scope_name&lt;/code&gt; and &lt;code&gt;otel_scope_version&lt;/code&gt; labels are added to every converted metric sample.&lt;/p&gt;
&lt;p&gt;When &lt;code&gt;include_target_info&lt;/code&gt; is true, OpenTelemetry Collector resources are converted into &lt;code&gt;target_info&lt;/code&gt; metrics.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;OTLP metrics can have a lot of resource attributes.
Setting &lt;code&gt;resource_to_telemetry_conversion&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; would convert all of them to Prometheus labels, which may not be what you want.
Instead of using &lt;code&gt;resource_to_telemetry_conversion&lt;/code&gt;, most users need to use &lt;code&gt;otelcol.processor.transform&lt;/code&gt;
to convert OTLP resource attributes to OTLP metric datapoint attributes before using &lt;code&gt;otelcol.exporter.prometheus&lt;/code&gt;.
Refer to &lt;a href=&#34;#create-prometheus-labels-from-otlp-resource-attributes&#34;&gt;Create Prometheus labels from OTLP resource attributes&lt;/a&gt; for an example.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.exporter.prometheus&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 1;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;The following fields are exported and can be referenced by other components:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&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;code&gt;input&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A value that other components can use to send telemetry data to.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;input&lt;/code&gt; accepts &lt;code&gt;otelcol.Consumer&lt;/code&gt; data for metrics. Other telemetry signals are ignored.&lt;/p&gt;
&lt;p&gt;Metrics sent to the &lt;code&gt;input&lt;/code&gt; are converted to Prometheus-compatible metrics and are forwarded to the &lt;code&gt;forward_to&lt;/code&gt; argument.&lt;/p&gt;
&lt;p&gt;The following are dropped during the conversion process:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Metrics that use the delta aggregation temporality.


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Prometheus doesn&amp;rsquo;t natively support delta metrics.
If your Alloy instance ingests delta OTLP metrics, you can convert them to cumulative OTLP metrics with &lt;a href=&#34;../otelcol.processor.deltatocumulative/&#34;&gt;&lt;code&gt;otelcol.processor.deltatocumulative&lt;/code&gt;&lt;/a&gt; before you use &lt;code&gt;otelcol.exporter.prometheus&lt;/code&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.prometheus&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.prometheus&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;h2 id=&#34;basic-usage&#34;&gt;Basic usage&lt;/h2&gt;
&lt;p&gt;This example accepts metrics over OTLP and forwards it using &lt;code&gt;prometheus.remote_write&lt;/code&gt;:&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;otelcol.receiver.otlp &amp;#34;default&amp;#34; {
  grpc {}

  output {
    metrics = [otelcol.exporter.prometheus.default.input]
  }
}

otelcol.exporter.prometheus &amp;#34;default&amp;#34; {
  forward_to = [prometheus.remote_write.mimir.receiver]
}

prometheus.remote_write &amp;#34;mimir&amp;#34; {
  endpoint {
    url = &amp;#34;http://mimir:9009/api/v1/push&amp;#34;
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;create-prometheus-labels-from-otlp-resource-attributes&#34;&gt;Create Prometheus labels from OTLP resource attributes&lt;/h2&gt;
&lt;p&gt;This example uses &lt;code&gt;otelcol.processor.transform&lt;/code&gt; to add extra &lt;code&gt;key1&lt;/code&gt; and &lt;code&gt;key2&lt;/code&gt; OTLP metric datapoint attributes from the &lt;code&gt;key1&lt;/code&gt; and &lt;code&gt;key2&lt;/code&gt; OTLP resource attributes.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.prometheus&lt;/code&gt; then converts &lt;code&gt;key1&lt;/code&gt; and &lt;code&gt;key2&lt;/code&gt; to Prometheus labels along with any other OTLP metric datapoint attributes.&lt;/p&gt;
&lt;p&gt;This avoids the need to set &lt;code&gt;resource_to_telemetry_conversion&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt;, which could have created too many unnecessary metric labels.&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;otelcol.receiver.otlp &amp;#34;default&amp;#34; {
  grpc {}

  output {
    metrics = [otelcol.processor.transform.default.input]
  }
}

otelcol.processor.transform &amp;#34;default&amp;#34; {
  error_mode = &amp;#34;ignore&amp;#34;

  metric_statements {
    context = &amp;#34;datapoint&amp;#34;

    statements = [
      `set(attributes[&amp;#34;key1&amp;#34;], resource.attributes[&amp;#34;key1&amp;#34;])`,
      `set(attributes[&amp;#34;key2&amp;#34;], resource.attributes[&amp;#34;key2&amp;#34;])`,
    ]
  }

  output {
    metrics = [otelcol.exporter.prometheus.default.input]
  }
}

otelcol.exporter.prometheus &amp;#34;default&amp;#34; {
  forward_to = [prometheus.remote_write.mimir.receiver]
}

prometheus.remote_write &amp;#34;mimir&amp;#34; {
  endpoint {
    url = &amp;#34;http://mimir:9009/api/v1/push&amp;#34;
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.prometheus&lt;/code&gt; can accept arguments from the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that export &lt;a href=&#34;../../../compatibility/#prometheus-metricsreceiver-exporters&#34;&gt;Prometheus &lt;code&gt;MetricsReceiver&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.prometheus&lt;/code&gt; has exports that can be consumed by the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that consume &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-consumers&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolexporterprometheus">&lt;code>otelcol.exporter.prometheus&lt;/code>&lt;/h1>
&lt;p>&lt;code>otelcol.exporter.prometheus&lt;/code> accepts OTLP-formatted metrics from other &lt;code>otelcol&lt;/code> components, converts metrics to Prometheus-formatted metrics, and forwards the resulting metrics to &lt;code>prometheus&lt;/code> components.&lt;/p>
&lt;div class="admonition admonition-note">&lt;blockquote>&lt;p class="title text-uppercase">Note&lt;/p>&lt;p>&lt;code>otelcol.exporter.prometheus&lt;/code> is a custom component unrelated to the &lt;code>prometheus&lt;/code> exporter from OpenTelemetry Collector.&lt;/p></description></item><item><title>otelcol.exporter.splunkhec</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.exporter.splunkhec/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.exporter.splunkhec/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolexportersplunkhec&#34;&gt;&lt;code&gt;otelcol.exporter.splunkhec&lt;/code&gt;&lt;/h1&gt;


&lt;div data-shared=&#34;stability/community.md&#34;&gt;
            &lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Community&lt;/strong&gt;: This component is developed, maintained, and supported by the Alloy user community.
Grafana doesn&amp;rsquo;t offer commercial support for this component.
To enable and use community components, you must set the &lt;code&gt;--feature.community-components.enabled&lt;/code&gt; 
    &lt;a href=&#34;/docs/alloy/v1.15/reference/cli/run/&#34;&gt;flag&lt;/a&gt; to &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Refer to &lt;a href=&#34;../../../../get-started/components/community-components/&#34;&gt;Community components&lt;/a&gt; for more information.&lt;/p&gt;&lt;/blockquote&gt;
&lt;/div&gt;

        
&lt;p&gt;&lt;code&gt;otelcol.exporter.splunkhec&lt;/code&gt; accepts metrics and traces telemetry data from other &lt;code&gt;otelcol&lt;/code&gt; components and sends it to Splunk HEC.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.exporter.splunkhec&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/exporter/splunkhecexporter&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;splunkhec&lt;/code&gt;&lt;/a&gt; exporter.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.exporter.splunkhec&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.exporter.splunkhec &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
    splunk {
        token = &amp;#34;&amp;lt;YOUR_SPLUNK_TOKEN&amp;gt;&amp;#34;
    }
    client {
        endpoint = &amp;#34;http://splunk.yourdomain.com:8088&amp;#34;
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;otelcol.exporter.splunkhec&lt;/code&gt; component doesn&amp;rsquo;t support any arguments. You can configure this component with blocks.&lt;/p&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.exporter.splunkhec&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 11;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#splunk\&amp;#34;\u003e\u003ccode\u003esplunk\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the Splunk HEC exporter.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003esplunk\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#batcher\&amp;#34;\u003e\u003ccode\u003ebatcher\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003e(Deprecated) Configures batching requests based on a timeout and a minimum number of items.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003esplunk\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#heartbeat\&amp;#34;\u003e\u003ccode\u003eheartbeat\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the exporters heartbeat settings.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003esplunk\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#otel_to_hec_fields\&amp;#34;\u003e\u003ccode\u003eotel_to_hec_fields\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures mapping of OpenTelemetry to HEC Fields.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003esplunk\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#telemetry\&amp;#34;\u003e\u003ccode\u003etelemetry\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the exporters telemetry.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#client\&amp;#34;\u003e\u003ccode\u003eclient\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the HTTP client used to send data to Splunk HEC.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#otel_attrs_to_hec_metadata\&amp;#34;\u003e\u003ccode\u003eotel_attrs_to_hec_metadata\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures mapping of resource attributes to HEC metadata fields.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#sending_queue\&amp;#34;\u003e\u003ccode\u003esending_queue\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures batching of data before sending.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003esending_queue\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#batch\&amp;#34;\u003e\u003ccode\u003ebatch\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures batching requests based on a timeout and a minimum number of items.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#retry_on_failure\&amp;#34;\u003e\u003ccode\u003eretry_on_failure\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures retry mechanism for failed requests.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#splunk&#34;&gt;&lt;code&gt;splunk&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the Splunk HEC exporter.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;splunk&lt;/code&gt; &amp;gt; &lt;a href=&#34;#batcher&#34;&gt;&lt;code&gt;batcher&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;(Deprecated) Configures batching requests based on a timeout and a minimum number of items.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;splunk&lt;/code&gt; &amp;gt; &lt;a href=&#34;#heartbeat&#34;&gt;&lt;code&gt;heartbeat&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the exporters heartbeat settings.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;splunk&lt;/code&gt; &amp;gt; &lt;a href=&#34;#otel_to_hec_fields&#34;&gt;&lt;code&gt;otel_to_hec_fields&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures mapping of OpenTelemetry to HEC Fields.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;splunk&lt;/code&gt; &amp;gt; &lt;a href=&#34;#telemetry&#34;&gt;&lt;code&gt;telemetry&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the exporters telemetry.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#client&#34;&gt;&lt;code&gt;client&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the HTTP client used to send data to Splunk HEC.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#otel_attrs_to_hec_metadata&#34;&gt;&lt;code&gt;otel_attrs_to_hec_metadata&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures mapping of resource attributes to HEC metadata fields.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#sending_queue&#34;&gt;&lt;code&gt;sending_queue&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures batching of data before sending.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sending_queue&lt;/code&gt; &amp;gt; &lt;a href=&#34;#batch&#34;&gt;&lt;code&gt;batch&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures batching requests based on a timeout and a minimum number of items.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#retry_on_failure&#34;&gt;&lt;code&gt;retry_on_failure&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures retry mechanism for failed requests.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;splunk&#34;&gt;&lt;code&gt;splunk&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;

&lt;p&gt;The &lt;code&gt;splunk&lt;/code&gt; block configures Splunk HEC specific settings.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;token&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;secret&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Splunk HEC Token.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_compression&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Disable Gzip compression.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;export_raw&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Send only the logs body when targeting HEC raw endpoint.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;health_check_enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Used to verify Splunk HEC health on exporter startup.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;health_path&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path for the health API.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;/services/collector/health&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;index&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Splunk index name.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;log_data_enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enable sending logs from the exporter. One of &lt;code&gt;log_data_enabled&lt;/code&gt; or &lt;code&gt;profiling_data_enabled&lt;/code&gt; must be &lt;code&gt;true&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_content_length_logs&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;uint&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum log payload size in bytes. Must be less than 838860800 (~800MB).&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;2097152&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_content_length_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;uint&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum metric payload size in bytes. Must be less than 838860800 (~800MB).&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;2097152&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_content_length_traces&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;uint&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum trace payload size in bytes. Must be less than 838860800 (~800MB).&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;2097152&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_event_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;uint&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum event payload size in bytes. Must be less than 838860800 (~800MB).&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;5242880&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;profiling_data_enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enable sending profiling data from the exporter. One of &lt;code&gt;log_data_enabled&lt;/code&gt; or &lt;code&gt;profiling_data_enabled&lt;/code&gt; must be &lt;code&gt;true&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sourcetype&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;https://docs.splunk.com/Splexicon:Sourcetype&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Splunk source type&lt;/a&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;source&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;https://docs.splunk.com/Splexicon:Source&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Splunk source&lt;/a&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;splunk_app_name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Used to track telemetry for Splunk Apps by name.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;Alloy&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;splunk_app_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Used to track telemetry by App version.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;use_multi_metrics_format&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Use multi-metrics format to save space during ingestion.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;batcher&#34;&gt;&lt;code&gt;batcher&lt;/code&gt;&lt;/h4&gt;


&lt;div class=&#34;admonition admonition-warning&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Warning&lt;/p&gt;&lt;p&gt;The &lt;code&gt;batcher&lt;/code&gt; block is deprecated and will be removed in a future release. Use the &lt;code&gt;sending_queue&lt;/code&gt; &amp;gt; &lt;code&gt;batch&lt;/code&gt; block instead.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to not enqueue batches before sending to the consumerSender.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;flush_timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The time after which a batch will be sent regardless of its size.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;200ms&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;uint&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The maximum size of a batch. If the batch exceeds this value, it&amp;rsquo;s broken up into smaller batches. Must be greater than or equal to &lt;code&gt;min_size&lt;/code&gt;. Set this value to zero to disable the maximum size limit.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;min_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;uint&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The minimum size of a batch.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;8192&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sizer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The unit of measure for the batch size. Must be one of &lt;code&gt;items&lt;/code&gt;, &lt;code&gt;bytes&lt;/code&gt;, or &lt;code&gt;requests&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;items&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;heartbeat&#34;&gt;&lt;code&gt;heartbeat&lt;/code&gt;&lt;/h4&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Time interval for the heartbeat interval, in seconds.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;startup&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Send heartbeat events on exporter startup.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;otel_to_hec_fields&#34;&gt;&lt;code&gt;otel_to_hec_fields&lt;/code&gt;&lt;/h4&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;severity_number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maps severity number field to a specific HEC field.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;severity_text&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maps severity text field to a specific HEC field.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;telemetry&#34;&gt;&lt;code&gt;telemetry&lt;/code&gt;&lt;/h4&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enable telemetry inside the exporter.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;override_metrics_names&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;map(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Override metrics for internal metrics in the exporter.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;client&#34;&gt;&lt;code&gt;client&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;

&lt;p&gt;The &lt;code&gt;client&lt;/code&gt; block configures the HTTP client used by the component.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The Splunk HEC endpoint to use.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;force_attempt_http2&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Force the HTTP client to try to use the HTTP/2 protocol.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_keep_alives&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Disable HTTP keep-alive.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;idle_conn_timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Time to wait before an idle connection closes itself.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;45s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;insecure_skip_verify&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Ignores insecure server TLS certificates.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_conns_per_host&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Limits the total (dialing,active, and idle) number of connections per host. Zero means no limit&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_idle_conns_per_host&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Limits the number of idle HTTP connections the host can keep open.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_idle_conns&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Limits the number of idle HTTP connections the client can keep open.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;100&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;read_buffer_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Size of the read buffer the HTTP client uses for reading server responses.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Time to wait before marking a request as failed.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;15s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;write_buffer_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Size of the write buffer the HTTP client uses for writing requests.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;otel_attrs_to_hec_metadata&#34;&gt;&lt;code&gt;otel_attrs_to_hec_metadata&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;otel_attrs_to_hec_metadata&lt;/code&gt; block configures the mapping of resource attributes to HEC metadata fields.
This allows resource attributes like &lt;code&gt;host.name&lt;/code&gt; to be mapped to the top-level &lt;code&gt;host&lt;/code&gt; field in the HEC JSON payload.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;host&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Specifies the mapping of a specific unified model attribute value to the standard host field of a HEC event.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;host.name&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;index&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Specifies the mapping of a specific unified model attribute value to the standard index field of a HEC event.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;com.splunk.index&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;source&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Specifies the mapping of a specific unified model attribute value to the standard source field of a HEC event.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;com.splunk.source&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sourcetype&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Specifies the mapping of a specific unified model attribute value to the standard sourcetype field of a HEC event.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;com.splunk.sourcetype&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h3 id=&#34;sending_queue&#34;&gt;&lt;code&gt;sending_queue&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;sending_queue&lt;/code&gt; block configures an in-memory buffer of batches before data is sent to the HTTP server.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-queue-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;block_on_overflow&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The behavior when the component&amp;rsquo;s &lt;code&gt;TotalSize&lt;/code&gt; limit is reached.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables a buffer before sending data to the client.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;num_consumers&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Number of readers to send batches written to the queue in parallel.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;queue_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum number of unwritten batches allowed in the queue at the same time.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1000&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sizer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How the queue and batching is measured.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;requests&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;wait_for_result&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Determines if incoming requests are blocked until the request is processed or not.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;storage&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;capsule(otelcol.Handler)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Handler from an &lt;code&gt;otelcol.storage&lt;/code&gt; component to use to enable a persistent queue mechanism.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;code&gt;blocking&lt;/code&gt; argument is deprecated in favor of the &lt;code&gt;block_on_overflow&lt;/code&gt; argument.&lt;/p&gt;
&lt;p&gt;When &lt;code&gt;block_on_overflow&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;, the component will wait for space. Otherwise, operations will immediately return a retryable error.&lt;/p&gt;
&lt;p&gt;When &lt;code&gt;enabled&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;, data is first written to an in-memory buffer before sending it to the configured server.
Batches sent to the component&amp;rsquo;s &lt;code&gt;input&lt;/code&gt; exported field are added to the buffer as long as the number of unsent batches doesn&amp;rsquo;t exceed the configured &lt;code&gt;queue_size&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;queue_size&lt;/code&gt; determines how long an endpoint outage is tolerated.
Assuming 100 requests/second, the default queue size &lt;code&gt;1000&lt;/code&gt; provides about 10 seconds of outage tolerance.
To calculate the correct value for &lt;code&gt;queue_size&lt;/code&gt;, multiply the average number of outgoing requests per second by the time in seconds that outages are tolerated. A very high value can cause Out Of Memory (OOM) kills.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;sizer&lt;/code&gt; argument could be set to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;requests&lt;/code&gt;: number of incoming batches of metrics, logs, traces (the most performant option).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;items&lt;/code&gt;: number of the smallest parts of each signal (spans, metric data points, log records).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bytes&lt;/code&gt;: the size of serialized data in bytes (the least performant option).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The &lt;code&gt;num_consumers&lt;/code&gt; argument controls how many readers read from the buffer and send data in parallel.
Larger values of &lt;code&gt;num_consumers&lt;/code&gt; allow data to be sent more quickly at the expense of increased network traffic.&lt;/p&gt;
&lt;p&gt;If an &lt;code&gt;otelcol.storage.*&lt;/code&gt; component is configured and provided in the queue&amp;rsquo;s &lt;code&gt;storage&lt;/code&gt; argument, the queue uses the
provided storage extension to provide a persistent queue and the queue is no longer stored in memory.
Any data persisted will be processed on startup if Alloy is killed or restarted.
Refer to the 
    &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector/blob/v0.147.0/exporter/exporterhelper/README.md#persistent-queue&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;exporterhelper documentation&lt;/a&gt; in the OpenTelemetry Collector repository for more details.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;batch&#34;&gt;&lt;code&gt;batch&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;batch&lt;/code&gt; block configures batching requests based on a timeout and a minimum number of items.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-queue-batch-block.md&#34;&gt;
            &lt;p&gt;Batching is disabled by default.
To enable it, explicitly include &lt;code&gt;batch {}&lt;/code&gt; in your Alloy configuration.
You do not need to include a &lt;code&gt;batch {}&lt;/code&gt; block in your &lt;code&gt;otelcol.exporter&lt;/code&gt; if you already use a &lt;code&gt;otelcol.processor.batch&lt;/code&gt; component,
although batching in the exporter is the preferred method because it is more flexible.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;flush_timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Time after which a batch will be sent regardless of its size. Must be a non-zero value.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;200ms&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;min_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The minimum size of a batch.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;2000&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The maximum size of a batch, enables batch splitting.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;3000&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sizer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How the queue and batching is measured. Overrides the sizer set at the &lt;code&gt;sending_queue&lt;/code&gt; level for batching.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;items&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If configured, &lt;code&gt;max_size&lt;/code&gt; must be greater than or equal to &lt;code&gt;min_size&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;sizer&lt;/code&gt; argument can be set to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;items&lt;/code&gt;: The number of the smallest parts of each span, metric data point, or log record.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bytes&lt;/code&gt;: the size of serialized data in bytes (the least performant option).&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;retry_on_failure&#34;&gt;&lt;code&gt;retry_on_failure&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;retry_on_failure&lt;/code&gt; block configures how failed requests to Splunk HEC are retried.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-retry-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables retrying failed requests.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;initial_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Initial time to wait before retrying a failed request.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;5s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_elapsed_time&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum time to wait before discarding a failed batch.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;5m&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum time to wait between retries.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;30s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;multiplier&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Factor to grow wait time before retrying.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1.5&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;randomization_factor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Factor to randomize wait time before retrying.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;0.5&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;When &lt;code&gt;enabled&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;, failed batches are retried after a given interval.
The &lt;code&gt;initial_interval&lt;/code&gt; argument specifies how long to wait before the first retry attempt.
If requests continue to fail, the time to wait before retrying increases by the factor specified by the &lt;code&gt;multiplier&lt;/code&gt; argument, which must be greater than &lt;code&gt;1.0&lt;/code&gt;.
The &lt;code&gt;max_interval&lt;/code&gt; argument specifies the upper bound of how long to wait between retries.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;randomization_factor&lt;/code&gt; argument is useful for adding jitter between retrying Alloy instances.
If &lt;code&gt;randomization_factor&lt;/code&gt; is greater than &lt;code&gt;0&lt;/code&gt;, the wait time before retries is multiplied by a random factor in the range &lt;code&gt;[ I - randomization_factor * I, I &#43; randomization_factor * I]&lt;/code&gt;, where &lt;code&gt;I&lt;/code&gt; is the current interval.&lt;/p&gt;
&lt;p&gt;If a batch hasn&amp;rsquo;t been sent successfully, it&amp;rsquo;s discarded after the time specified by &lt;code&gt;max_elapsed_time&lt;/code&gt; elapses.
If &lt;code&gt;max_elapsed_time&lt;/code&gt; is set to &lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;, failed requests are retried forever until they succeed.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;The following fields are exported and can be referenced by other components:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&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;code&gt;input&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A value other components can use to send telemetry data to.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;input&lt;/code&gt; accepts &lt;code&gt;otelcol.Consumer&lt;/code&gt; data for any telemetry signal (metrics, logs, or traces).&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.splunkhec&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.splunkhec&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;h3 id=&#34;opentelemetry-receiver&#34;&gt;OpenTelemetry Receiver&lt;/h3&gt;
&lt;p&gt;This example forwards metrics, logs, and traces send to the &lt;code&gt;otelcol.receiver.otlp.default&lt;/code&gt; receiver to the Splunk HEC exporter.&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;otelcol.receiver.otlp &amp;#34;default&amp;#34; {
    grpc {
        endpoint = &amp;#34;localhost:4317&amp;#34;
    }

    http {
        endpoint               = &amp;#34;localhost:4318&amp;#34;
        compression_algorithms = [&amp;#34;zlib&amp;#34;]
    }

    output {
        metrics = [otelcol.exporter.splunkhec.default.input]
        logs    = [otelcol.exporter.splunkhec.default.input]
        traces  = [otelcol.exporter.splunkhec.default.input]
    }
}

otelcol.exporter.splunkhec &amp;#34;default&amp;#34; {
    client {
        endpoint                = &amp;#34;https://splunkhec.domain.com:8088/services/collector&amp;#34;
        timeout                 = &amp;#34;10s&amp;#34;
        max_idle_conns          = 200
        max_idle_conns_per_host = 200
        idle_conn_timeout       = &amp;#34;10s&amp;#34;
    }

    splunk {
        token              = &amp;#34;SPLUNK_TOKEN&amp;#34;
        source             = &amp;#34;otel&amp;#34;
        sourcetype         = &amp;#34;otel&amp;#34;
        index              = &amp;#34;metrics&amp;#34;
        splunk_app_name    = &amp;#34;OpenTelemetry-Collector Splunk Exporter&amp;#34;
        splunk_app_version = &amp;#34;v0.0.1&amp;#34;

        otel_to_hec_fields {
            severity_text   = &amp;#34;otel.log.severity.text&amp;#34;
            severity_number = &amp;#34;otel.log.severity.number&amp;#34;
        }

        heartbeat {
            interval = &amp;#34;30s&amp;#34;
        }

        telemetry {
            enabled                = true
            override_metrics_names = {
                otelcol_exporter_splunkhec_heartbeats_failed = &amp;#34;app_heartbeats_failed_total&amp;#34;,
                otelcol_exporter_splunkhec_heartbeats_sent   = &amp;#34;app_heartbeats_success_total&amp;#34;,
            }
            extra_attributes = {
                custom_key   = &amp;#34;custom_value&amp;#34;,
                dataset_name = &amp;#34;SplunkCloudBeaverStack&amp;#34;,
            }
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;forward-prometheus-metrics&#34;&gt;Forward Prometheus Metrics&lt;/h3&gt;
&lt;p&gt;This example forwards Prometheus metrics from Alloy through a receiver for conversion to OpenTelemetry format before finally sending them to Splunk HEC.&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;prometheus.exporter.self &amp;#34;default&amp;#34; {
}

prometheus.scrape &amp;#34;metamonitoring&amp;#34; {
  targets    = prometheus.exporter.self.default.targets
  forward_to = [otelcol.receiver.prometheus.default.receiver]
}

otelcol.receiver.prometheus &amp;#34;default&amp;#34; {
  output {
    metrics = [otelcol.exporter.splunkhec.default.input]
  }
}


otelcol.exporter.splunkhec &amp;#34;default&amp;#34; {
    splunk {
        token = &amp;#34;SPLUNK_TOKEN&amp;#34;
    }
    client {
        endpoint = &amp;#34;http://splunkhec.domain.com:8088&amp;#34;
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;forward-loki-logs&#34;&gt;Forward Loki logs&lt;/h3&gt;
&lt;p&gt;This example watches for files ending with &lt;code&gt;.log&lt;/code&gt; in the path &lt;code&gt;/var/log&lt;/code&gt;, tails these logs with Loki and forwards the logs to the configured Splunk HEC endpoint.
The Splunk HEC exporter component is setup to send an heartbeat every 5 seconds.&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.file_match &amp;#34;local_files&amp;#34; {
    path_targets = [{&amp;#34;__path__&amp;#34; = &amp;#34;/var/log/*.log&amp;#34;}]
    sync_period  = &amp;#34;5s&amp;#34;
}

otelcol.receiver.loki &amp;#34;default&amp;#34; {
    output {
        logs = [otelcol.processor.resourcedetection.default.input]
    }
}

otelcol.processor.resourcedetection &amp;#34;default&amp;#34; {
    detectors = [&amp;#34;system&amp;#34;]

    system {
        hostname_sources = [&amp;#34;os&amp;#34;, &amp;#34;dns&amp;#34;]
        resource_attributes {
            host.name {
                enabled = true
            }
        }
    }

    output {
        logs = [otelcol.exporter.splunkhec.default.input]
    }
}

loki.source.file &amp;#34;log_scrape&amp;#34; {
    targets       = local.file_match.local_files.targets
    forward_to    = [otelcol.receiver.loki.default.receiver]
    tail_from_end = false
}

otelcol.exporter.splunkhec &amp;#34;default&amp;#34; {
    retry_on_failure {
        enabled = false
    }

    client {
        endpoint                = &amp;#34;http://splunkhec.domain.com:8088&amp;#34;
        timeout                 = &amp;#34;5s&amp;#34;
        max_idle_conns          = 200
        max_idle_conns_per_host = 200
        idle_conn_timeout       = &amp;#34;10s&amp;#34;
        write_buffer_size       = 8000
    }

    sending_queue {
        enabled = false
    }

    // Configure mapping of resource attributes to HEC metadata fields
    otel_attrs_to_hec_metadata {
        host       = &amp;#34;host.name&amp;#34;           // Maps host.name resource attribute to top-level host field
        source     = &amp;#34;com.splunk.source&amp;#34;   // Maps com.splunk.source attribute to source field
        sourcetype = &amp;#34;com.splunk.sourcetype&amp;#34; // Maps com.splunk.sourcetype attribute to sourcetype field
        index      = &amp;#34;com.splunk.index&amp;#34;    // Maps com.splunk.index attribute to index field
    }

    splunk {
        token            = &amp;#34;SPLUNK_TOKEN&amp;#34;
        source           = &amp;#34;otel&amp;#34;
        sourcetype       = &amp;#34;otel&amp;#34;
        index            = &amp;#34;devnull&amp;#34;
        log_data_enabled = true

        heartbeat {
            interval = &amp;#34;5s&amp;#34;
        }

        batcher {
            flush_timeout = &amp;#34;200ms&amp;#34;
        }

        telemetry {
            enabled                = true
            override_metrics_names = {
                otelcol_exporter_splunkhec_heartbeats_failed = &amp;#34;app_heartbeats_failed_total&amp;#34;,
                otelcol_exporter_splunkhec_heartbeats_sent   = &amp;#34;app_heartbeats_success_total&amp;#34;,
            }
            extra_attributes = {
                host   = &amp;#34;myhost&amp;#34;,
                dataset_name = &amp;#34;SplunkCloudBeaverStack&amp;#34;,
            }
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.splunkhec&lt;/code&gt; has exports that can be consumed by the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that consume &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-consumers&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolexportersplunkhec">&lt;code>otelcol.exporter.splunkhec&lt;/code>&lt;/h1>
&lt;div data-shared="stability/community.md">
&lt;blockquote>
&lt;p>&lt;strong>Community&lt;/strong>: This component is developed, maintained, and supported by the Alloy user community.
Grafana doesn&amp;rsquo;t offer commercial support for this component.
To enable and use community components, you must set the &lt;code>--feature.community-components.enabled&lt;/code>
&lt;a href="/docs/alloy/v1.15/reference/cli/run/">flag&lt;/a> to &lt;code>true&lt;/code>.&lt;/p></description></item><item><title>otelcol.exporter.syslog</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.exporter.syslog/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.exporter.syslog/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolexportersyslog&#34;&gt;&lt;code&gt;otelcol.exporter.syslog&lt;/code&gt;&lt;/h1&gt;


&lt;div data-shared=&#34;stability/public_preview.md&#34;&gt;
            &lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Public preview&lt;/strong&gt;: This is a &lt;a href=&#34;/docs/release-life-cycle/&#34;&gt;public preview&lt;/a&gt; component.
Public preview components are subject to breaking changes, and may be replaced with equivalent functionality that cover the same use case.
To enable and use a public preview component, you must set the &lt;code&gt;stability.level&lt;/code&gt; 
    &lt;a href=&#34;/docs/alloy/v1.15/reference/cli/run/&#34;&gt;flag&lt;/a&gt; to &lt;code&gt;public-preview&lt;/code&gt; or below.&lt;/p&gt;&lt;/blockquote&gt;
&lt;/div&gt;

        
&lt;p&gt;&lt;code&gt;otelcol.exporter.syslog&lt;/code&gt; accepts logs from other &lt;code&gt;otelcol&lt;/code&gt; components and writes them over the network using the syslog protocol.
It supports syslog protocols &lt;a href=&#34;https://www.rfc-editor.org/rfc/rfc5424&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;RFC5424&lt;/a&gt; and &lt;a href=&#34;https://www.rfc-editor.org/rfc/rfc3164&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;RFC3164&lt;/a&gt; and can send data over &lt;code&gt;TCP&lt;/code&gt; or &lt;code&gt;UDP&lt;/code&gt;.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.exporter.syslog&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/exporter/syslogexporter&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;syslog&lt;/code&gt;&lt;/a&gt; exporter.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.exporter.syslog&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.exporter.syslog &amp;#34;LABEL&amp;#34; {
  endpoint = &amp;#34;HOST&amp;#34;
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;supported-attributes&#34;&gt;Supported Attributes&lt;/h3&gt;
&lt;p&gt;The exporter creates one syslog message for each log record based on the following attributes of the log record.
If an attribute is missing, the default value is used. The log&amp;rsquo;s timestamp field is used for the syslog message&amp;rsquo;s time.
RFC3164 only supports a subset of the attributes supported by RFC5424, and the default values aren&amp;rsquo;t the same between the two protocols.
Refer to the 
    &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/exporter/syslogexporter&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;OpenTelemetry documentation&lt;/a&gt; for the exporter for more details.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Attribute name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;RFC5424 Default value&lt;/th&gt;
              &lt;th&gt;RFC3164 supported&lt;/th&gt;
              &lt;th&gt;RFC3164 Default value&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;appname&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;-&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
              &lt;td&gt;empty string&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;hostname&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;-&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;-&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;message&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
              &lt;td&gt;empty string&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
              &lt;td&gt;empty string&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;msg_id&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;-&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;priority&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;int&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;165&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;165&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;proc_id&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;-&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;structured_data&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;map&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;-&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;int&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.exporter.syslog&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The endpoint to send syslog formatted logs to.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;network&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The type of network connection to use to send logs.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;tcp&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;port&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The port where the syslog server accepts connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;514&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;protocol&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The syslog protocol that the syslog server supports.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;rfc5424&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enable_octet_counting&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to enable rfc6587 octet counting.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Time to wait before marking a request as failed.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;5s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;code&gt;network&lt;/code&gt; argument specifies if the syslog endpoint is using the TCP or UDP protocol.
&lt;code&gt;network&lt;/code&gt; must be one of &lt;code&gt;tcp&lt;/code&gt;, &lt;code&gt;udp&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;protocol&lt;/code&gt; argument specifies the syslog format supported by the endpoint.
&lt;code&gt;protocol&lt;/code&gt; must be one of &lt;code&gt;rfc5424&lt;/code&gt;, &lt;code&gt;rfc3164&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.exporter.syslog&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 6;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#retry_on_failure\&amp;#34;\u003e\u003ccode\u003eretry_on_failure\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures retry mechanism for failed requests.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#sending_queue\&amp;#34;\u003e\u003ccode\u003esending_queue\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures batching of data before sending.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003esending_queue\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#batch\&amp;#34;\u003e\u003ccode\u003ebatch\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures batching requests based on a timeout and a minimum number of items.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#tls\&amp;#34;\u003e\u003ccode\u003etls\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TLS for a TCP connection.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003etls\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#tpm\&amp;#34;\u003e\u003ccode\u003etpm\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TPM settings for the TLS \u003ccode\u003ekey_file\u003c/code\u003e.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#retry_on_failure&#34;&gt;&lt;code&gt;retry_on_failure&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures retry mechanism for failed requests.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#sending_queue&#34;&gt;&lt;code&gt;sending_queue&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures batching of data before sending.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sending_queue&lt;/code&gt; &amp;gt; &lt;a href=&#34;#batch&#34;&gt;&lt;code&gt;batch&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures batching requests based on a timeout and a minimum number of items.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TLS for a TCP connection.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;tls&lt;/code&gt; &amp;gt; &lt;a href=&#34;#tpm&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TPM settings for the TLS &lt;code&gt;key_file&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h3 id=&#34;retry_on_failure&#34;&gt;&lt;code&gt;retry_on_failure&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;retry_on_failure&lt;/code&gt; block configures how failed requests to the syslog server are retried.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-retry-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables retrying failed requests.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;initial_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Initial time to wait before retrying a failed request.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;5s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_elapsed_time&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum time to wait before discarding a failed batch.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;5m&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum time to wait between retries.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;30s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;multiplier&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Factor to grow wait time before retrying.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1.5&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;randomization_factor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Factor to randomize wait time before retrying.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;0.5&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;When &lt;code&gt;enabled&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;, failed batches are retried after a given interval.
The &lt;code&gt;initial_interval&lt;/code&gt; argument specifies how long to wait before the first retry attempt.
If requests continue to fail, the time to wait before retrying increases by the factor specified by the &lt;code&gt;multiplier&lt;/code&gt; argument, which must be greater than &lt;code&gt;1.0&lt;/code&gt;.
The &lt;code&gt;max_interval&lt;/code&gt; argument specifies the upper bound of how long to wait between retries.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;randomization_factor&lt;/code&gt; argument is useful for adding jitter between retrying Alloy instances.
If &lt;code&gt;randomization_factor&lt;/code&gt; is greater than &lt;code&gt;0&lt;/code&gt;, the wait time before retries is multiplied by a random factor in the range &lt;code&gt;[ I - randomization_factor * I, I &#43; randomization_factor * I]&lt;/code&gt;, where &lt;code&gt;I&lt;/code&gt; is the current interval.&lt;/p&gt;
&lt;p&gt;If a batch hasn&amp;rsquo;t been sent successfully, it&amp;rsquo;s discarded after the time specified by &lt;code&gt;max_elapsed_time&lt;/code&gt; elapses.
If &lt;code&gt;max_elapsed_time&lt;/code&gt; is set to &lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;, failed requests are retried forever until they succeed.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;sending_queue&#34;&gt;&lt;code&gt;sending_queue&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;sending_queue&lt;/code&gt; block configures queueing and batching for the exporter.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-queue-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;block_on_overflow&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The behavior when the component&amp;rsquo;s &lt;code&gt;TotalSize&lt;/code&gt; limit is reached.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables a buffer before sending data to the client.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;num_consumers&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Number of readers to send batches written to the queue in parallel.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;queue_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum number of unwritten batches allowed in the queue at the same time.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1000&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sizer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How the queue and batching is measured.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;requests&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;wait_for_result&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Determines if incoming requests are blocked until the request is processed or not.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;storage&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;capsule(otelcol.Handler)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Handler from an &lt;code&gt;otelcol.storage&lt;/code&gt; component to use to enable a persistent queue mechanism.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;code&gt;blocking&lt;/code&gt; argument is deprecated in favor of the &lt;code&gt;block_on_overflow&lt;/code&gt; argument.&lt;/p&gt;
&lt;p&gt;When &lt;code&gt;block_on_overflow&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;, the component will wait for space. Otherwise, operations will immediately return a retryable error.&lt;/p&gt;
&lt;p&gt;When &lt;code&gt;enabled&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;, data is first written to an in-memory buffer before sending it to the configured server.
Batches sent to the component&amp;rsquo;s &lt;code&gt;input&lt;/code&gt; exported field are added to the buffer as long as the number of unsent batches doesn&amp;rsquo;t exceed the configured &lt;code&gt;queue_size&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;queue_size&lt;/code&gt; determines how long an endpoint outage is tolerated.
Assuming 100 requests/second, the default queue size &lt;code&gt;1000&lt;/code&gt; provides about 10 seconds of outage tolerance.
To calculate the correct value for &lt;code&gt;queue_size&lt;/code&gt;, multiply the average number of outgoing requests per second by the time in seconds that outages are tolerated. A very high value can cause Out Of Memory (OOM) kills.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;sizer&lt;/code&gt; argument could be set to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;requests&lt;/code&gt;: number of incoming batches of metrics, logs, traces (the most performant option).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;items&lt;/code&gt;: number of the smallest parts of each signal (spans, metric data points, log records).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bytes&lt;/code&gt;: the size of serialized data in bytes (the least performant option).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The &lt;code&gt;num_consumers&lt;/code&gt; argument controls how many readers read from the buffer and send data in parallel.
Larger values of &lt;code&gt;num_consumers&lt;/code&gt; allow data to be sent more quickly at the expense of increased network traffic.&lt;/p&gt;
&lt;p&gt;If an &lt;code&gt;otelcol.storage.*&lt;/code&gt; component is configured and provided in the queue&amp;rsquo;s &lt;code&gt;storage&lt;/code&gt; argument, the queue uses the
provided storage extension to provide a persistent queue and the queue is no longer stored in memory.
Any data persisted will be processed on startup if Alloy is killed or restarted.
Refer to the 
    &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector/blob/v0.147.0/exporter/exporterhelper/README.md#persistent-queue&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;exporterhelper documentation&lt;/a&gt; in the OpenTelemetry Collector repository for more details.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;batch&#34;&gt;&lt;code&gt;batch&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;batch&lt;/code&gt; block configures batching requests based on a timeout and a minimum number of items.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-queue-batch-block.md&#34;&gt;
            &lt;p&gt;Batching is disabled by default.
To enable it, explicitly include &lt;code&gt;batch {}&lt;/code&gt; in your Alloy configuration.
You do not need to include a &lt;code&gt;batch {}&lt;/code&gt; block in your &lt;code&gt;otelcol.exporter&lt;/code&gt; if you already use a &lt;code&gt;otelcol.processor.batch&lt;/code&gt; component,
although batching in the exporter is the preferred method because it is more flexible.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;flush_timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Time after which a batch will be sent regardless of its size. Must be a non-zero value.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;200ms&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;min_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The minimum size of a batch.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;2000&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The maximum size of a batch, enables batch splitting.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;3000&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sizer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How the queue and batching is measured. Overrides the sizer set at the &lt;code&gt;sending_queue&lt;/code&gt; level for batching.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;items&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If configured, &lt;code&gt;max_size&lt;/code&gt; must be greater than or equal to &lt;code&gt;min_size&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;sizer&lt;/code&gt; argument can be set to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;items&lt;/code&gt;: The number of the smallest parts of each span, metric data point, or log record.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bytes&lt;/code&gt;: the size of serialized data in bytes (the least performant option).&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;tls&lt;/code&gt; block configures TLS settings used for a connection to a TCP syslog server.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-tls-client-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ca_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the CA file.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ca_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;CA PEM-encoded text to validate the server with.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cert_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS certificate.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cert_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Certificate PEM-encoded text for client authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cipher_suites&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of TLS cipher suites that the TLS transport can use.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;curve_preferences&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Set of elliptic curves to use in a handshake.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_system_ca_certs_pool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to load the system certificate authorities pool alongside the certificate authority.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;insecure_skip_verify&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Ignores insecure server TLS certificates.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;insecure&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Disables TLS when connecting to the configured server.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS certificate key.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;secret&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Key PEM-encoded text for client authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum acceptable TLS version for connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;TLS 1.3&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;min_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Minimum acceptable TLS version for connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;TLS 1.2&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;reload_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The duration after which the certificate is reloaded.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;server_name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Verifies the hostname of server certificates when set.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If the server doesn&amp;rsquo;t support TLS, you must set the &lt;code&gt;insecure&lt;/code&gt; argument to &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;To disable &lt;code&gt;tls&lt;/code&gt; for connections to the server, set the &lt;code&gt;insecure&lt;/code&gt; argument to &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;If you set &lt;code&gt;reload_interval&lt;/code&gt; to &lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;, the certificate never reloaded.&lt;/p&gt;
&lt;p&gt;The following pairs of arguments are mutually exclusive and can&amp;rsquo;t both be set simultaneously:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ca_pem&lt;/code&gt; and &lt;code&gt;ca_file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cert_pem&lt;/code&gt; and &lt;code&gt;cert_file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;key_pem&lt;/code&gt; and &lt;code&gt;key_file&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If &lt;code&gt;cipher_suites&lt;/code&gt; is left blank, a safe default list is used.
Refer to the &lt;a href=&#34;https://go.dev/src/crypto/tls/cipher_suites.go&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Go TLS documentation&lt;/a&gt; for a list of supported cipher suites.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;curve_preferences&lt;/code&gt; argument determines the set of &lt;a href=&#34;https://go.dev/src/crypto/tls/common.go#L138&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;elliptic curves&lt;/a&gt; to prefer during a handshake in preference order.
If not provided, a default list is used.
The set of elliptic curves available are &lt;code&gt;X25519&lt;/code&gt;, &lt;code&gt;P521&lt;/code&gt;, &lt;code&gt;P256&lt;/code&gt;, and &lt;code&gt;P384&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;tpm&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;tpm&lt;/code&gt; block configures retrieving the TLS &lt;code&gt;key_file&lt;/code&gt; from a trusted device.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-tls-tpm-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The authorization value used to authenticate the TPM device.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Load the &lt;code&gt;tls.key_file&lt;/code&gt; from TPM.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;owner_auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The owner authorization value used to authenticate the TPM device.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;path&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TPM device or Unix domain socket.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;a href=&#34;https://trustedcomputinggroup.org/resource/trusted-platform-module-tpm-summary/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;trusted platform module&lt;/a&gt; (TPM) configuration can be used for loading TLS key from TPM. Currently only TSS2 format is supported.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;path&lt;/code&gt; attribute is not supported on Windows.&lt;/p&gt;
&lt;p&gt;In the following example, the private key &lt;code&gt;my-tss2-key.key&lt;/code&gt; in TSS2 format is loaded from the TPM device &lt;code&gt;/dev/tmprm0&lt;/code&gt;:&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;otelcol.example.component &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
    ...
    tls {
        ...
        key_file = &amp;#34;my-tss2-key.key&amp;#34;
        tpm {
            enabled = true
            path = &amp;#34;/dev/tpmrm0&amp;#34;
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

        
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;The following fields are exported and can be referenced by other components:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&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;code&gt;input&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A value that other components can use to send telemetry data to.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;input&lt;/code&gt; accepts &lt;code&gt;otelcol.Consumer&lt;/code&gt; data for logs. Other telemetry signals are ignored.&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.syslog&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.syslog&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;examples&#34;&gt;Examples&lt;/h2&gt;
&lt;h3 id=&#34;tcp-endpoint-without-tls&#34;&gt;TCP endpoint without TLS&lt;/h3&gt;
&lt;p&gt;This example creates an exporter to send data to a syslog server expecting RFC5424-compliant messages over TCP without TLS:&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;otelcol.exporter.syslog &amp;#34;default&amp;#34; {
  endpoint = &amp;#34;localhost&amp;#34;
  tls {
      insecure             = true
      insecure_skip_verify = true
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;use-the-otelcolprocessortransform-component-to-format-logs-from-lokisourcesyslog&#34;&gt;Use the &lt;code&gt;otelcol.processor.transform&lt;/code&gt; component to format logs from &lt;code&gt;loki.source.syslog&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;This example shows one of the methods for annotating your Loki messages into the format expected by the exporter using a &lt;code&gt;otelcol.receiver.loki&lt;/code&gt; component in addition to the &lt;code&gt;otelcol.processor.transform&lt;/code&gt; component.
This example assumes that the log messages being parsed have come from a &lt;code&gt;loki.source.syslog&lt;/code&gt; component.
This is just an example of some of the techniques that can be applied, and not a fully functioning example for a specific incoming log.&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;otelcol.receiver.loki &amp;#34;default&amp;#34; {
  output {
    logs = [otelcol.processor.transform.syslog.input]
  }
}

otelcol.processor.transform &amp;#34;syslog&amp;#34; {
  error_mode = &amp;#34;ignore&amp;#34;

  log_statements {
    context = &amp;#34;log&amp;#34;

    statements = [
      `set(attributes[&amp;#34;message&amp;#34;], attributes[&amp;#34;__syslog_message&amp;#34;])`,
      `set(attributes[&amp;#34;appname&amp;#34;], attributes[&amp;#34;__syslog_appname&amp;#34;])`,
      `set(attributes[&amp;#34;hostname&amp;#34;], attributes[&amp;#34;__syslog_hostname&amp;#34;])`,

      // To set structured data you can chain index ([]) operations.
      `set(attributes[&amp;#34;structured_data&amp;#34;][&amp;#34;auth@32473&amp;#34;][&amp;#34;user&amp;#34;], attributes[&amp;#34;__syslog_message_sd_auth_32473_user&amp;#34;])`,
      `set(attributes[&amp;#34;structured_data&amp;#34;][&amp;#34;auth@32473&amp;#34;][&amp;#34;user_host&amp;#34;], attributes[&amp;#34;__syslog_message_sd_auth_32473_user_host&amp;#34;])`,
      `set(attributes[&amp;#34;structured_data&amp;#34;][&amp;#34;auth@32473&amp;#34;][&amp;#34;valid&amp;#34;], attributes[&amp;#34;__syslog_message_sd_auth_32473_authenticated&amp;#34;])`,
    ]
  }

  output {
    metrics = []
    logs    = [otelcol.exporter.syslog.default.input]
    traces  = []
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;use-the-otelcolprocessortransform-component-to-format-opentelemetry-logs&#34;&gt;Use the &lt;code&gt;otelcol.processor.transform&lt;/code&gt; component to format OpenTelemetry logs&lt;/h3&gt;
&lt;p&gt;This example shows one of the methods for annotating your messages in the OpenTelemetry log format into the format expected by the exporter using an &lt;code&gt;otelcol.processor.transform&lt;/code&gt; component.
This example assumes that the log messages being parsed have come from another OpenTelemetry receiver in JSON format (or have been transformed to OpenTelemetry logs using an &lt;code&gt;otelcol.receiver.loki&lt;/code&gt; component).
This is just an example of some of the techniques that can be applied, and not a fully functioning example for a specific incoming log format.&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;otelcol.processor.transform &amp;#34;syslog&amp;#34; {
  error_mode = &amp;#34;ignore&amp;#34;

  log_statements {
    context = &amp;#34;log&amp;#34;

    statements = [
      // Parse body as JSON and merge the resulting map with the cache map, ignoring non-json bodies.
      // cache is a field exposed by OTTL that is a temporary storage place for complex operations.
      `merge_maps(cache, ParseJSON(body), &amp;#34;upsert&amp;#34;) where IsMatch(body, &amp;#34;^\\{&amp;#34;)`,

      // Set some example syslog attributes using the values from a JSON message body
      // If the attribute doesn&amp;#39;t exist in cache then nothing happens.
      `set(attributes[&amp;#34;message&amp;#34;], cache[&amp;#34;log&amp;#34;])`,
      `set(attributes[&amp;#34;appname&amp;#34;], cache[&amp;#34;application&amp;#34;])`,
      `set(attributes[&amp;#34;hostname&amp;#34;], cache[&amp;#34;source&amp;#34;])`,

      // To set structured data you can chain index ([]) operations.
      `set(attributes[&amp;#34;structured_data&amp;#34;][&amp;#34;auth@32473&amp;#34;][&amp;#34;user&amp;#34;], attributes[&amp;#34;user&amp;#34;])`,
      `set(attributes[&amp;#34;structured_data&amp;#34;][&amp;#34;auth@32473&amp;#34;][&amp;#34;user_host&amp;#34;], cache[&amp;#34;source&amp;#34;])`,
      `set(attributes[&amp;#34;structured_data&amp;#34;][&amp;#34;auth@32473&amp;#34;][&amp;#34;valid&amp;#34;], cache[&amp;#34;authenticated&amp;#34;])`,

      // Example priority setting, using facility 1 (user messages) and default to Info
      `set(attributes[&amp;#34;priority&amp;#34;], 14)`,
      `set(attributes[&amp;#34;priority&amp;#34;], 12) where severity_number == SEVERITY_NUMBER_WARN`,
      `set(attributes[&amp;#34;priority&amp;#34;], 11) where severity_number == SEVERITY_NUMBER_ERROR`,
      `set(attributes[&amp;#34;priority&amp;#34;], 10) where severity_number == SEVERITY_NUMBER_FATAL`,
    ]
  }

  output {
    metrics = []
    logs    = [otelcol.exporter.syslog.default.input]
    traces  = []
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.exporter.syslog&lt;/code&gt; has exports that can be consumed by the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that consume &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-consumers&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolexportersyslog">&lt;code>otelcol.exporter.syslog&lt;/code>&lt;/h1>
&lt;div data-shared="stability/public_preview.md">
&lt;blockquote>
&lt;p>&lt;strong>Public preview&lt;/strong>: This is a &lt;a href="/docs/release-life-cycle/">public preview&lt;/a> component.
Public preview components are subject to breaking changes, and may be replaced with equivalent functionality that cover the same use case.
To enable and use a public preview component, you must set the &lt;code>stability.level&lt;/code>
&lt;a href="/docs/alloy/v1.15/reference/cli/run/">flag&lt;/a> to &lt;code>public-preview&lt;/code> or below.&lt;/p></description></item><item><title>otelcol.extension.jaeger_remote_sampling</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.extension.jaeger_remote_sampling/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.extension.jaeger_remote_sampling/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolextensionjaeger_remote_sampling&#34;&gt;&lt;code&gt;otelcol.extension.jaeger_remote_sampling&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;otelcol.extension.jaeger_remote_sampling&lt;/code&gt; serves a specified Jaeger remote sampling document.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.extension.jaeger_remote_sampling&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/extension/jaegerremotesampling&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;jaegerremotesampling&lt;/code&gt;&lt;/a&gt; extension.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.extension.jaeger_remote_sampling&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.extension.jaeger_remote_sampling &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  source {
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;otelcol.extension.jaeger_remote_sampling&lt;/code&gt; component doesn&amp;rsquo;t support any arguments. You can configure this component with blocks.&lt;/p&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.extension.jaeger_remote_sampling&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 15;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#source\&amp;#34;\u003e\u003ccode\u003esource\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the Jaeger remote sampling document.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003esource\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#remote\&amp;#34;\u003e\u003ccode\u003eremote\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the gRPC client used to retrieve the Jaeger remote sampling document.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003esource\u003c/code\u003e \u0026gt; \u003ccode\u003eremote\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#keepalive-client\&amp;#34;\u003e\u003ccode\u003ekeepalive\u003c/code\u003e client\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures keepalive settings for the gRPC client.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003esource\u003c/code\u003e \u0026gt; \u003ccode\u003eremote\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#tls-client\&amp;#34;\u003e\u003ccode\u003etls\u003c/code\u003e client\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TLS for the gRPC client.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#http\&amp;#34;\u003e\u003ccode\u003ehttp\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the HTTP server to serve Jaeger remote sampling.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003ehttp\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#cors\&amp;#34;\u003e\u003ccode\u003ecors\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures CORS for the HTTP server.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003ehttp\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#tls\&amp;#34;\u003e\u003ccode\u003etls\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TLS for the HTTP server.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003ehttp\u003c/code\u003e \u0026gt; \u003ccode\u003etls\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#tpm\&amp;#34;\u003e\u003ccode\u003etpm\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TPM settings for the TLS \u003ccode\u003ekey_file\u003c/code\u003e.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#grpc\&amp;#34;\u003e\u003ccode\u003egrpc\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the gRPC server to serve Jaeger remote sampling.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003egrpc\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#keepalive\&amp;#34;\u003e\u003ccode\u003ekeepalive\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures keepalive settings for the configured server.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003egrpc\u003c/code\u003e \u0026gt; \u003ccode\u003ekeepalive\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#enforcement_policy\&amp;#34;\u003e\u003ccode\u003eenforcement_policy\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eEnforcement policy for keepalive settings.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003egrpc\u003c/code\u003e \u0026gt; \u003ccode\u003ekeepalive\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#server_parameters\&amp;#34;\u003e\u003ccode\u003eserver_parameters\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eServer parameters used to configure keepalive settings.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003egrpc\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#tls\&amp;#34;\u003e\u003ccode\u003etls\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TLS for the gRPC server.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003egrpc\u003c/code\u003e \u0026gt; \u003ccode\u003etls\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#tpm\&amp;#34;\u003e\u003ccode\u003etpm\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TPM settings for the TLS \u003ccode\u003ekey_file\u003c/code\u003e.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#source&#34;&gt;&lt;code&gt;source&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the Jaeger remote sampling document.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;source&lt;/code&gt; &amp;gt; &lt;a href=&#34;#remote&#34;&gt;&lt;code&gt;remote&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the gRPC client used to retrieve the Jaeger remote sampling document.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;source&lt;/code&gt; &amp;gt; &lt;code&gt;remote&lt;/code&gt; &amp;gt; &lt;a href=&#34;#keepalive-client&#34;&gt;&lt;code&gt;keepalive&lt;/code&gt; client&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures keepalive settings for the gRPC client.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;source&lt;/code&gt; &amp;gt; &lt;code&gt;remote&lt;/code&gt; &amp;gt; &lt;a href=&#34;#tls-client&#34;&gt;&lt;code&gt;tls&lt;/code&gt; client&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TLS for the gRPC client.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#http&#34;&gt;&lt;code&gt;http&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the HTTP server to serve Jaeger remote sampling.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;http&lt;/code&gt; &amp;gt; &lt;a href=&#34;#cors&#34;&gt;&lt;code&gt;cors&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures CORS for the HTTP server.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;http&lt;/code&gt; &amp;gt; &lt;a href=&#34;#tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TLS for the HTTP server.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;http&lt;/code&gt; &amp;gt; &lt;code&gt;tls&lt;/code&gt; &amp;gt; &lt;a href=&#34;#tpm&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TPM settings for the TLS &lt;code&gt;key_file&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#grpc&#34;&gt;&lt;code&gt;grpc&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the gRPC server to serve Jaeger remote sampling.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;grpc&lt;/code&gt; &amp;gt; &lt;a href=&#34;#keepalive&#34;&gt;&lt;code&gt;keepalive&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures keepalive settings for the configured server.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;grpc&lt;/code&gt; &amp;gt; &lt;code&gt;keepalive&lt;/code&gt; &amp;gt; &lt;a href=&#34;#enforcement_policy&#34;&gt;&lt;code&gt;enforcement_policy&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enforcement policy for keepalive settings.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;grpc&lt;/code&gt; &amp;gt; &lt;code&gt;keepalive&lt;/code&gt; &amp;gt; &lt;a href=&#34;#server_parameters&#34;&gt;&lt;code&gt;server_parameters&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Server parameters used to configure keepalive settings.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;grpc&lt;/code&gt; &amp;gt; &lt;a href=&#34;#tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TLS for the gRPC server.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;grpc&lt;/code&gt; &amp;gt; &lt;code&gt;tls&lt;/code&gt; &amp;gt; &lt;a href=&#34;#tpm&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TPM settings for the TLS &lt;code&gt;key_file&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;source&#34;&gt;&lt;code&gt;source&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;

&lt;p&gt;The &lt;code&gt;source&lt;/code&gt; block configures the method of retrieving the Jaeger remote sampling document that&amp;rsquo;s served by the servers specified in the &lt;code&gt;grpc&lt;/code&gt; and &lt;code&gt;http&lt;/code&gt; blocks.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;content&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A string containing the Jaeger remote sampling contents directly.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A local file containing a Jaeger remote sampling document.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;reload_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The interval at which to reload the specified file. Leave at 0 to never reload.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;Exactly one of the &lt;code&gt;file&lt;/code&gt; argument, &lt;code&gt;content&lt;/code&gt; argument or &lt;code&gt;remote&lt;/code&gt; block must be specified.&lt;/p&gt;
&lt;h3 id=&#34;remote&#34;&gt;&lt;code&gt;remote&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;remote&lt;/code&gt; block configures the gRPC client used by the component.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;host:port&lt;/code&gt; to send telemetry data to.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;capsule(otelcol.Handler)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Handler from an &lt;code&gt;otelcol.auth&lt;/code&gt; component to use for authenticating requests.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;authority&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Overrides the default &lt;code&gt;:authority&lt;/code&gt; header in gRPC requests from the gRPC client.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;compression&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Compression mechanism to use for requests.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;gzip&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;headers&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;map(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Additional headers to send with the request.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;{}&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;read_buffer_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Size of the read buffer the gRPC client to use for reading server responses.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;wait_for_ready&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Waits for gRPC connection to be in the &lt;code&gt;READY&lt;/code&gt; state before sending data.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;write_buffer_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Size of the write buffer the gRPC client to use for writing requests.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;512KiB&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;

&lt;div data-shared=&#34;reference/components/otelcol-compression-field.md&#34;&gt;
            &lt;p&gt;By default, requests are compressed with Gzip.
The &lt;code&gt;compression&lt;/code&gt; argument controls which compression mechanism to use. Supported strings are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;gzip&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;zlib&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;deflate&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;snappy&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;zstd&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you set &lt;code&gt;compression&lt;/code&gt; to &lt;code&gt;&amp;quot;none&amp;quot;&lt;/code&gt; or an empty string &lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;, the requests aren&amp;rsquo;t compressed.&lt;/p&gt;
&lt;/div&gt;

        


&lt;div data-shared=&#34;reference/components/otelcol-grpc-balancer-name.md&#34;&gt;
            &lt;p&gt;The supported values for &lt;code&gt;balancer_name&lt;/code&gt; are listed in the gRPC documentation on &lt;a href=&#34;https://github.com/grpc/grpc-go/blob/master/examples/features/load_balancing/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Load balancing&lt;/a&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;pick_first&lt;/code&gt;: Tries to connect to the first address. It uses the address for all RPCs if it connects, or if it fails, it tries the next address and keeps trying until one connection is successful.
Because of this, all the RPCs are sent to the same backend.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;round_robin&lt;/code&gt;: Connects to all the addresses it sees and sends an RPC to each backend one at a time in order.
For example, the first RPC is sent to backend-1, the second RPC is sent to backend-2, and the third RPC is sent to backend-1.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

        


&lt;div data-shared=&#34;reference/components/otelcol-grpc-authority.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;:authority&lt;/code&gt; header in gRPC specifies the host to which the request is being sent.
It&amp;rsquo;s similar to the &lt;code&gt;Host&lt;/code&gt; &lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Host&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;header&lt;/a&gt; in HTTP requests.
By default, the value for &lt;code&gt;:authority&lt;/code&gt; is derived from the endpoint URL used for the gRPC call.
Overriding &lt;code&gt;:authority&lt;/code&gt; could be useful when routing traffic using a proxy like Envoy, which &lt;a href=&#34;https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_conn_man/route_matching&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;makes routing decisions&lt;/a&gt; based on the value of the &lt;code&gt;:authority&lt;/code&gt; header.&lt;/p&gt;
&lt;/div&gt;

        
&lt;p&gt;An HTTP proxy can be configured through the following environment variables:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;HTTPS_PROXY&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;NO_PROXY&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The &lt;code&gt;HTTPS_PROXY&lt;/code&gt; environment variable specifies a URL to use for proxying requests.
Connections to the proxy are established via &lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/CONNECT&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;the &lt;code&gt;HTTP CONNECT&lt;/code&gt; method&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;NO_PROXY&lt;/code&gt; environment variable is an optional list of comma-separated hostnames for which the HTTPS proxy should &lt;em&gt;not&lt;/em&gt; be used.
Each hostname can be provided as an IP address (&lt;code&gt;1.2.3.4&lt;/code&gt;), an IP address in CIDR notation (&lt;code&gt;1.2.3.4/8&lt;/code&gt;), a domain name (&lt;code&gt;example.com&lt;/code&gt;), or &lt;code&gt;*&lt;/code&gt;.
A domain name matches that domain and all subdomains. A domain name with a leading &amp;ldquo;.&amp;rdquo; (&lt;code&gt;.example.com&lt;/code&gt;) matches subdomains only.
&lt;code&gt;NO_PROXY&lt;/code&gt; is only read when &lt;code&gt;HTTPS_PROXY&lt;/code&gt; is set.&lt;/p&gt;
&lt;p&gt;Because &lt;code&gt;otelcol.extension.jaeger_remote_sampling&lt;/code&gt; uses gRPC, the configured proxy server must be able to handle and proxy HTTP/2 traffic.&lt;/p&gt;
&lt;h3 id=&#34;keepalive-client&#34;&gt;&lt;code&gt;keepalive&lt;/code&gt; client&lt;/h3&gt;
&lt;p&gt;This &lt;code&gt;keepalive&lt;/code&gt; block configures keepalive settings for gRPC client connections.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ping_wait&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How often to ping the server after no activity.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ping_response_timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Time to wait before closing inactive connections if the server doesn&amp;rsquo;t respond to a ping.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ping_without_stream&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Send pings even if there is no active stream request.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;tls-client&#34;&gt;&lt;code&gt;tls&lt;/code&gt; client&lt;/h3&gt;
&lt;p&gt;This &lt;code&gt;tls&lt;/code&gt; block configures TLS settings used for the connection to the gRPC server.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-tls-client-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ca_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the CA file.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ca_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;CA PEM-encoded text to validate the server with.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cert_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS certificate.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cert_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Certificate PEM-encoded text for client authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cipher_suites&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of TLS cipher suites that the TLS transport can use.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;curve_preferences&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Set of elliptic curves to use in a handshake.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_system_ca_certs_pool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to load the system certificate authorities pool alongside the certificate authority.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;insecure_skip_verify&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Ignores insecure server TLS certificates.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;insecure&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Disables TLS when connecting to the configured server.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS certificate key.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;secret&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Key PEM-encoded text for client authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum acceptable TLS version for connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;TLS 1.3&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;min_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Minimum acceptable TLS version for connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;TLS 1.2&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;reload_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The duration after which the certificate is reloaded.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;server_name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Verifies the hostname of server certificates when set.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If the server doesn&amp;rsquo;t support TLS, you must set the &lt;code&gt;insecure&lt;/code&gt; argument to &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;To disable &lt;code&gt;tls&lt;/code&gt; for connections to the server, set the &lt;code&gt;insecure&lt;/code&gt; argument to &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;If you set &lt;code&gt;reload_interval&lt;/code&gt; to &lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;, the certificate never reloaded.&lt;/p&gt;
&lt;p&gt;The following pairs of arguments are mutually exclusive and can&amp;rsquo;t both be set simultaneously:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ca_pem&lt;/code&gt; and &lt;code&gt;ca_file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cert_pem&lt;/code&gt; and &lt;code&gt;cert_file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;key_pem&lt;/code&gt; and &lt;code&gt;key_file&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If &lt;code&gt;cipher_suites&lt;/code&gt; is left blank, a safe default list is used.
Refer to the &lt;a href=&#34;https://go.dev/src/crypto/tls/cipher_suites.go&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Go TLS documentation&lt;/a&gt; for a list of supported cipher suites.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;curve_preferences&lt;/code&gt; argument determines the set of &lt;a href=&#34;https://go.dev/src/crypto/tls/common.go#L138&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;elliptic curves&lt;/a&gt; to prefer during a handshake in preference order.
If not provided, a default list is used.
The set of elliptic curves available are &lt;code&gt;X25519&lt;/code&gt;, &lt;code&gt;P521&lt;/code&gt;, &lt;code&gt;P256&lt;/code&gt;, and &lt;code&gt;P384&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;tpm&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;tpm&lt;/code&gt; block configures retrieving the TLS &lt;code&gt;key_file&lt;/code&gt; from a trusted device.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-tls-tpm-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The authorization value used to authenticate the TPM device.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Load the &lt;code&gt;tls.key_file&lt;/code&gt; from TPM.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;owner_auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The owner authorization value used to authenticate the TPM device.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;path&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TPM device or Unix domain socket.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;a href=&#34;https://trustedcomputinggroup.org/resource/trusted-platform-module-tpm-summary/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;trusted platform module&lt;/a&gt; (TPM) configuration can be used for loading TLS key from TPM. Currently only TSS2 format is supported.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;path&lt;/code&gt; attribute is not supported on Windows.&lt;/p&gt;
&lt;p&gt;In the following example, the private key &lt;code&gt;my-tss2-key.key&lt;/code&gt; in TSS2 format is loaded from the TPM device &lt;code&gt;/dev/tmprm0&lt;/code&gt;:&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;otelcol.example.component &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
    ...
    tls {
        ...
        key_file = &amp;#34;my-tss2-key.key&amp;#34;
        tpm {
            enabled = true
            path = &amp;#34;/dev/tpmrm0&amp;#34;
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;http&#34;&gt;&lt;code&gt;http&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;http&lt;/code&gt; block configures an HTTP server which serves the Jaeger remote sampling document.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;capsule(otelcol.Handler)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Handler from an &lt;code&gt;otelcol.auth&lt;/code&gt; component to use for authenticating requests.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;compression_algorithms&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of compression algorithms the server can accept.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[&amp;quot;&amp;quot;, &amp;quot;gzip&amp;quot;, &amp;quot;zstd&amp;quot;, &amp;quot;zlib&amp;quot;, &amp;quot;snappy&amp;quot;, &amp;quot;deflate&amp;quot;, &amp;quot;lz4&amp;quot;]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;host:port&lt;/code&gt; to listen for traffic on.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0.0.0.0:5778&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_metadata&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Propagate incoming connection metadata to downstream consumers.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;keep_alives_enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether or not HTTP keep-alives are enabled&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_request_body_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum request body size the server will allow.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;20MiB&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;cors&#34;&gt;&lt;code&gt;cors&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;cors&lt;/code&gt; block configures CORS settings for an HTTP server.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;allowed_headers&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Accepted headers from CORS requests.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[&amp;quot;X-Requested-With&amp;quot;]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;allowed_origins&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Allowed values for the &lt;code&gt;Origin&lt;/code&gt; header.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_age&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Configures the &lt;code&gt;Access-Control-Max-Age&lt;/code&gt; response header.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;code&gt;allowed_headers&lt;/code&gt; specifies which headers are acceptable from a CORS request.
The following headers are always implicitly allowed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Accept&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Accept-Language&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Content-Type&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Content-Language&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If &lt;code&gt;allowed_headers&lt;/code&gt; includes &lt;code&gt;&amp;quot;*&amp;quot;&lt;/code&gt;, all headers will be permitted.&lt;/p&gt;
&lt;h3 id=&#34;tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;tls&lt;/code&gt; block configures TLS settings used for a server. If the &lt;code&gt;tls&lt;/code&gt; block
isn&amp;rsquo;t provided, TLS won&amp;rsquo;t be used for connections to the server.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-tls-server-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ca_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the CA file.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ca_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;CA PEM-encoded text to validate the server with.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cert_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS certificate.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cert_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Certificate PEM-encoded text for client authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cipher_suites&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of TLS cipher suites that the TLS transport can use.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;client_ca_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS cert to use by the server to verify a client certificate.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;curve_preferences&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Set of elliptic curves to use in a handshake.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_system_ca_certs_pool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to load the system certificate authorities pool alongside the certificate authority.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS certificate key.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;secret&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Key PEM-encoded text for client authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum acceptable TLS version for connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;TLS 1.3&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;min_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Minimum acceptable TLS version for connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;TLS 1.2&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;reload_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The duration after which the certificate is reloaded.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If &lt;code&gt;reload_interval&lt;/code&gt; is set to &lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;, the certificate never reloaded.&lt;/p&gt;
&lt;p&gt;The following pairs of arguments are mutually exclusive and can&amp;rsquo;t both be set simultaneously:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ca_pem&lt;/code&gt; and &lt;code&gt;ca_file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cert_pem&lt;/code&gt; and &lt;code&gt;cert_file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;key_pem&lt;/code&gt; and &lt;code&gt;key_file&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If &lt;code&gt;cipher_suites&lt;/code&gt; is left blank, a safe default list is used.
Refer to the &lt;a href=&#34;https://go.dev/src/crypto/tls/cipher_suites.go&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Go Cipher Suites documentation&lt;/a&gt; for a list of supported cipher suites.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;client_ca_file&lt;/code&gt; sets the &lt;code&gt;ClientCA&lt;/code&gt; and &lt;code&gt;ClientAuth&lt;/code&gt; to &lt;code&gt;RequireAndVerifyClientCert&lt;/code&gt; in the &lt;code&gt;TLSConfig&lt;/code&gt;.
Refer to the &lt;a href=&#34;https://godoc.org/crypto/tls#Config&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Go TLS documentation&lt;/a&gt; for more information.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;curve_preferences&lt;/code&gt; argument determines the set of elliptic curves to prefer during a handshake in preference order.
If not provided, a default list is used.
The set of elliptic curves available are &lt;code&gt;X25519&lt;/code&gt;, &lt;code&gt;P521&lt;/code&gt;, &lt;code&gt;P256&lt;/code&gt;, and &lt;code&gt;P384&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;tpm-1&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;tpm&lt;/code&gt; block configures retrieving the TLS &lt;code&gt;key_file&lt;/code&gt; from a trusted device.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-tls-tpm-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The authorization value used to authenticate the TPM device.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Load the &lt;code&gt;tls.key_file&lt;/code&gt; from TPM.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;owner_auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The owner authorization value used to authenticate the TPM device.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;path&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TPM device or Unix domain socket.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;a href=&#34;https://trustedcomputinggroup.org/resource/trusted-platform-module-tpm-summary/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;trusted platform module&lt;/a&gt; (TPM) configuration can be used for loading TLS key from TPM. Currently only TSS2 format is supported.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;path&lt;/code&gt; attribute is not supported on Windows.&lt;/p&gt;
&lt;p&gt;In the following example, the private key &lt;code&gt;my-tss2-key.key&lt;/code&gt; in TSS2 format is loaded from the TPM device &lt;code&gt;/dev/tmprm0&lt;/code&gt;:&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;otelcol.example.component &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
    ...
    tls {
        ...
        key_file = &amp;#34;my-tss2-key.key&amp;#34;
        tpm {
            enabled = true
            path = &amp;#34;/dev/tpmrm0&amp;#34;
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;grpc&#34;&gt;&lt;code&gt;grpc&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;grpc&lt;/code&gt; block configures a gRPC server which serves the Jaeger remote sampling document.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;capsule(otelcol.Handler)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Handler from an &lt;code&gt;otelcol.auth&lt;/code&gt; component to use for authenticating requests.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;host:port&lt;/code&gt; to listen for traffic on.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0.0.0.0:14250&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_metadata&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Propagate incoming connection metadata to downstream consumers.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_concurrent_streams&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Limit the number of concurrent streaming RPC calls.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_recv_msg_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum size of messages the server will accept.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;4MiB&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;read_buffer_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Size of the read buffer the gRPC server will use for reading from clients.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;512KiB&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;transport&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Transport to use for the gRPC server.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;tcp&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;write_buffer_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Size of the write buffer the gRPC server will use for writing to clients.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;keepalive&#34;&gt;&lt;code&gt;keepalive&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;keepalive&lt;/code&gt; block configures keepalive settings for connections to a gRPC server.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;keepalive&lt;/code&gt; doesn&amp;rsquo;t support any arguments and is configured fully through inner blocks.&lt;/p&gt;
&lt;h3 id=&#34;enforcement_policy&#34;&gt;&lt;code&gt;enforcement_policy&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;enforcement_policy&lt;/code&gt; block configures the keepalive enforcement policy for gRPC servers.
The server will close connections from clients that violate the configured policy.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;min_time&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Minimum time clients should wait before sending a keepalive ping.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;5m&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;permit_without_stream&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Allow clients to send keepalive pings when there are no active streams.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;server_parameters&#34;&gt;&lt;code&gt;server_parameters&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;server_parameters&lt;/code&gt; block controls keepalive and maximum age settings for gRPC servers.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_connection_age_grace&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Time to wait before forcibly closing connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;infinity&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_connection_age&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum age for non-idle connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;infinity&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_connection_idle&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum age for idle connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;infinity&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;time&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How often to ping inactive clients to check for liveness.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;2h&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Time to wait before closing inactive clients that don&amp;rsquo;t respond to liveness checks.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;20s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.extension.jaeger_remote_sampling&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.extension.jaeger_remote_sampling&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;examples&#34;&gt;Examples&lt;/h2&gt;
&lt;h3 id=&#34;serve-from-a-file&#34;&gt;Serve from a file&lt;/h3&gt;
&lt;p&gt;This example configures the Jaeger remote sampling extension to load a local JSON document and serve it over the default HTTP port of 5778.
Currently this configuration style exists for consistency with upstream OpenTelemetry Collector components and may be removed.&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;otelcol.extension.jaeger_remote_sampling &amp;#34;example&amp;#34; {
  http {
  }
  source {
    file             = &amp;#34;/path/to/jaeger-sampling.json&amp;#34;
    reload_interval  = &amp;#34;10s&amp;#34;
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;serve-from-another-component&#34;&gt;Serve from another component&lt;/h3&gt;
&lt;p&gt;This example uses the output of a component to determine what sampling rules to serve:&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.file &amp;#34;sampling&amp;#34; {
  filename  = &amp;#34;/path/to/jaeger-sampling.json&amp;#34;
}

otelcol.extension.jaeger_remote_sampling &amp;#34;example&amp;#34; {
  http {
  }
  source {
    content = local.file.sampling.content
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;enable-authentication&#34;&gt;Enable authentication&lt;/h2&gt;
&lt;p&gt;You can use &lt;code&gt;jaeger_remote_sampling&lt;/code&gt; to authenticate requests.
This allows you to limit access to the sampling document.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Not all OpenTelemetry Collector authentication plugins support receiver authentication.
Refer to the 
    &lt;a href=&#34;/docs/alloy/v1.15/reference/components/otelcol/&#34;&gt;documentation&lt;/a&gt; for each &lt;code&gt;otelcol.auth.*&lt;/code&gt; component to determine its compatibility.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&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;otelcol.extension.jaeger_remote_sampling &amp;#34;default&amp;#34; {
  http {
    auth = otelcol.auth.basic.creds.handler
  }
  grpc {
     auth = otelcol.auth.basic.creds.handler
  }
}

otelcol.auth.basic &amp;#34;creds&amp;#34; {
    username = sys.env(&amp;#34;USERNAME&amp;#34;)
    password = sys.env(&amp;#34;PASSWORD&amp;#34;)
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
]]></content><description>&lt;h1 id="otelcolextensionjaeger_remote_sampling">&lt;code>otelcol.extension.jaeger_remote_sampling&lt;/code>&lt;/h1>
&lt;p>&lt;code>otelcol.extension.jaeger_remote_sampling&lt;/code> serves a specified Jaeger remote sampling document.&lt;/p>
&lt;div class="admonition admonition-note">&lt;blockquote>&lt;p class="title text-uppercase">Note&lt;/p>&lt;p>&lt;code>otelcol.extension.jaeger_remote_sampling&lt;/code> is a wrapper over the upstream OpenTelemetry Collector &lt;a href="https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/extension/jaegerremotesampling" target="_blank" rel="noopener noreferrer">&lt;code>jaegerremotesampling&lt;/code>&lt;/a> extension.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p></description></item><item><title>otelcol.processor.attributes</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.processor.attributes/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.processor.attributes/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolprocessorattributes&#34;&gt;&lt;code&gt;otelcol.processor.attributes&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.attributes&lt;/code&gt; accepts telemetry data from other &lt;code&gt;otelcol&lt;/code&gt; components and modifies attributes of a span, log, or metric.
It also supports the ability to filter and match input data to determine if it should be included or excluded for attribute modifications.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.processor.attributes&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/processor/attributesprocessor&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;attributes&lt;/code&gt;&lt;/a&gt; processor.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.processor.attributes&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.processor.attributes &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  output {
    metrics = [...]
    logs    = [...]
    traces  = [...]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;otelcol.processor.attributes&lt;/code&gt; component doesn&amp;rsquo;t support any arguments. You can configure this component with blocks.&lt;/p&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.processor.attributes&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 15;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#output\&amp;#34;\u003e\u003ccode\u003eoutput\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures where to send received telemetry data.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#action\&amp;#34;\u003e\u003ccode\u003eaction\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eActions to take on the attributes of incoming metrics/logs/traces.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#exclude\&amp;#34;\u003e\u003ccode\u003eexclude\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eFilter for data excluded from this processor\u0026rsquo;s actions\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eexclude\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#attribute\&amp;#34;\u003e\u003ccode\u003eattribute\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eA list of attributes to match against.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eexclude\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#library\&amp;#34;\u003e\u003ccode\u003elibrary\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eA list of items to match the implementation library against.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eexclude\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#log_severity\&amp;#34;\u003e\u003ccode\u003elog_severity\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eHow to match against a log record\u0026rsquo;s SeverityNumber, if defined.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eexclude\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#regexp\&amp;#34;\u003e\u003ccode\u003eregexp\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eRegex cache settings.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eexclude\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#resource\&amp;#34;\u003e\u003ccode\u003eresource\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eA list of items to match the resources against.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#include\&amp;#34;\u003e\u003ccode\u003einclude\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eFilter for data included in this processor\u0026rsquo;s actions.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003einclude\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#attribute\&amp;#34;\u003e\u003ccode\u003eattribute\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eA list of attributes to match against.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003einclude\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#log_severity\&amp;#34;\u003e\u003ccode\u003elog_severity\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eHow to match against a log record\u0026rsquo;s SeverityNumber, if defined.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003einclude\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#library\&amp;#34;\u003e\u003ccode\u003elibrary\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eA list of items to match the implementation library against.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003einclude\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#regexp\&amp;#34;\u003e\u003ccode\u003eregexp\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eRegex cache settings.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003einclude\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#resource\&amp;#34;\u003e\u003ccode\u003eresource\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eA list of items to match the resources against.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures where to send received telemetry data.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#action&#34;&gt;&lt;code&gt;action&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Actions to take on the attributes of incoming metrics/logs/traces.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#exclude&#34;&gt;&lt;code&gt;exclude&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Filter for data excluded from this processor&amp;rsquo;s actions&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;exclude&lt;/code&gt; &amp;gt; &lt;a href=&#34;#attribute&#34;&gt;&lt;code&gt;attribute&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;A list of attributes to match against.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;exclude&lt;/code&gt; &amp;gt; &lt;a href=&#34;#library&#34;&gt;&lt;code&gt;library&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;A list of items to match the implementation library against.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;exclude&lt;/code&gt; &amp;gt; &lt;a href=&#34;#log_severity&#34;&gt;&lt;code&gt;log_severity&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;How to match against a log record&amp;rsquo;s SeverityNumber, if defined.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;exclude&lt;/code&gt; &amp;gt; &lt;a href=&#34;#regexp&#34;&gt;&lt;code&gt;regexp&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Regex cache settings.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;exclude&lt;/code&gt; &amp;gt; &lt;a href=&#34;#resource&#34;&gt;&lt;code&gt;resource&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;A list of items to match the resources against.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#include&#34;&gt;&lt;code&gt;include&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Filter for data included in this processor&amp;rsquo;s actions.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include&lt;/code&gt; &amp;gt; &lt;a href=&#34;#attribute&#34;&gt;&lt;code&gt;attribute&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;A list of attributes to match against.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include&lt;/code&gt; &amp;gt; &lt;a href=&#34;#log_severity&#34;&gt;&lt;code&gt;log_severity&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;How to match against a log record&amp;rsquo;s SeverityNumber, if defined.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include&lt;/code&gt; &amp;gt; &lt;a href=&#34;#library&#34;&gt;&lt;code&gt;library&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;A list of items to match the implementation library against.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include&lt;/code&gt; &amp;gt; &lt;a href=&#34;#regexp&#34;&gt;&lt;code&gt;regexp&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Regex cache settings.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include&lt;/code&gt; &amp;gt; &lt;a href=&#34;#resource&#34;&gt;&lt;code&gt;resource&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;A list of items to match the resources against.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;p&gt;If both an &lt;code&gt;include&lt;/code&gt; block and an &lt;code&gt;exclude&lt;/code&gt;block are specified, the &lt;code&gt;include&lt;/code&gt; properties are checked before the &lt;code&gt;exclude&lt;/code&gt; properties.&lt;/p&gt;
&lt;h3 id=&#34;output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;



&lt;div data-shared=&#34;reference/components/output-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;output&lt;/code&gt; block configures a set of components to forward resulting telemetry data to.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send logs to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send metrics to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;traces&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send traces to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You must specify the &lt;code&gt;output&lt;/code&gt; block, but all its arguments are optional.
By default, telemetry data is dropped.
Configure the &lt;code&gt;metrics&lt;/code&gt;, &lt;code&gt;logs&lt;/code&gt;, and &lt;code&gt;traces&lt;/code&gt; arguments accordingly to send telemetry data to other components.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;action&#34;&gt;&lt;code&gt;action&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;action&lt;/code&gt; block configures how to modify the span, log, or metric.&lt;/p&gt;
&lt;p&gt;The following attributes are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The attribute that the action relates to.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;action&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The type of action performed.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;value&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;any&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The value to populate for the key.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;pattern&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A regular expression pattern.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;from_attribute&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The attribute from the input data used to populate the attribute value.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;from_context&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The context value used to populate the attribute value.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;converted_type&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The type to convert the attribute value to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;code&gt;value&lt;/code&gt; data type must be either a number, string, or boolean.&lt;/p&gt;
&lt;p&gt;The supported values for &lt;code&gt;action&lt;/code&gt; are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;insert&lt;/code&gt;: Inserts an attribute in input data where the key doesn&amp;rsquo;t already exist.
&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;key&lt;/code&gt; attribute is required. It specifies the attribute to act upon.&lt;/li&gt;
&lt;li&gt;One of the &lt;code&gt;value&lt;/code&gt;, &lt;code&gt;from_attribute&lt;/code&gt; or &lt;code&gt;from_context&lt;/code&gt; attributes is required.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;update&lt;/code&gt;: Updates an attribute in input data where the key does exist.
&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;key&lt;/code&gt;attribute is required.
It specifies the attribute to act upon.&lt;/li&gt;
&lt;li&gt;One of the &lt;code&gt;value&lt;/code&gt;, &lt;code&gt;from_attribute&lt;/code&gt; or &lt;code&gt;from_context&lt;/code&gt; attributes is required.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;upsert&lt;/code&gt;: Either inserts an attribute in input data where the key doesn&amp;rsquo;t already exist or updates an attribute in input data where the key does exist.
&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;key&lt;/code&gt;attribute is required. It specifies the attribute to act upon.&lt;/li&gt;
&lt;li&gt;One of the &lt;code&gt;value&lt;/code&gt;, &lt;code&gt;from_attribute&lt;/code&gt; or &lt;code&gt;from_context&lt;/code&gt;attributes is required:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;value&lt;/code&gt; specifies the value to populate for the key.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;from_attribute&lt;/code&gt; specifies the attribute from the input data to use to populate the value.
If the attribute doesn&amp;rsquo;t exist, no action is performed.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;from_context&lt;/code&gt; specifies the context value used to populate the attribute value.
If the key is prefixed with &lt;code&gt;metadata.&lt;/code&gt;, the values are searched in the receiver&amp;rsquo;s transport protocol for additional information like gRPC Metadata or HTTP Headers.
If the key is prefixed with &lt;code&gt;auth.&lt;/code&gt;, the values are searched in the authentication information set by the server authenticator.
Refer to the server authenticator documentation part of your pipeline for more information about which attributes are available.
If the key is &lt;code&gt;client.address&lt;/code&gt;, the value will be set to the client address.
If the key doesn&amp;rsquo;t exist, no action is performed.
If the key has multiple values the values will be joined with a &lt;code&gt;;&lt;/code&gt; separator.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;hash&lt;/code&gt;: Hashes (SHA1) an attribute value.
&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;key&lt;/code&gt; attribute or the &lt;code&gt;pattern&lt;/code&gt; attributes is required.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;extract&lt;/code&gt;: Extracts values using a regular expression rule from the input key to target keys specified in the rule.
If a target key already exists, it will be overridden.
Note: It behaves similarly to the Span Processor &lt;code&gt;to_attributes&lt;/code&gt; setting with the attribute as the source.
&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;key&lt;/code&gt; attribute is required. It specifies the attribute to extract values from. The value of &lt;code&gt;key&lt;/code&gt; isn&amp;rsquo;t altered.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;pattern&lt;/code&gt; attribute is required. It&amp;rsquo;s the regular expression pattern used to extract attributes from the value of &lt;code&gt;key&lt;/code&gt;.
The submatchers must be named. If attributes already exist, they will be overwritten.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;convert&lt;/code&gt;: Converts an attribute to a specified type.
&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;key&lt;/code&gt; attribute is required. It specifies the attribute to act upon.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;converted_type&lt;/code&gt; attribute is required and must be one of int, double or string.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;delete&lt;/code&gt;: Deletes an attribute from the input data.
&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;key&lt;/code&gt; attribute or the &lt;code&gt;pattern&lt;/code&gt; attribute is required. It specifies the attribute to act upon.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h3 id=&#34;exclude&#34;&gt;&lt;code&gt;exclude&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;exclude&lt;/code&gt; block provides an option to exclude data from being fed into the [action] blocks based on the properties of a span, log, or metric records.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Signals excluded by the &lt;code&gt;exclude&lt;/code&gt; block will still be propagated to downstream components as-is.
If you would like to not propagate certain signals to downstream components,
consider a processor such as &lt;a href=&#34;../otelcol.processor.tail_sampling/&#34;&gt;otelcol.processor.tail_sampling&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;



&lt;div data-shared=&#34;reference/components/match-properties-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;match_type&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Controls how items to match against are interpreted.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;log_bodies&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of strings that the LogRecord&amp;rsquo;s body field must match against.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;log_severity_texts&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of strings that the LogRecord&amp;rsquo;s severity text field must match against.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metric_names&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of strings to match the metric name against.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;services&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of items to match the service name against.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;span_kinds&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of items to match the span kind against.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;span_names&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of items to match the span name against.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;match_type&lt;/code&gt; is required and you must set it to either &lt;code&gt;&amp;quot;regexp&amp;quot;&lt;/code&gt; or &lt;code&gt;&amp;quot;strict&amp;quot;&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;A match occurs if at least one item in the lists matches.&lt;/p&gt;
&lt;/div&gt;

        
&lt;p&gt;One of the following is also required:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For spans, one of &lt;code&gt;services&lt;/code&gt;, &lt;code&gt;span_names&lt;/code&gt;, &lt;code&gt;span_kinds&lt;/code&gt;, [attribute][], [resource][], or [library][] must be specified with a non-empty value for a valid configuration.
The &lt;code&gt;log_bodies&lt;/code&gt;, &lt;code&gt;log_severity_texts&lt;/code&gt;, &lt;code&gt;log_severity&lt;/code&gt;, and &lt;code&gt;metric_names&lt;/code&gt; attributes are invalid.&lt;/li&gt;
&lt;li&gt;For logs, one of &lt;code&gt;log_bodies&lt;/code&gt;, &lt;code&gt;log_severity_texts&lt;/code&gt;, &lt;code&gt;log_severity&lt;/code&gt;, [attribute][], [resource][], or [library][] must be specified with a non-empty value for a valid configuration.
The &lt;code&gt;span_names&lt;/code&gt;, &lt;code&gt;span_kinds&lt;/code&gt;, &lt;code&gt;metric_names&lt;/code&gt;, and &lt;code&gt;services&lt;/code&gt; attributes are invalid.&lt;/li&gt;
&lt;li&gt;For metrics, &lt;code&gt;metric_names&lt;/code&gt; must be specified with a valid non-empty value for a valid configuration.
The &lt;code&gt;span_names&lt;/code&gt;, &lt;code&gt;span_kinds&lt;/code&gt;, &lt;code&gt;log_bodies&lt;/code&gt;, &lt;code&gt;log_severity_texts&lt;/code&gt;, &lt;code&gt;log_severity&lt;/code&gt;, &lt;code&gt;services&lt;/code&gt;, [attribute][], [resource][], and [library][] attributes are invalid.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If the configuration includes filters which are specific to a particular signal type, it&amp;rsquo;s best to include only that signal type in the component&amp;rsquo;s output.
For example, adding a &lt;code&gt;span_names&lt;/code&gt; filter could cause the component to error if logs are configured in the component&amp;rsquo;s outputs.&lt;/p&gt;
&lt;h3 id=&#34;attribute&#34;&gt;&lt;code&gt;attribute&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-filter-attribute-block.md&#34;&gt;
            &lt;p&gt;This block specifies an attribute to match against:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You can define more than one &lt;code&gt;attribute&lt;/code&gt; block.&lt;/li&gt;
&lt;li&gt;Only &lt;code&gt;match_type = &amp;quot;strict&amp;quot;&lt;/code&gt; is allowed if &lt;code&gt;attribute&lt;/code&gt; is specified.&lt;/li&gt;
&lt;li&gt;All &lt;code&gt;attribute&lt;/code&gt; blocks must match exactly for a match to occur.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The attribute key.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;value&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;any&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The attribute value to match against.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If &lt;code&gt;value&lt;/code&gt; isn&amp;rsquo;t set, any value matches.
The type of &lt;code&gt;value&lt;/code&gt; could be a number, a string, or a boolean.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;library&#34;&gt;&lt;code&gt;library&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-filter-library-block.md&#34;&gt;
            &lt;p&gt;This block specifies properties to match the implementation library against:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;More than one &lt;code&gt;library&lt;/code&gt; block can be defined.&lt;/li&gt;
&lt;li&gt;A match occurs if the span&amp;rsquo;s implementation library matches at least one &lt;code&gt;library&lt;/code&gt; block.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The attribute key.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The version to match against.&lt;/td&gt;
              &lt;td&gt;null&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If &lt;code&gt;version&lt;/code&gt; is unset, any version matches.
If you set &lt;code&gt;version&lt;/code&gt; to an empty string, it only matches a library version, which is also an empty string.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;log_severity&#34;&gt;&lt;code&gt;log_severity&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-filter-log-severity-block.md&#34;&gt;
            &lt;p&gt;This block defines how to match based on a log record&amp;rsquo;s SeverityNumber field.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;match_undefined&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether logs with &amp;ldquo;undefined&amp;rdquo; severity match.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;min&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The lowest severity that may be matched.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If &lt;code&gt;match_undefined&lt;/code&gt; is true, entries with undefined severity will match.&lt;/p&gt;
&lt;p&gt;The following table lists the severities supported by OTel.
The value for &lt;code&gt;min&lt;/code&gt; should be one of the values in the &amp;ldquo;Log Severity&amp;rdquo; column.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Log Severity&lt;/th&gt;
              &lt;th&gt;Severity number&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;TRACE&lt;/td&gt;
              &lt;td&gt;1&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;TRACE2&lt;/td&gt;
              &lt;td&gt;2&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;TRACE3&lt;/td&gt;
              &lt;td&gt;3&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;TRACE4&lt;/td&gt;
              &lt;td&gt;4&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;DEBUG&lt;/td&gt;
              &lt;td&gt;5&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;DEBUG2&lt;/td&gt;
              &lt;td&gt;6&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;DEBUG3&lt;/td&gt;
              &lt;td&gt;7&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;DEBUG4&lt;/td&gt;
              &lt;td&gt;8&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;INFO&lt;/td&gt;
              &lt;td&gt;9&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;INFO2&lt;/td&gt;
              &lt;td&gt;10&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;INFO3&lt;/td&gt;
              &lt;td&gt;11&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;INFO4&lt;/td&gt;
              &lt;td&gt;12&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;WARN&lt;/td&gt;
              &lt;td&gt;13&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;WARN2&lt;/td&gt;
              &lt;td&gt;14&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;WARN3&lt;/td&gt;
              &lt;td&gt;15&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;WARN4&lt;/td&gt;
              &lt;td&gt;16&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;ERROR&lt;/td&gt;
              &lt;td&gt;17&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;ERROR2&lt;/td&gt;
              &lt;td&gt;18&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;ERROR3&lt;/td&gt;
              &lt;td&gt;19&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;ERROR4&lt;/td&gt;
              &lt;td&gt;20&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;FATAL&lt;/td&gt;
              &lt;td&gt;21&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;FATAL2&lt;/td&gt;
              &lt;td&gt;22&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;FATAL3&lt;/td&gt;
              &lt;td&gt;23&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;FATAL4&lt;/td&gt;
              &lt;td&gt;24&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;For example, if the &lt;code&gt;min&lt;/code&gt; attribute in the &lt;code&gt;log_severity&lt;/code&gt; block is &amp;ldquo;INFO&amp;rdquo;, then INFO, WARN, ERROR, and FATAL logs will match.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;regexp&#34;&gt;&lt;code&gt;regexp&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-filter-regexp-block.md&#34;&gt;
            &lt;p&gt;This block is an optional configuration for the &lt;code&gt;match_type&lt;/code&gt; of &lt;code&gt;&amp;quot;regexp&amp;quot;&lt;/code&gt;.
It configures a Least Recently Used (LRU) cache.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cache_enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Determines whether match results are LRU cached.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cache_max_num_entries&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The max number of entries of the LRU cache that stores match results.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;Enabling &lt;code&gt;cache_enabled&lt;/code&gt; could make subsequent matches faster.
Cache size is unlimited unless &lt;code&gt;cache_max_num_entries&lt;/code&gt; is also specified.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;cache_max_num_entries&lt;/code&gt; is ignored if &lt;code&gt;cache_enabled&lt;/code&gt; is false.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;resource&#34;&gt;&lt;code&gt;resource&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-filter-resource-block.md&#34;&gt;
            &lt;p&gt;This block specifies items to match the resources against:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;More than one &lt;code&gt;resource&lt;/code&gt; block can be defined.&lt;/li&gt;
&lt;li&gt;A match occurs if the input data resources match at least one &lt;code&gt;resource&lt;/code&gt; block.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The resource key.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;value&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;any&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The resource value to match against.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If &lt;code&gt;value&lt;/code&gt; isn&amp;rsquo;t set, any value matches.
The type of &lt;code&gt;value&lt;/code&gt; could be a number, a string, or a boolean.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;include&#34;&gt;&lt;code&gt;include&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;include&lt;/code&gt; block provides an option to include data being fed into the [action] blocks based on the properties of a span, log, or metric records.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/match-properties-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;match_type&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Controls how items to match against are interpreted.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;log_bodies&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of strings that the LogRecord&amp;rsquo;s body field must match against.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;log_severity_texts&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of strings that the LogRecord&amp;rsquo;s severity text field must match against.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metric_names&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of strings to match the metric name against.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;services&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of items to match the service name against.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;span_kinds&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of items to match the span kind against.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;span_names&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of items to match the span name against.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;match_type&lt;/code&gt; is required and you must set it to either &lt;code&gt;&amp;quot;regexp&amp;quot;&lt;/code&gt; or &lt;code&gt;&amp;quot;strict&amp;quot;&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;A match occurs if at least one item in the lists matches.&lt;/p&gt;
&lt;/div&gt;

        
&lt;p&gt;One of the following is also required:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For spans, one of &lt;code&gt;services&lt;/code&gt;, &lt;code&gt;span_names&lt;/code&gt;, &lt;code&gt;span_kinds&lt;/code&gt;, [attribute][], [resource][], or [library][] must be specified with a non-empty value for a valid configuration.
The &lt;code&gt;log_bodies&lt;/code&gt;, &lt;code&gt;log_severity_texts&lt;/code&gt;, &lt;code&gt;log_severity&lt;/code&gt;, and &lt;code&gt;metric_names&lt;/code&gt; attributes are invalid.&lt;/li&gt;
&lt;li&gt;For logs, one of &lt;code&gt;log_bodies&lt;/code&gt;, &lt;code&gt;log_severity_texts&lt;/code&gt;, &lt;code&gt;log_severity&lt;/code&gt;, [attribute][], [resource][], or [library][] must be specified with a non-empty value for a valid configuration.
The &lt;code&gt;span_names&lt;/code&gt;, &lt;code&gt;span_kinds&lt;/code&gt;, &lt;code&gt;metric_names&lt;/code&gt;, and &lt;code&gt;services&lt;/code&gt; attributes are invalid.&lt;/li&gt;
&lt;li&gt;For metrics, one of &lt;code&gt;metric_names&lt;/code&gt; or &lt;code&gt;resources&lt;/code&gt; must be specified with a valid non-empty value for a valid configuration.
The &lt;code&gt;span_names&lt;/code&gt;, &lt;code&gt;span_kinds&lt;/code&gt;, &lt;code&gt;log_bodies&lt;/code&gt;, &lt;code&gt;log_severity_texts&lt;/code&gt;, &lt;code&gt;log_severity&lt;/code&gt;, &lt;code&gt;services&lt;/code&gt;, [attribute][], [resource][], and [library][] attributes are invalid.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If the configuration includes filters which are specific to a particular signal type, it&amp;rsquo;s best to include only that signal type in the component&amp;rsquo;s output.
For example, adding a &lt;code&gt;span_names&lt;/code&gt; filter could cause the component to error if logs are configured in the component&amp;rsquo;s outputs.&lt;/p&gt;
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;The following fields are exported and can be referenced by other components:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&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;code&gt;input&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A value that other components can use to send telemetry data to.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;input&lt;/code&gt; accepts &lt;code&gt;otelcol.Consumer&lt;/code&gt; data for any telemetry signal (metrics, logs, or traces).&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.attributes&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.attributes&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;examples&#34;&gt;Examples&lt;/h2&gt;
&lt;h3 id=&#34;various-uses-of-the-action-block&#34;&gt;Various uses of the &lt;code&gt;action&lt;/code&gt; block&lt;/h3&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;otelcol.receiver.otlp &amp;#34;default&amp;#34; {
  http {}
  grpc {}

  output {
    metrics = [otelcol.processor.attributes.default.input]
    logs    = [otelcol.processor.attributes.default.input]
    traces  = [otelcol.processor.attributes.default.input]
  }
}

otelcol.processor.attributes &amp;#34;default&amp;#34; {
    // Inserts a new attribute &amp;#34;attribute1&amp;#34; to spans where
    // the key &amp;#34;attribute1&amp;#34; doesn&amp;#39;t exist.
    // The type of `attribute1` is inferred by the configuration.
    // `123` is an integer and is stored as an integer in the attributes.
    action {
        key = &amp;#34;attribute1&amp;#34;
        value = 123
        action = &amp;#34;insert&amp;#34;
    }

    // Inserts a new attribute with a key of &amp;#34;string key&amp;#34; and
    // a string value of &amp;#34;anotherkey&amp;#34;.
    action {
        key = &amp;#34;string key&amp;#34;
        value = &amp;#34;anotherkey&amp;#34;
        action = &amp;#34;insert&amp;#34;
    }

    // Setting an attribute on all spans.
    // Any spans that already had `region` now have value `planet-earth`.
    // This can be done to set properties for all traces without
    // requiring an instrumentation change.
    action {
        key = &amp;#34;region&amp;#34;
        value = &amp;#34;planet-earth&amp;#34;
        action = &amp;#34;upsert&amp;#34;
    }

    // The following demonstrates copying a value to a new key.
    // If a span doesn&amp;#39;t contain `user_key`, no new attribute `new_user_key` is created.
    action {
        key = &amp;#34;new_user_key&amp;#34;
        from_attribute = &amp;#34;user_key&amp;#34;
        action = &amp;#34;upsert&amp;#34;
    }

    // Hashing existing attribute values.
    action {
        key = &amp;#34;user.email&amp;#34;
        action = &amp;#34;hash&amp;#34;
    }

    // Uses the value from key `example_user_key` to upsert attributes
    // to the target keys specified in the `pattern`.
    // (Insert attributes for target keys that do not exist and update keys that exist.)
    // Given example_user_key = /api/v1/document/12345678/update/v1
    // then the following attributes will be inserted:
    // new_example_user_key: 12345678
    // version: v1
    //
    // Note: Similar to the Span Processor, if a target key already exists,
    // it will be updated.
    //
    // Note: The regex pattern is enclosed in backticks instead of quotation marks.
    // This constitutes a raw Alloy syntax string, and lets us avoid the need to escape backslash characters.
    action {
        key = &amp;#34;example_user_key&amp;#34;
        pattern = `\/api\/v1\/document\/(?P&amp;lt;new_user_key&amp;gt;.*)\/update\/(?P&amp;lt;version&amp;gt;.*)$`
        action = &amp;#34;extract&amp;#34;
    }

    // Converting the type of an existing attribute value.
    action {
        key = &amp;#34;http.status_code&amp;#34;
        converted_type = &amp;#34;int&amp;#34;
        action = &amp;#34;convert&amp;#34;
    }

    // Deleting keys from an attribute.
    action {
        key = &amp;#34;credit_card&amp;#34;
        action = &amp;#34;delete&amp;#34;
    }

    output {
        metrics = [otelcol.exporter.otlphttp.default.input]
        logs    = [otelcol.exporter.otlphttp.default.input]
        traces  = [otelcol.exporter.otlphttp.default.input]
    }
}

otelcol.exporter.otlphttp &amp;#34;default&amp;#34; {
  client {
    endpoint = sys.env(&amp;#34;OTLP_ENDPOINT&amp;#34;)
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;exclude-spans-based-on-attributes&#34;&gt;Exclude spans based on attributes&lt;/h3&gt;
&lt;p&gt;For example, the following spans match the properties and won&amp;rsquo;t be processed by the processor:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Span1 Name: &lt;code&gt;&amp;quot;svcB&amp;quot;, Attributes: {env: &amp;quot;dev&amp;quot;, test_request: 123, credit_card: 1234}&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Span2 Name: &lt;code&gt;&amp;quot;svcA&amp;quot;, Attributes: {env: &amp;quot;dev&amp;quot;, test_request: false}&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following spans don&amp;rsquo;t match the properties and the processor actions are applied to it:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Span3 Name: &lt;code&gt;&amp;quot;svcB&amp;quot;, Attributes: {env: 1, test_request: &amp;quot;dev&amp;quot;, credit_card: 1234}&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Span4 Name: &lt;code&gt;&amp;quot;svcC&amp;quot;, Attributes: {env: &amp;quot;dev&amp;quot;, test_request: false}&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Due to the presence of the &lt;code&gt;services&lt;/code&gt; attribute, this configuration works only for trace signals.
This is why only traces are configured in the &lt;code&gt;output&lt;/code&gt; block.&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;otelcol.processor.attributes &amp;#34;default&amp;#34; {
    exclude {
        match_type = &amp;#34;strict&amp;#34;
        services = [&amp;#34;svcA&amp;#34;, &amp;#34;svcB&amp;#34;]
        attribute {
            key = &amp;#34;env&amp;#34;
            value = &amp;#34;dev&amp;#34;
        }
        attribute {
            key = &amp;#34;test_request&amp;#34;
        }
    }
    action {
        key = &amp;#34;credit_card&amp;#34;
        action = &amp;#34;delete&amp;#34;
    }
    action {
        key = &amp;#34;duplicate_key&amp;#34;
        action = &amp;#34;delete&amp;#34;
    }
    output {
        traces  = [otelcol.exporter.otlphttp.default.input]
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;exclude-spans-based-on-resources&#34;&gt;Exclude spans based on resources&lt;/h3&gt;
&lt;p&gt;A &amp;ldquo;strict&amp;rdquo; &lt;code&gt;match_type&lt;/code&gt; means that you must strictly match the &lt;code&gt;resource&lt;/code&gt; key/value pairs.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;resource&lt;/code&gt; attribute isn&amp;rsquo;t used for metrics, which is why metrics aren&amp;rsquo;t configured in the component output.&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;otelcol.processor.attributes &amp;#34;default&amp;#34; {
    exclude {
        match_type = &amp;#34;strict&amp;#34;
        resource {
            key = &amp;#34;host.type&amp;#34;
            value = &amp;#34;n1-standard-1&amp;#34;
        }
    }
    action {
        key = &amp;#34;credit_card&amp;#34;
        action = &amp;#34;delete&amp;#34;
    }
    action {
        key = &amp;#34;duplicate_key&amp;#34;
        action = &amp;#34;delete&amp;#34;
    }
    output {
        logs    = [otelcol.exporter.otlphttp.default.input]
        traces  = [otelcol.exporter.otlphttp.default.input]
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;exclude-spans-based-on-a-specific-library-version&#34;&gt;Exclude spans based on a specific library version&lt;/h3&gt;
&lt;p&gt;A &amp;ldquo;strict&amp;rdquo; &lt;code&gt;match_type&lt;/code&gt; means that you must strictly match the &lt;code&gt;library&lt;/code&gt; key/value pairs.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;library&lt;/code&gt; attribute isn&amp;rsquo;t used for metrics, which is why metrics aren&amp;rsquo;t configured in the component output.&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;otelcol.processor.attributes &amp;#34;default&amp;#34; {
    exclude {
        match_type = &amp;#34;strict&amp;#34;
        library {
            name = &amp;#34;mongo-java-driver&amp;#34;
            version = &amp;#34;3.8.0&amp;#34;
        }
    }
    action {
        key = &amp;#34;credit_card&amp;#34;
        action = &amp;#34;delete&amp;#34;
    }
    action {
        key = &amp;#34;duplicate_key&amp;#34;
        action = &amp;#34;delete&amp;#34;
    }
    output {
        logs    = [otelcol.exporter.otlphttp.default.input]
        traces  = [otelcol.exporter.otlphttp.default.input]
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;include-and-exclude-spans-based-on-regular-expressions-and-services&#34;&gt;Include and exclude spans based on regular expressions and services&lt;/h3&gt;
&lt;p&gt;This processor will remove the &amp;ldquo;token&amp;rdquo; attribute and will obfuscate the &amp;ldquo;password&amp;rdquo; attribute in spans where the service name matches &lt;code&gt;&amp;quot;auth.*&amp;quot;&lt;/code&gt; and where the span name doesn&amp;rsquo;t match &lt;code&gt;&amp;quot;login.*&amp;quot;&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Due to the presence of the &lt;code&gt;services&lt;/code&gt; and &lt;code&gt;span_names&lt;/code&gt; attributes, this configuration works only for trace signals.
This is why only traces are configured in the &lt;code&gt;output&lt;/code&gt; block.&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;otelcol.processor.attributes &amp;#34;default&amp;#34; {
    // Specifies the span properties that must exist for the processor to be applied.
    include {
        // &amp;#34;match_type&amp;#34; defines that &amp;#34;services&amp;#34; is an array of regexp-es.
        match_type = &amp;#34;regexp&amp;#34;
        // The span service name must match &amp;#34;auth.*&amp;#34; pattern.
        services = [&amp;#34;auth.*&amp;#34;]
    }

    exclude {
        // &amp;#34;match_type&amp;#34; defines that &amp;#34;span_names&amp;#34; is an array of regexp-es.
        match_type = &amp;#34;regexp&amp;#34;
        // The span name must not match &amp;#34;login.*&amp;#34; pattern.
        span_names = [&amp;#34;login.*&amp;#34;]
    }

    action {
        key = &amp;#34;password&amp;#34;
        action = &amp;#34;update&amp;#34;
        value = &amp;#34;obfuscated&amp;#34;
    }

    action {
        key = &amp;#34;token&amp;#34;
        action = &amp;#34;delete&amp;#34;
    }

    output {
        traces  = [otelcol.exporter.otlphttp.default.input]
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;include-spans-based-on-regular-expressions-and-attributes&#34;&gt;Include spans based on regular expressions and attributes&lt;/h3&gt;
&lt;p&gt;The following demonstrates how to process spans with attributes that match a regular expression pattern.
This processor will obfuscate the &lt;code&gt;db.statement&lt;/code&gt; attribute in spans where the &lt;code&gt;db.statement&lt;/code&gt; attribute matches a regular expression pattern.&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;otelcol.processor.attributes &amp;#34;default&amp;#34; {
    include {
        // &amp;#34;match_type&amp;#34; of &amp;#34;regexp&amp;#34; defines that the &amp;#34;value&amp;#34; attributes 
        // in the &amp;#34;attribute&amp;#34; blocks are regexp-es.
        match_type = &amp;#34;regexp&amp;#34;

        // This attribute (&amp;#39;db.statement&amp;#39;) must exist in the span and match 
        // the regex (&amp;#39;SELECT \* FROM USERS.*&amp;#39;) for a match.
        attribute {
            key = &amp;#34;db.statement&amp;#34;
            value = &amp;#34;SELECT \* FROM USERS.*&amp;#34;
        }
    }

    action {
        key = &amp;#34;db.statement&amp;#34;
        action = &amp;#34;update&amp;#34;
        value = &amp;#34;SELECT * FROM USERS [obfuscated]&amp;#34;
    }

    output {
        metrics = [otelcol.exporter.otlphttp.default.input]
        logs    = [otelcol.exporter.otlphttp.default.input]
        traces  = [otelcol.exporter.otlphttp.default.input]
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;include-spans-based-on-a-regular-expression-of-log-body&#34;&gt;Include spans based on a regular expression of log body&lt;/h3&gt;
&lt;p&gt;This processor removes the &amp;ldquo;token&amp;rdquo; attribute and obfuscates the &amp;ldquo;password&amp;rdquo; attribute in spans where the log body matches &lt;code&gt;&amp;quot;AUTH.*&amp;quot;&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Due to the presence of the &lt;code&gt;log_bodies&lt;/code&gt; attribute, this configuration works only for log signals.
This is why only logs are configured in the &lt;code&gt;output&lt;/code&gt; block.&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;otelcol.processor.attributes &amp;#34;default&amp;#34; {
    include {
        match_type = &amp;#34;regexp&amp;#34;
        log_bodies = [&amp;#34;AUTH.*&amp;#34;]
    }
    action {
        key = &amp;#34;password&amp;#34;
        action = &amp;#34;update&amp;#34;
        value = &amp;#34;obfuscated&amp;#34;
    }
    action {
        key = &amp;#34;token&amp;#34;
        action = &amp;#34;delete&amp;#34;
    }

    output {
        logs    = [otelcol.exporter.otlphttp.default.input]
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;include-spans-based-on-a-regular-expression-of-log-severity&#34;&gt;Include spans based on a regular expression of log severity&lt;/h3&gt;
&lt;p&gt;The following example demonstrates how to process logs that have a severity level which is equal to or higher than the level specified in the &lt;code&gt;log_severity&lt;/code&gt; block.
This processor removes the &amp;ldquo;token&amp;rdquo; attribute and obfuscates the &amp;ldquo;password&amp;rdquo; attribute in logs where the severity is at least &lt;code&gt;&amp;quot;INFO&amp;quot;&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Due to the presence of the &lt;code&gt;log_severity&lt;/code&gt; attribute, this configuration works only for log signals.
This is why only logs are configured in the &lt;code&gt;output&lt;/code&gt; block.&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;otelcol.processor.attributes &amp;#34;default&amp;#34; {
    include {
        match_type = &amp;#34;regexp&amp;#34;
        log_severity {
            min = &amp;#34;INFO&amp;#34;
            match_undefined = true
        }
    }
    action {
        key = &amp;#34;password&amp;#34;
        action = &amp;#34;update&amp;#34;
        value = &amp;#34;obfuscated&amp;#34;
    }
    action {
        key = &amp;#34;token&amp;#34;
        action = &amp;#34;delete&amp;#34;
    }

    output {
        logs    = [otelcol.exporter.otlphttp.default.input]
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;include-spans-based-on-a-regular-expression-of-log-severity-text&#34;&gt;Include spans based on a regular expression of log severity text&lt;/h3&gt;
&lt;p&gt;The following demonstrates how to process logs that have a severity text that match regular expression patterns.
This processor removes the &amp;ldquo;token&amp;rdquo; attribute and obfuscates the &amp;ldquo;password&amp;rdquo; attribute in logs where severity matches &amp;ldquo;info&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Due to the presence of the &lt;code&gt;log_severity_texts&lt;/code&gt; attribute, this configuration works only for log signals.
This is why only logs are configured in the &lt;code&gt;output&lt;/code&gt; block.&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;otelcol.processor.attributes &amp;#34;default&amp;#34; {
    include {
        match_type = &amp;#34;regexp&amp;#34;
        log_severity_texts = [&amp;#34;info.*&amp;#34;]
    }
    action {
        key = &amp;#34;password&amp;#34;
        action = &amp;#34;update&amp;#34;
        value = &amp;#34;obfuscated&amp;#34;
    }
    action {
        key = &amp;#34;token&amp;#34;
        action = &amp;#34;delete&amp;#34;
    }

    output {
        logs    = [otelcol.exporter.otlphttp.default.input]
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;include-metrics-based-on-metric-names&#34;&gt;Include metrics based on metric names&lt;/h3&gt;
&lt;p&gt;The following demonstrates how to process metrics that have a name starting with &amp;ldquo;counter&amp;rdquo;.
This processor will add a label called &lt;code&gt;&amp;quot;important_label&amp;quot;&lt;/code&gt; with a value of &lt;code&gt;&amp;quot;label_val&amp;quot;&lt;/code&gt; to the metric.
If the label already exists, its value will be updated.&lt;/p&gt;
&lt;p&gt;Due to the presence of the &lt;code&gt;metric_names&lt;/code&gt; attribute, this configuration works only for metric signals.
This is why only metrics are configured in the &lt;code&gt;output&lt;/code&gt; block.&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;otelcol.processor.attributes &amp;#34;default&amp;#34; {
    include {
        match_type = &amp;#34;regexp&amp;#34;
        metric_names = [&amp;#34;counter.*&amp;#34;]
    }
    action {
        key = &amp;#34;important_label&amp;#34;
        action = &amp;#34;upsert&amp;#34;
        value = &amp;#34;label_val&amp;#34;
    }

    output {
        metrics = [otelcol.exporter.otlphttp.default.input]
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.attributes&lt;/code&gt; can accept arguments from the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that export &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-exporters&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.attributes&lt;/code&gt; has exports that can be consumed by the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that consume &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-consumers&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;]]></content><description>&lt;h1 id="otelcolprocessorattributes">&lt;code>otelcol.processor.attributes&lt;/code>&lt;/h1>
&lt;p>&lt;code>otelcol.processor.attributes&lt;/code> accepts telemetry data from other &lt;code>otelcol&lt;/code> components and modifies attributes of a span, log, or metric.
It also supports the ability to filter and match input data to determine if it should be included or excluded for attribute modifications.&lt;/p></description></item><item><title>otelcol.processor.batch</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.processor.batch/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.processor.batch/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolprocessorbatch&#34;&gt;&lt;code&gt;otelcol.processor.batch&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.batch&lt;/code&gt; accepts telemetry data from other &lt;code&gt;otelcol&lt;/code&gt; components and places them into batches.
Batching improves the compression of data and reduces the number of outgoing network requests required to transmit data.
This processor supports both size and time based batching.&lt;/p&gt;
&lt;p&gt;Grafana Labs strongly recommends that you configure the batch processor on every Alloy that uses OpenTelemetry (otelcol) Alloy components.
Define the batch processor in the pipeline after the &lt;code&gt;otelcol.processor.memory_limiter&lt;/code&gt; as well as any sampling processors.
Batching should happen after any processing that drops data such as sampling.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.processor.batch&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector/tree/v0.147.0/processor/batchprocessor&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;batch&lt;/code&gt;&lt;/a&gt; processor.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.processor.batch&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.processor.batch &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  output {
    metrics = [...]
    logs    = [...]
    traces  = [...]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.processor.batch&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metadata_cardinality_limit&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Limit of the unique metadata key/value combinations.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1000&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metadata_keys&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Creates a different batch processor for each key/value combination of metadata.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;send_batch_max_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Upper limit of a batch size.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;3000&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;send_batch_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Number of spans, log records, or metric data points that trigger a batch to be sent.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;2000&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How long to wait before flushing the batch.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;200ms&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;otelcol.processor.batch&lt;/code&gt; accumulates data into a batch until one of the following events happens:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The duration specified by &lt;code&gt;timeout&lt;/code&gt; elapses since the time the last batch was sent.&lt;/li&gt;
&lt;li&gt;The number of spans, log records, or metric data points processed reaches or exceeds the number specified by &lt;code&gt;send_batch_size&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;send_batch_size&lt;/code&gt; acts as a trigger threshold, not the exact batch size. When data arrives in large chunks, the actual batch size may exceed &lt;code&gt;send_batch_size&lt;/code&gt; unless you configure &lt;code&gt;send_batch_max_size&lt;/code&gt; to enforce an upper limit.&lt;/p&gt;
&lt;p&gt;Logs, traces, and metrics are processed independently.
For example, if &lt;code&gt;send_batch_size&lt;/code&gt; is set to &lt;code&gt;1000&lt;/code&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The processor may, at the same time, buffer 1,000 spans, 1,000 log records, and 1,000 metric data points before flushing them.&lt;/li&gt;
&lt;li&gt;If there are enough spans for a batch of spans, for example 1,000 or more, but not enough for a batch of metric data points, for example less than 1,000, then only the spans are flushed.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Use &lt;code&gt;send_batch_max_size&lt;/code&gt; to limit the amount of data contained in a single batch:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;When set to &lt;code&gt;0&lt;/code&gt;, batches can be any size.&lt;/li&gt;
&lt;li&gt;When set to a non-zero value, &lt;code&gt;send_batch_max_size&lt;/code&gt; must be greater than or equal to &lt;code&gt;send_batch_size&lt;/code&gt;.
Every batch contains up to the &lt;code&gt;send_batch_max_size&lt;/code&gt; number of spans, log records, or metric data points.
The excess spans, log records, or metric data points aren&amp;rsquo;t lost - instead, they&amp;rsquo;re added to the next batch.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For example, assume you set &lt;code&gt;send_batch_size&lt;/code&gt; to &lt;code&gt;8192&lt;/code&gt; and there are 8,000 batched spans.
If the batch processor receives 8,000 more spans at once, its behavior depends on how you configure &lt;code&gt;send_batch_max_size&lt;/code&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If you set &lt;code&gt;send_batch_max_size&lt;/code&gt; to &lt;code&gt;0&lt;/code&gt;, the total batch size would be 16,000 spans which are then flushed as a single batch.&lt;/li&gt;
&lt;li&gt;If you set &lt;code&gt;send_batch_max_size&lt;/code&gt; to &lt;code&gt;10000&lt;/code&gt;, then the batch has a limit of 10,000 spans and the processor adds the remaining 6,000 spans to the next batch.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This demonstrates how &lt;code&gt;send_batch_size&lt;/code&gt; acts as a trigger while &lt;code&gt;send_batch_max_size&lt;/code&gt; enforces the actual maximum batch size.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;metadata_cardinality_limit&lt;/code&gt; applies for the lifetime of the process.&lt;/p&gt;
&lt;p&gt;Configure receivers with &lt;code&gt;include_metadata = true&lt;/code&gt; so that metadata keys are available to the processor.&lt;/p&gt;
&lt;p&gt;Each distinct combination of metadata triggers the allocation of a background task in the Alloy process that runs for the lifetime of the process, and each background task holds one pending batch of up to &lt;code&gt;send_batch_size&lt;/code&gt; telemetry items such as spans, log records, or metric data points.
Batching by metadata can therefore substantially increase the amount of memory dedicated to batching.&lt;/p&gt;
&lt;p&gt;The maximum number of distinct combinations is limited to the configured &lt;code&gt;metadata_cardinality_limit&lt;/code&gt;, which defaults to 1000 to limit memory impact.&lt;/p&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.processor.batch&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 2;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#output\&amp;#34;\u003e\u003ccode\u003eoutput\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures where to send received telemetry data.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures where to send received telemetry data.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;



&lt;div data-shared=&#34;reference/components/output-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;output&lt;/code&gt; block configures a set of components to forward resulting telemetry data to.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send logs to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send metrics to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;traces&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send traces to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You must specify the &lt;code&gt;output&lt;/code&gt; block, but all its arguments are optional.
By default, telemetry data is dropped.
Configure the &lt;code&gt;metrics&lt;/code&gt;, &lt;code&gt;logs&lt;/code&gt;, and &lt;code&gt;traces&lt;/code&gt; arguments accordingly to send telemetry data to other components.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;The following fields are exported and can be referenced by other components:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&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;code&gt;input&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A value that other components can use to send telemetry data to.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;input&lt;/code&gt; accepts &lt;code&gt;otelcol.Consumer&lt;/code&gt; data for any telemetry signal including metrics, logs, or traces.&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.batch&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.batch&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;debug-metrics&#34;&gt;Debug metrics&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;otelcol_processor_batch_batch_send_size_bytes&lt;/code&gt; (histogram): Number of bytes in each sent batch.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;otelcol_processor_batch_batch_send_size&lt;/code&gt; (histogram): Number of units in the batch.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;otelcol_processor_batch_batch_size_trigger_send_total&lt;/code&gt; (counter): Number of times a batch was sent due to a size trigger.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;otelcol_processor_batch_metadata_cardinality&lt;/code&gt; (gauge): Number of distinct metadata value combinations processed.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;otelcol_processor_batch_timeout_trigger_send_total&lt;/code&gt; (counter): Number of times a batch was sent due to a timeout trigger.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;examples&#34;&gt;Examples&lt;/h2&gt;
&lt;h3 id=&#34;basic-usage&#34;&gt;Basic usage&lt;/h3&gt;
&lt;p&gt;This example batches telemetry data before sending it to &lt;a href=&#34;../otelcol.exporter.otlphttp/&#34;&gt;&lt;code&gt;otelcol.exporter.otlphttp&lt;/code&gt;&lt;/a&gt; for further processing:&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;otelcol.processor.batch &amp;#34;default&amp;#34; {
  output {
    metrics = [otelcol.exporter.otlphttp.production.input]
    logs    = [otelcol.exporter.otlphttp.production.input]
    traces  = [otelcol.exporter.otlphttp.production.input]
  }
}

otelcol.exporter.otlphttp &amp;#34;production&amp;#34; {
  client {
    endpoint = sys.env(&amp;#34;OTLP_SERVER_ENDPOINT&amp;#34;)
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;batching-with-a-timeout&#34;&gt;Batching with a timeout&lt;/h3&gt;
&lt;p&gt;This example buffers up to 1000 spans, log records, or metric data points for up to 10 seconds.
Because &lt;code&gt;send_batch_max_size&lt;/code&gt; is set to 0, the actual batch size may exceed 1000 if large amounts of data arrive simultaneously.&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;otelcol.processor.batch &amp;#34;default&amp;#34; {
  timeout = &amp;#34;10s&amp;#34;
  send_batch_size = 1000
  send_batch_max_size = 0

  output {
    metrics = [otelcol.exporter.otlphttp.production.input]
    logs    = [otelcol.exporter.otlphttp.production.input]
    traces  = [otelcol.exporter.otlphttp.production.input]
  }
}

otelcol.exporter.otlphttp &amp;#34;production&amp;#34; {
  client {
    endpoint = sys.env(&amp;#34;OTLP_SERVER_ENDPOINT&amp;#34;)
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;metadata-based-batching&#34;&gt;Metadata-based batching&lt;/h3&gt;
&lt;p&gt;Batching by metadata enables support for multi-tenant OpenTelemetry pipelines with batching over groups of data having the same authorization metadata.&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;otelcol.receiver.jaeger &amp;#34;default&amp;#34; {
  protocols {
    grpc {
      include_metadata = true
    }
    thrift_http {}
    thrift_binary {}
    thrift_compact {}
  }

  output {
    traces = [otelcol.processor.batch.default.input]
  }
}

otelcol.processor.batch &amp;#34;default&amp;#34; {
  // batch data by tenant id
  metadata_keys = [&amp;#34;tenant_id&amp;#34;]
  // limit to 10 batch processor instances before raising errors
  metadata_cardinality_limit = 123

  output {
    traces  = [otelcol.exporter.otlphttp.production.input]
  }
}

otelcol.exporter.otlphttp &amp;#34;production&amp;#34; {
  client {
    endpoint = sys.env(&amp;#34;OTLP_SERVER_ENDPOINT&amp;#34;)
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.batch&lt;/code&gt; can accept arguments from the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that export &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-exporters&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.batch&lt;/code&gt; has exports that can be consumed by the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that consume &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-consumers&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolprocessorbatch">&lt;code>otelcol.processor.batch&lt;/code>&lt;/h1>
&lt;p>&lt;code>otelcol.processor.batch&lt;/code> accepts telemetry data from other &lt;code>otelcol&lt;/code> components and places them into batches.
Batching improves the compression of data and reduces the number of outgoing network requests required to transmit data.
This processor supports both size and time based batching.&lt;/p></description></item><item><title>otelcol.processor.cumulativetodelta</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.processor.cumulativetodelta/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.processor.cumulativetodelta/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolprocessorcumulativetodelta&#34;&gt;&lt;code&gt;otelcol.processor.cumulativetodelta&lt;/code&gt;&lt;/h1&gt;


&lt;div data-shared=&#34;stability/public_preview.md&#34;&gt;
            &lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Public preview&lt;/strong&gt;: This is a &lt;a href=&#34;/docs/release-life-cycle/&#34;&gt;public preview&lt;/a&gt; component.
Public preview components are subject to breaking changes, and may be replaced with equivalent functionality that cover the same use case.
To enable and use a public preview component, you must set the &lt;code&gt;stability.level&lt;/code&gt; 
    &lt;a href=&#34;/docs/alloy/v1.15/reference/cli/run/&#34;&gt;flag&lt;/a&gt; to &lt;code&gt;public-preview&lt;/code&gt; or below.&lt;/p&gt;&lt;/blockquote&gt;
&lt;/div&gt;

        
&lt;p&gt;&lt;code&gt;otelcol.processor.cumulativetodelta&lt;/code&gt; accepts metrics from other &lt;code&gt;otelcol&lt;/code&gt; components and converts metrics with the cumulative temporality to delta.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.processor.cumulativetodelta&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/processor/cumulativetodeltaprocessor&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;cumulativetodelta&lt;/code&gt;&lt;/a&gt; processor.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.processor.cumulativetodelta&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.processor.cumulativetodelta &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  output {
    metrics = [...]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.processor.cumulativetodelta&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;initial_value&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Handling of the first observed point for a given metric identity.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;auto&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_staleness&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The total time a state entry will live past the time it was last seen.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;otelcol.processor.cumulativetodelta&lt;/code&gt; tracks incoming metric streams.
Sum and exponential histogram metrics with delta temporality are tracked and converted into cumulative temporality.&lt;/p&gt;
&lt;p&gt;If a new sample hasn&amp;rsquo;t been received since the duration specified by &lt;code&gt;max_staleness&lt;/code&gt;, tracked streams are considered stale and dropped.
When set to &lt;code&gt;&amp;quot;0&amp;quot;&lt;/code&gt;, the state is retained indefinitely.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;initial_value&lt;/code&gt; sets the handling of the first observed point for a given metric identity.
When the collector (re)starts, there&amp;rsquo;s no record of how much of a given cumulative counter has already been converted to delta values.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;auto&amp;quot;&lt;/code&gt; (default): Send the observed value if the start time is set AND the start time happens after the component started AND the start time is different from the timestamp.
This is suitable for gateway deployments.
This heuristic is like &lt;code&gt;drop&lt;/code&gt;, but it keeps values for newly started counters which couldn&amp;rsquo;t have had previous observed values.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;keep&amp;quot;&lt;/code&gt;: Send the observed value as the delta value. This is suitable for when the incoming metrics haven&amp;rsquo;t been observed before.
For example, when you are running the collector as a sidecar, the collector lifecycle is tied to the metric source.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;drop&amp;quot;&lt;/code&gt;: Keep the observed value but don&amp;rsquo;t send it. This is suitable for gateway deployments.
It guarantees that all delta counts it produces haven&amp;rsquo;t been observed before, but drops the values between the first two observations.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.processor.cumulativetodelta&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 4;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#output\&amp;#34;\u003e\u003ccode\u003eoutput\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures where to send received telemetry data.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#exclude\&amp;#34;\u003e\u003ccode\u003eexclude\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures which metrics to not convert to delta.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#include\&amp;#34;\u003e\u003ccode\u003einclude\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures which metrics to convert to delta.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures where to send received telemetry data.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#exclude&#34;&gt;&lt;code&gt;exclude&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures which metrics to not convert to delta.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#include&#34;&gt;&lt;code&gt;include&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures which metrics to convert to delta.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;p&gt;If metric matches both &lt;code&gt;include&lt;/code&gt; and &lt;code&gt;exclude&lt;/code&gt;, exclude takes preference.
If neither &lt;code&gt;include&lt;/code&gt; nor &lt;code&gt;exclude&lt;/code&gt; are supplied, no filtering is applied.&lt;/p&gt;
&lt;h3 id=&#34;output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;



&lt;div data-shared=&#34;reference/components/output-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;output&lt;/code&gt; block configures a set of components to forward resulting telemetry data to.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send logs to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send metrics to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;traces&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send traces to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You must specify the &lt;code&gt;output&lt;/code&gt; block, but all its arguments are optional.
By default, telemetry data is dropped.
Configure the &lt;code&gt;metrics&lt;/code&gt;, &lt;code&gt;logs&lt;/code&gt;, and &lt;code&gt;traces&lt;/code&gt; arguments accordingly to send telemetry data to other components.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;include&#34;&gt;&lt;code&gt;include&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;include&lt;/code&gt; block configures which metrics to convert to delta.&lt;/p&gt;
&lt;p&gt;The following attributes are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;match_type&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Match type to use, &lt;code&gt;strict&lt;/code&gt; or &lt;code&gt;regexp&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metric_types&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Metric types to convert to delta.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Names or patterns to convert to delta.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If one of &lt;code&gt;metrics&lt;/code&gt; or &lt;code&gt;match_type&lt;/code&gt; is supplied, the other must be supplied too.&lt;/p&gt;
&lt;p&gt;Valid values for &lt;code&gt;metric_types&lt;/code&gt; are &lt;code&gt;sum&lt;/code&gt; and &lt;code&gt;histogram&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;exclude&#34;&gt;&lt;code&gt;exclude&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;exclude&lt;/code&gt; block configures which metrics not to convert to delta.
&lt;code&gt;exclude&lt;/code&gt; takes precedence over &lt;code&gt;include&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;The following attributes are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;match_type&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Match type to use, &lt;code&gt;strict&lt;/code&gt; or &lt;code&gt;regexp&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metric_types&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Metric types to exclude when converting to delta.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Names or patterns to exclude when converting to delta.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If one of &lt;code&gt;metrics&lt;/code&gt; or &lt;code&gt;match_type&lt;/code&gt; is supplied, the other must be supplied too.&lt;/p&gt;
&lt;p&gt;Valid values for &lt;code&gt;metric_types&lt;/code&gt; are &lt;code&gt;sum&lt;/code&gt; and &lt;code&gt;histogram&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;The following fields are exported and can be referenced by other components:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&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;code&gt;input&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A value that other components can use to send telemetry data to.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;input&lt;/code&gt; accepts &lt;code&gt;otelcol.Consumer&lt;/code&gt; data for metrics.&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.cumulativetodelta&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.cumulativetodelta&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;p&gt;This example converts cumulative temporality metrics to delta before sending it to &lt;a href=&#34;../otelcol.exporter.otlphttp/&#34;&gt;&lt;code&gt;otelcol.exporter.otlphttp&lt;/code&gt;&lt;/a&gt; for further processing.&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;otelcol.processor.cumulativetodelta &amp;#34;default&amp;#34; {
  output {
    metrics = [otelcol.exporter.otlphttp.production.input]
  }
}

otelcol.exporter.otlphttp &amp;#34;production&amp;#34; {
  client {
    endpoint = sys.env(&amp;#34;OTLP_SERVER_ENDPOINT&amp;#34;)
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.cumulativetodelta&lt;/code&gt; can accept arguments from the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that export &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-exporters&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.cumulativetodelta&lt;/code&gt; has exports that can be consumed by the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that consume &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-consumers&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolprocessorcumulativetodelta">&lt;code>otelcol.processor.cumulativetodelta&lt;/code>&lt;/h1>
&lt;div data-shared="stability/public_preview.md">
&lt;blockquote>
&lt;p>&lt;strong>Public preview&lt;/strong>: This is a &lt;a href="/docs/release-life-cycle/">public preview&lt;/a> component.
Public preview components are subject to breaking changes, and may be replaced with equivalent functionality that cover the same use case.
To enable and use a public preview component, you must set the &lt;code>stability.level&lt;/code>
&lt;a href="/docs/alloy/v1.15/reference/cli/run/">flag&lt;/a> to &lt;code>public-preview&lt;/code> or below.&lt;/p></description></item><item><title>otelcol.processor.deltatocumulative</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.processor.deltatocumulative/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.processor.deltatocumulative/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolprocessordeltatocumulative&#34;&gt;&lt;code&gt;otelcol.processor.deltatocumulative&lt;/code&gt;&lt;/h1&gt;


&lt;div data-shared=&#34;stability/experimental.md&#34;&gt;
            &lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;EXPERIMENTAL&lt;/strong&gt;: This is an &lt;a href=&#34;/docs/release-life-cycle/&#34;&gt;experimental&lt;/a&gt; component.
Experimental components are subject to frequent breaking changes, and may be removed with no equivalent replacement.
To enable and use an experimental component, you must set the &lt;code&gt;stability.level&lt;/code&gt; 
    &lt;a href=&#34;/docs/alloy/v1.15/reference/cli/run/&#34;&gt;flag&lt;/a&gt; to &lt;code&gt;experimental&lt;/code&gt;.&lt;/p&gt;&lt;/blockquote&gt;
&lt;/div&gt;

        
&lt;p&gt;&lt;code&gt;otelcol.processor.deltatocumulative&lt;/code&gt; accepts metrics from other &lt;code&gt;otelcol&lt;/code&gt; components and converts metrics with the delta temporality to cumulative.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.processor.deltatocumulative&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/processor/deltatocumulativeprocessor&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;deltatocumulative&lt;/code&gt;&lt;/a&gt; processor.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.processor.deltatocumulative&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.processor.deltatocumulative &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  output {
    metrics = [...]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.processor.deltatocumulative&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_stale&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How long to wait for a new sample before marking a stream as stale.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;5m&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_streams&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Upper limit of streams to track. Set to &lt;code&gt;0&lt;/code&gt; to disable.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;9223372036854775807&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;otelcol.processor.deltatocumulative&lt;/code&gt; tracks incoming metric streams.
Sum and exponential histogram metrics with delta temporality are tracked and converted into cumulative temporality.&lt;/p&gt;
&lt;p&gt;If a new sample hasn&amp;rsquo;t been received since the duration specified by &lt;code&gt;max_stale&lt;/code&gt;, tracked streams are considered stale and dropped. &lt;code&gt;max_stale&lt;/code&gt; must be set to a duration greater than &lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;max_streams&lt;/code&gt; attribute configures the upper limit of streams to track.
If the limit of tracked streams is reached, new incoming streams are dropped.&lt;/p&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.processor.deltatocumulative&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 2;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#output\&amp;#34;\u003e\u003ccode\u003eoutput\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures where to send received telemetry data.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures where to send received telemetry data.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;



&lt;div data-shared=&#34;reference/components/output-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;output&lt;/code&gt; block configures a set of components to forward resulting telemetry data to.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send logs to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send metrics to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;traces&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send traces to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You must specify the &lt;code&gt;output&lt;/code&gt; block, but all its arguments are optional.
By default, telemetry data is dropped.
Configure the &lt;code&gt;metrics&lt;/code&gt;, &lt;code&gt;logs&lt;/code&gt;, and &lt;code&gt;traces&lt;/code&gt; arguments accordingly to send telemetry data to other components.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;The following fields are exported and can be referenced by other components:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&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;code&gt;input&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A value that other components can use to send telemetry data to.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;input&lt;/code&gt; accepts &lt;code&gt;otelcol.Consumer&lt;/code&gt; data for metrics.&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.deltatocumulative&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.deltatocumulative&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;debug-metrics&#34;&gt;Debug metrics&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;otelcol_deltatocumulative_datapoints&lt;/code&gt; (counter): Total number of datapoints processed (successfully or unsuccessfully).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;otelcol_deltatocumulative_streams_limit&lt;/code&gt; (gauge): Upper limit of tracked streams.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;otelcol_deltatocumulative_streams_max_stale_seconds&lt;/code&gt; (gauge): Duration without new samples after which streams are dropped.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;otelcol_deltatocumulative_streams_tracked&lt;/code&gt; (gauge): Number of streams currently tracked by the aggregation state.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;examples&#34;&gt;Examples&lt;/h2&gt;
&lt;h3 id=&#34;basic-usage&#34;&gt;Basic usage&lt;/h3&gt;
&lt;p&gt;This example converts delta temporality metrics to cumulative before sending it to &lt;a href=&#34;../otelcol.exporter.otlphttp/&#34;&gt;otelcol.exporter.otlphttp&lt;/a&gt; for further processing:&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;otelcol.processor.deltatocumulative &amp;#34;default&amp;#34; {
  output {
    metrics = [otelcol.exporter.otlphttp.production.input]
  }
}

otelcol.exporter.otlphttp &amp;#34;production&amp;#34; {
  client {
    endpoint = sys.env(&amp;#34;&amp;lt;OTLP_SERVER_ENDPOINT&amp;gt;&amp;#34;)
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;export-prometheus-data&#34;&gt;Export Prometheus data&lt;/h3&gt;
&lt;p&gt;This example converts delta temporality metrics to cumulative metrics before it&amp;rsquo;s converted to Prometheus data, which requires cumulative temporality:&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;otelcol.processor.deltatocumulative &amp;#34;default&amp;#34; {
  output {
    metrics = [otelcol.exporter.prometheus.default.input]
  }
}

otelcol.exporter.prometheus &amp;#34;default&amp;#34; {
  forward_to = [prometheus.remote_write.default.receiver]
}

prometheus.remote_write &amp;#34;default&amp;#34; {
  endpoint {
    url = sys.env(&amp;#34;&amp;lt;PROMETHEUS_SERVER_URL&amp;gt;&amp;#34;)
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.deltatocumulative&lt;/code&gt; can accept arguments from the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that export &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-exporters&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.deltatocumulative&lt;/code&gt; has exports that can be consumed by the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that consume &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-consumers&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolprocessordeltatocumulative">&lt;code>otelcol.processor.deltatocumulative&lt;/code>&lt;/h1>
&lt;div data-shared="stability/experimental.md">
&lt;blockquote>
&lt;p>&lt;strong>EXPERIMENTAL&lt;/strong>: This is an &lt;a href="/docs/release-life-cycle/">experimental&lt;/a> component.
Experimental components are subject to frequent breaking changes, and may be removed with no equivalent replacement.
To enable and use an experimental component, you must set the &lt;code>stability.level&lt;/code>
&lt;a href="/docs/alloy/v1.15/reference/cli/run/">flag&lt;/a> to &lt;code>experimental&lt;/code>.&lt;/p></description></item><item><title>otelcol.processor.discovery</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.processor.discovery/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.processor.discovery/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolprocessordiscovery&#34;&gt;&lt;code&gt;otelcol.processor.discovery&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.discovery&lt;/code&gt; accepts traces telemetry data from other &lt;code&gt;otelcol&lt;/code&gt; components.
It can be paired with &lt;code&gt;discovery.*&lt;/code&gt; components, which supply a list of labels for each discovered target.
&lt;code&gt;otelcol.processor.discovery&lt;/code&gt; adds resource attributes to spans which have a hostname matching the one in the &lt;code&gt;__address__&lt;/code&gt; label provided by the &lt;code&gt;discovery.*&lt;/code&gt; component.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.processor.discovery&lt;/code&gt; is a custom component unrelated to any processors from the OpenTelemetry Collector.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;Multiple &lt;code&gt;otelcol.processor.discovery&lt;/code&gt; components can be specified by giving them different labels.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;It can be difficult to follow &lt;a href=&#34;https://github.com/open-telemetry/semantic-conventions/blob/main/docs/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;OpenTelemetry semantic conventions&lt;/a&gt; when
adding resource attributes via &lt;code&gt;otelcol.processor.discovery&lt;/code&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;discovery.relabel&lt;/code&gt; and most &lt;code&gt;discovery.*&lt;/code&gt; processes such as &lt;code&gt;discovery.kubernetes&lt;/code&gt; can only emit &lt;a href=&#34;https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Prometheus-compatible labels&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Prometheus labels use underscores (&lt;code&gt;_&lt;/code&gt;) in labels names, whereas &lt;a href=&#34;https://github.com/open-telemetry/semantic-conventions/blob/main/docs/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;OpenTelemetry semantic conventions&lt;/a&gt; use dots (&lt;code&gt;.&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Although &lt;code&gt;otelcol.processor.discovery&lt;/code&gt; is able to work with non-Prometheus labels such as ones containing dots, the fact that &lt;code&gt;discovery.*&lt;/code&gt; components are generally only compatible with Prometheus naming conventions makes it hard to follow OpenTelemetry  semantic conventions in &lt;code&gt;otelcol.processor.discovery&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If your use case is to add resource attributes which contain Kubernetes metadata, consider using &lt;code&gt;otelcol.processor.k8sattributes&lt;/code&gt; instead.&lt;/p&gt;
&lt;p&gt;The main use case for &lt;code&gt;otelcol.processor.discovery&lt;/code&gt; is for users who migrate to Alloy from Grafana Agent Static mode &lt;code&gt;prom_sd_operation_type&lt;/code&gt;/&lt;code&gt;prom_sd_pod_associations&lt;/code&gt; &lt;a href=&#34;/docs/agent/latest/static/configuration/traces-config/&#34;&gt;configuration options&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.processor.discovery &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  targets = [...]
  output {
    traces  = [...]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.processor.discovery&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;targets&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(map(string))&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of target labels to apply to the spans.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;operation_type&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Configures whether to update a span&amp;rsquo;s attribute if it already exists.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;upsert&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;pod_associations&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Configures how to decide the hostname of the span.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[&amp;quot;ip&amp;quot;, &amp;quot;net.host.ip&amp;quot;, &amp;quot;k8s.pod.ip&amp;quot;, &amp;quot;hostname&amp;quot;, &amp;quot;connection&amp;quot;]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;targets&lt;/code&gt; could come from &lt;code&gt;discovery.*&lt;/code&gt; components:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The &lt;code&gt;__address__&lt;/code&gt; label will be matched against the IP address of incoming spans.
&lt;ul&gt;
&lt;li&gt;If &lt;code&gt;__address__&lt;/code&gt; contains a port, it&amp;rsquo;s ignored.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;If a match is found, then relabeling rules are applied.
&lt;ul&gt;
&lt;li&gt;Labels starting with &lt;code&gt;__&lt;/code&gt; won&amp;rsquo;t be added to the spans.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The supported values for &lt;code&gt;operation_type&lt;/code&gt; are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;insert&lt;/code&gt;: Inserts a new resource attribute if the key doesn&amp;rsquo;t already exist.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;update&lt;/code&gt;: Updates a resource attribute if the key already exists.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;upsert&lt;/code&gt;: Either inserts a new resource attribute if the key doesn&amp;rsquo;t already exist, or updates a resource attribute if the key does exist.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The supported values for &lt;code&gt;pod_associations&lt;/code&gt; are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ip&lt;/code&gt;: The hostname will be sourced from an &lt;code&gt;ip&lt;/code&gt; resource attribute.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;net.host.ip&lt;/code&gt;: The hostname will be sourced from a &lt;code&gt;net.host.ip&lt;/code&gt; resource attribute.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k8s.pod.ip&lt;/code&gt;: The hostname will be sourced from a &lt;code&gt;k8s.pod.ip&lt;/code&gt; resource attribute.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;hostname&lt;/code&gt;: The hostname will be sourced from a &lt;code&gt;host.name&lt;/code&gt; resource attribute.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;connection&lt;/code&gt;: The hostname will be sourced from the context from the incoming requests (gRPC and HTTP).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If multiple &lt;code&gt;pod_associations&lt;/code&gt; methods are enabled, the order of evaluation is honored.
For example, when &lt;code&gt;pod_associations&lt;/code&gt; is &lt;code&gt;[&amp;quot;ip&amp;quot;, &amp;quot;net.host.ip&amp;quot;]&lt;/code&gt;, &lt;code&gt;&amp;quot;net.host.ip&amp;quot;&lt;/code&gt; may be matched only if &lt;code&gt;&amp;quot;ip&amp;quot;&lt;/code&gt; hasn&amp;rsquo;t already matched.&lt;/p&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following block with &lt;code&gt;otelcol.processor.discovery&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 1;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#output\&amp;#34;\u003e\u003ccode\u003eoutput\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures where to send received telemetry data.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures where to send received telemetry data.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;



&lt;div data-shared=&#34;reference/components/output-block-traces.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;output&lt;/code&gt; block configures a set of components to forward resulting telemetry data to.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;traces&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send traces to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You must specify the &lt;code&gt;output&lt;/code&gt; block, but all its arguments are optional.
By default, telemetry data is dropped.
Configure the &lt;code&gt;traces&lt;/code&gt; argument accordingly to send telemetry data to other components.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;The following fields are exported and can be referenced by other components:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&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;code&gt;input&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A value that other components can use to send telemetry data to.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;input&lt;/code&gt; accepts &lt;code&gt;otelcol.Consumer&lt;/code&gt; OTLP-formatted data for telemetry signals of these types:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;traces&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.discovery&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.discovery&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;examples&#34;&gt;Examples&lt;/h2&gt;
&lt;h3 id=&#34;basic-usage&#34;&gt;Basic usage&lt;/h3&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;discovery.http &amp;#34;dynamic_targets&amp;#34; {
    url              = &amp;#34;https://example.com/scrape_targets&amp;#34;
    refresh_interval = &amp;#34;15s&amp;#34;
}

otelcol.processor.discovery &amp;#34;default&amp;#34; {
    targets = discovery.http.dynamic_targets.targets

    output {
        traces = [otelcol.exporter.otlphttp.default.input]
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;use-more-than-one-discovery-process&#34;&gt;Use more than one discovery process&lt;/h3&gt;
&lt;p&gt;Outputs from more than one discovery process can be combined via the &lt;code&gt;array.concat&lt;/code&gt; function.&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;discovery.http &amp;#34;dynamic_targets&amp;#34; {
    url              = &amp;#34;https://example.com/scrape_targets&amp;#34;
    refresh_interval = &amp;#34;15s&amp;#34;
}

discovery.kubelet &amp;#34;k8s_pods&amp;#34; {
  bearer_token_file = &amp;#34;/var/run/secrets/kubernetes.io/serviceaccount/token&amp;#34;
  namespaces        = [&amp;#34;default&amp;#34;, &amp;#34;kube-system&amp;#34;]
}

otelcol.processor.discovery &amp;#34;default&amp;#34; {
    targets = array.concat(discovery.http.dynamic_targets.targets, discovery.kubelet.k8s_pods.targets)

    output {
        traces = [otelcol.exporter.otlphttp.default.input]
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;use-a-preconfigured-list-of-attributes&#34;&gt;Use a preconfigured list of attributes&lt;/h3&gt;
&lt;p&gt;It&amp;rsquo;s not necessary to use a discovery component.
In the following example, both a &lt;code&gt;test_label&lt;/code&gt; and a &lt;code&gt;test.label.with.dots&lt;/code&gt; resource attributes will be added to a span if its IP address is &amp;ldquo;1.2.2.2&amp;rdquo;.
The &lt;code&gt;__internal_label__&lt;/code&gt; will be not be added to the span, because it begins with a double underscore (&lt;code&gt;__&lt;/code&gt;).&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;otelcol.processor.discovery &amp;#34;default&amp;#34; {
    targets = [{
        &amp;#34;__address__&amp;#34;          = &amp;#34;1.2.2.2&amp;#34;,
        &amp;#34;__internal_label__&amp;#34;   = &amp;#34;test_val&amp;#34;,
        &amp;#34;test_label&amp;#34;           = &amp;#34;test_val2&amp;#34;,
        &amp;#34;test.label.with.dots&amp;#34; = &amp;#34;test.val2.with.dots&amp;#34;}]

    output {
        traces = [otelcol.exporter.otlphttp.default.input]
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.discovery&lt;/code&gt; can accept arguments from the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that export &lt;a href=&#34;../../../compatibility/#targets-exporters&#34;&gt;Targets&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Components that export &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-exporters&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.discovery&lt;/code&gt; has exports that can be consumed by the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that consume &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-consumers&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolprocessordiscovery">&lt;code>otelcol.processor.discovery&lt;/code>&lt;/h1>
&lt;p>&lt;code>otelcol.processor.discovery&lt;/code> accepts traces telemetry data from other &lt;code>otelcol&lt;/code> components.
It can be paired with &lt;code>discovery.*&lt;/code> components, which supply a list of labels for each discovered target.
&lt;code>otelcol.processor.discovery&lt;/code> adds resource attributes to spans which have a hostname matching the one in the &lt;code>__address__&lt;/code> label provided by the &lt;code>discovery.*&lt;/code> component.&lt;/p></description></item><item><title>otelcol.processor.filter</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.processor.filter/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.processor.filter/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolprocessorfilter&#34;&gt;&lt;code&gt;otelcol.processor.filter&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.filter&lt;/code&gt; filters out accepted telemetry data from other &lt;code&gt;otelcol&lt;/code&gt; components using the 
    &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.147.0/pkg/ottl/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;OpenTelemetry Transformation Language (OTTL)&lt;/a&gt;.
If any of the OTTL statements evaluates to &lt;strong&gt;true&lt;/strong&gt;, the telemetry data is &lt;strong&gt;dropped&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;OTTL statements consist of 
    &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/pkg/ottl/ottlfuncs#converters&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;OTTL Converter functions&lt;/a&gt;, which act on paths.
A path is a reference to a telemetry data such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Resource attributes.&lt;/li&gt;
&lt;li&gt;Instrumentation scope name.&lt;/li&gt;
&lt;li&gt;Span attributes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In addition to the 
    &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/pkg/ottl/ottlfuncs#converters&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;standard OTTL Converter functions&lt;/a&gt;, the following metrics-only functions are used exclusively by the processor:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
    &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.147.0/processor/filterprocessor/README.md#hasattrkeyondatapoint&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;HasAttrKeyOnDataPoint&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
    &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.147.0/processor/filterprocessor/README.md#hasattrondatapoint&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;HasAttrOnDataPoint&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
    &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.147.0/pkg/ottl/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;OTTL&lt;/a&gt; statements used in &lt;code&gt;otelcol.processor.filter&lt;/code&gt; mostly contain constructs such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
    &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/pkg/ottl#booleans&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Booleans&lt;/a&gt;:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;not true&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;not IsMatch(name, &amp;quot;http_.*&amp;quot;)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
    &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/pkg/ottl#math-expressions&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Math expressions&lt;/a&gt;:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;1 &#43; 1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;end_time_unix_nano - start_time_unix_nano&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sum([1, 2, 3, 4]) &#43; (10 / 1) - 1&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Raw Alloy syntax strings can be used to write OTTL statements.
For example, the OTTL statement &lt;code&gt;attributes[&amp;quot;grpc&amp;quot;] == true&lt;/code&gt; is written in Alloy syntax as `attributes[&amp;ldquo;grpc&amp;rdquo;] == true`&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;



&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.processor.filter&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector/tree/v0.147.0/filter&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;filter&lt;/code&gt;&lt;/a&gt; processor.
If necessary, bug reports or feature requests will be redirected to the upstream repository.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.processor.filter&lt;/code&gt; components by giving them different labels.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-warning&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Warning&lt;/p&gt;&lt;p&gt;Exercise caution when using &lt;code&gt;otelcol.processor.filter&lt;/code&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Make sure you understand schema/format of the incoming data and test the configuration thoroughly.
In general, use a configuration that&amp;rsquo;s as specific as possible ensure you retain only the data you want to keep.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector/blob/v0.85.0/docs/standard-warnings.md#orphaned-telemetry&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Orphaned Telemetry&lt;/a&gt;: The processor allows dropping spans.
Dropping a span may lead to orphaned spans if the dropped span is a parent.
Dropping a span may lead to orphaned logs if the log references the dropped span.&lt;/li&gt;
&lt;/ul&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.processor.filter &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  output {
    metrics = [...]
    logs    = [...]
    traces  = [...]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following argument with &lt;code&gt;otelcol.processor.filter&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;error_mode&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How to react to errors if they occur while processing a statement.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;propagate&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The supported values for &lt;code&gt;error_mode&lt;/code&gt; are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ignore&lt;/code&gt;: Ignore errors returned by conditions, log them, and continue on to the next condition. This is the recommended mode.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;silent&lt;/code&gt;: Ignore errors returned by conditions, don&amp;rsquo;t log them, and continue on to the next condition.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;propagate&lt;/code&gt;: Return the error up the pipeline. This will result in the payload being dropped from Alloy.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.processor.filter&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 8;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#output\&amp;#34;\u003e\u003ccode\u003eoutput\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures where to send received telemetry data.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#log_conditions\&amp;#34;\u003e\u003ccode\u003elog_conditions\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eInferred-context conditions for logs.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#logs\&amp;#34;\u003e\u003ccode\u003elogs\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eDeprecated. Statements which filter logs. Use \u003ca href=\&amp;#34;#log_conditions\&amp;#34;\u003e\u003ccode\u003elog_conditions\u003c/code\u003e\u003c/a\u003e instead.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#metric_conditions\&amp;#34;\u003e\u003ccode\u003emetric_conditions\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eInferred-context conditions for metrics.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#metrics\&amp;#34;\u003e\u003ccode\u003emetrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eDeprecated. Statements which filter metrics. Use \u003ca href=\&amp;#34;#metric_conditions\&amp;#34;\u003e\u003ccode\u003emetric_conditions\u003c/code\u003e\u003c/a\u003e instead.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#trace_conditions\&amp;#34;\u003e\u003ccode\u003etrace_conditions\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eInferred-context conditions for traces.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#traces\&amp;#34;\u003e\u003ccode\u003etraces\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eDeprecated. Statements which filter traces. Use \u003ca href=\&amp;#34;#trace_conditions\&amp;#34;\u003e\u003ccode\u003etrace_conditions\u003c/code\u003e\u003c/a\u003e instead.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures where to send received telemetry data.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#log_conditions&#34;&gt;&lt;code&gt;log_conditions&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Inferred-context conditions for logs.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#logs&#34;&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Deprecated. Statements which filter logs. Use &lt;a href=&#34;#log_conditions&#34;&gt;&lt;code&gt;log_conditions&lt;/code&gt;&lt;/a&gt; instead.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#metric_conditions&#34;&gt;&lt;code&gt;metric_conditions&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Inferred-context conditions for metrics.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#metrics&#34;&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Deprecated. Statements which filter metrics. Use &lt;a href=&#34;#metric_conditions&#34;&gt;&lt;code&gt;metric_conditions&lt;/code&gt;&lt;/a&gt; instead.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#trace_conditions&#34;&gt;&lt;code&gt;trace_conditions&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Inferred-context conditions for traces.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#traces&#34;&gt;&lt;code&gt;traces&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Deprecated. Statements which filter traces. Use &lt;a href=&#34;#trace_conditions&#34;&gt;&lt;code&gt;trace_conditions&lt;/code&gt;&lt;/a&gt; instead.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;



&lt;div data-shared=&#34;reference/components/output-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;output&lt;/code&gt; block configures a set of components to forward resulting telemetry data to.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send logs to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send metrics to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;traces&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send traces to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You must specify the &lt;code&gt;output&lt;/code&gt; block, but all its arguments are optional.
By default, telemetry data is dropped.
Configure the &lt;code&gt;metrics&lt;/code&gt;, &lt;code&gt;logs&lt;/code&gt;, and &lt;code&gt;traces&lt;/code&gt; arguments accordingly to send telemetry data to other components.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h3 id=&#34;logs&#34;&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/h3&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;The &lt;code&gt;logs&lt;/code&gt; block is deprecated. Use [&lt;code&gt;log_conditions&lt;/code&gt;][log_conditions] instead.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;The &lt;code&gt;logs&lt;/code&gt; block specifies statements that filter log telemetry signals.
Only &lt;code&gt;logs&lt;/code&gt; blocks can be specified.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;log_record&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of OTTL statements filtering OTLP metric.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The syntax of OTTL statements depends on the OTTL context. Refer to the OpenTelemetry documentation for more information:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
    &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.147.0/pkg/ottl/contexts/ottllog/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;OTTL log context&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Only one of the statements inside the list of statements has to be satisfied.&lt;/p&gt;
&lt;h3 id=&#34;metrics&#34;&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;The &lt;code&gt;metrics&lt;/code&gt; block is deprecated. Use [&lt;code&gt;metric_conditions&lt;/code&gt;][metric_conditions] instead.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;The &lt;code&gt;metrics&lt;/code&gt; block specifies statements that filter metric telemetry signals.
Only one &lt;code&gt;metrics&lt;/code&gt; blocks can be specified.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;datapoint&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of OTTL statements filtering OTLP metric datapoints.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of OTTL statements filtering OTLP metric.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The syntax of OTTL statements depends on the OTTL context. Refer to the OpenTelemetry documentation for more information:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
    &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.147.0/pkg/ottl/contexts/ottlmetric/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;OTTL metric context&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
    &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.147.0/pkg/ottl/contexts/ottldatapoint/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;OTTL datapoint context&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Statements are checked in order from &amp;ldquo;high level&amp;rdquo; to &amp;ldquo;low level&amp;rdquo; telemetry, in this order:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;datapoint&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If at least one &lt;code&gt;metric&lt;/code&gt; condition is satisfied, the &lt;code&gt;datapoint&lt;/code&gt; conditions won&amp;rsquo;t be checked.
Only one of the statements inside the list of statements has to be satisfied.&lt;/p&gt;
&lt;p&gt;If all datapoints for a metric are dropped, the metric will also be dropped.&lt;/p&gt;
&lt;h3 id=&#34;traces&#34;&gt;&lt;code&gt;traces&lt;/code&gt;&lt;/h3&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;The &lt;code&gt;traces&lt;/code&gt; block is deprecated. Use [&lt;code&gt;trace_conditions&lt;/code&gt;][trace_conditions] instead.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;The &lt;code&gt;traces&lt;/code&gt; block specifies statements that filter trace telemetry signals.
Only one &lt;code&gt;traces&lt;/code&gt; block can be specified.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;span&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of OTTL statements filtering OTLP spans.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;spanevent&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of OTTL statements filtering OTLP span events.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The syntax of OTTL statements depends on the OTTL context. See the OpenTelemetry documentation for more information:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
    &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.147.0/pkg/ottl/contexts/ottlspan/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;OTTL span context&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
    &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.147.0/pkg/ottl/contexts/ottlspanevent/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;OTTL spanevent context&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Statements are checked in order from &amp;ldquo;high level&amp;rdquo; to &amp;ldquo;low level&amp;rdquo; telemetry, in this order:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;span&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;spanevent&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If at least one &lt;code&gt;span&lt;/code&gt; condition is satisfied, the &lt;code&gt;spanevent&lt;/code&gt; conditions won&amp;rsquo;t be checked.
Only one of the statements inside the list of statements has to be satisfied.&lt;/p&gt;
&lt;p&gt;If all span events for a span are dropped, the span will be left intact.&lt;/p&gt;
&lt;h3 id=&#34;trace_conditions&#34;&gt;&lt;code&gt;trace_conditions&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;trace_conditions&lt;/code&gt; block specifies inferred-context OTTL conditions for traces.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;conditions&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of OTTL conditions.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;context&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;OTTL context for evaluating conditions.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;Supported &lt;code&gt;context&lt;/code&gt; values are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;resource&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;span&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;spanevent&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For more details on available contexts, refer to 
    &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/processor/filterprocessor#context&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;filterprocessor context documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;metric_conditions&#34;&gt;&lt;code&gt;metric_conditions&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;metric_conditions&lt;/code&gt; block specifies inferred-context OTTL conditions for metrics.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;conditions&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of OTTL conditions.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;context&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;OTTL context for evaluating conditions.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;Supported &lt;code&gt;context&lt;/code&gt; values are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;resource&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;datapoint&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For more details on available contexts, refer to 
    &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/processor/filterprocessor#context&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;filterprocessor context documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;log_conditions&#34;&gt;&lt;code&gt;log_conditions&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;log_conditions&lt;/code&gt; block specifies inferred-context OTTL conditions for logs.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;conditions&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of OTTL conditions.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;context&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;OTTL context for evaluating conditions.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;Supported &lt;code&gt;context&lt;/code&gt; values are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;resource&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;log&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For more details on available contexts, refer to 
    &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/processor/filterprocessor#context&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;filterprocessor context documentation&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;trace_conditions&lt;/code&gt;, &lt;code&gt;metric_conditions&lt;/code&gt;, and &lt;code&gt;log_conditions&lt;/code&gt; can&amp;rsquo;t be used together with &lt;code&gt;traces&lt;/code&gt;, &lt;code&gt;metrics&lt;/code&gt;, and &lt;code&gt;logs&lt;/code&gt; blocks in the same component.&lt;/p&gt;
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;The following fields are exported and can be referenced by other components:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&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;code&gt;input&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A value that other components can use to send telemetry data to.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;input&lt;/code&gt; accepts &lt;code&gt;otelcol.Consumer&lt;/code&gt; data for any telemetry signal (metrics, logs, or traces).&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.filter&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.filter&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;debug-metrics&#34;&gt;Debug metrics&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.filter&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug metrics.&lt;/p&gt;
&lt;h2 id=&#34;examples&#34;&gt;Examples&lt;/h2&gt;
&lt;h3 id=&#34;drop-spans-which-contain-a-certain-span-attribute&#34;&gt;Drop spans which contain a certain span attribute&lt;/h3&gt;
&lt;p&gt;This example drops the signals that have the attribute &lt;code&gt;container.name&lt;/code&gt; set to the value &lt;code&gt;app_container_1&lt;/code&gt;.&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;otelcol.processor.filter &amp;#34;default&amp;#34; {
  error_mode = &amp;#34;ignore&amp;#34;

  traces {
    span = [
      `attributes[&amp;#34;container.name&amp;#34;] == &amp;#34;app_container_1&amp;#34;`,
    ]
  }

  output {
    metrics = [otelcol.exporter.otlphttp.default.input]
    logs    = [otelcol.exporter.otlphttp.default.input]
    traces  = [otelcol.exporter.otlphttp.default.input]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;drop-metrics-based-on-either-of-two-criteria&#34;&gt;Drop metrics based on either of two criteria&lt;/h3&gt;
&lt;p&gt;This example drops metrics which satisfy at least one of two OTTL statements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The metric name is &lt;code&gt;my.metric&lt;/code&gt; and there is a &lt;code&gt;my_label&lt;/code&gt; resource attribute with a value of &lt;code&gt;abc123&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The metric is a histogram.&lt;/li&gt;
&lt;/ul&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;otelcol.processor.filter &amp;#34;default&amp;#34; {
  error_mode = &amp;#34;ignore&amp;#34;

  metrics {
    metric = [
       `name == &amp;#34;my.metric&amp;#34; and resource.attributes[&amp;#34;my_label&amp;#34;] == &amp;#34;abc123&amp;#34;`,
       `type == METRIC_DATA_TYPE_HISTOGRAM`,
    ]
  }

  output {
    metrics = [otelcol.exporter.otlphttp.default.input]
    logs    = [otelcol.exporter.otlphttp.default.input]
    traces  = [otelcol.exporter.otlphttp.default.input]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;drop-non-http-spans-and-sensitive-logs&#34;&gt;Drop non-HTTP spans and sensitive logs&lt;/h3&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;otelcol.processor.filter &amp;#34;default&amp;#34; {
  error_mode = &amp;#34;ignore&amp;#34;

  traces {
    span = [
      `attributes[&amp;#34;http.request.method&amp;#34;] == nil`,
    ]
  }

  logs {
    log_record = [
      `IsMatch(body, &amp;#34;.*password.*&amp;#34;)`,
      `severity_number &amp;lt; SEVERITY_NUMBER_WARN`,
    ]
  }

  output {
    metrics = [otelcol.exporter.otlphttp.default.input]
    logs    = [otelcol.exporter.otlphttp.default.input]
    traces  = [otelcol.exporter.otlphttp.default.input]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.filter&lt;/code&gt; can accept arguments from the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that export &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-exporters&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.filter&lt;/code&gt; has exports that can be consumed by the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that consume &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-consumers&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolprocessorfilter">&lt;code>otelcol.processor.filter&lt;/code>&lt;/h1>
&lt;p>&lt;code>otelcol.processor.filter&lt;/code> filters out accepted telemetry data from other &lt;code>otelcol&lt;/code> components using the
&lt;a href="https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.147.0/pkg/ottl/README.md" target="_blank" rel="noopener noreferrer">OpenTelemetry Transformation Language (OTTL)&lt;/a>.
If any of the OTTL statements evaluates to &lt;strong>true&lt;/strong>, the telemetry data is &lt;strong>dropped&lt;/strong>.&lt;/p></description></item><item><title>otelcol.processor.groupbyattrs</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.processor.groupbyattrs/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.processor.groupbyattrs/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolprocessorgroupbyattrs&#34;&gt;&lt;code&gt;otelcol.processor.groupbyattrs&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.groupbyattrs&lt;/code&gt; accepts spans, metrics, and traces from other &lt;code&gt;otelcol&lt;/code&gt; components and groups them under the same resource.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.processor.groupbyattrs&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/processor/groupbyattrsprocessor&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;groupbyattrs&lt;/code&gt;&lt;/a&gt; processor.
If necessary, bug reports or feature requests will be redirected to the upstream repository.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;We recommend you use the groupbyattrs processor together with &lt;a href=&#34;../otelcol.processor.batch/&#34;&gt;&lt;code&gt;otelcol.processor.batch&lt;/code&gt;&lt;/a&gt;, as a consecutive step.
This will reduce the fragmentation of data by grouping records together under the matching Resource/Instrumentation Library.&lt;/p&gt;
&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.processor.groupbyattrs&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.processor.groupbyattrs &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  output {
    metrics = [...]
    logs    = [...]
    traces  = [...]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following argument with &lt;code&gt;otelcol.processor.groupbyattrs&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;keys&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Keys that will be used to group the spans, log records, or metric data points together.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;keys&lt;/code&gt; is a string array that&amp;rsquo;s used for grouping the data.
If it&amp;rsquo;s empty, the processor performs compaction and reassociates all spans with matching Resource and InstrumentationLibrary.&lt;/p&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.processor.groupbyattrs&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 2;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#output\&amp;#34;\u003e\u003ccode\u003eoutput\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures where to send received telemetry data.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures where to send received telemetry data.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;



&lt;div data-shared=&#34;reference/components/output-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;output&lt;/code&gt; block configures a set of components to forward resulting telemetry data to.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send logs to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send metrics to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;traces&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send traces to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You must specify the &lt;code&gt;output&lt;/code&gt; block, but all its arguments are optional.
By default, telemetry data is dropped.
Configure the &lt;code&gt;metrics&lt;/code&gt;, &lt;code&gt;logs&lt;/code&gt;, and &lt;code&gt;traces&lt;/code&gt; arguments accordingly to send telemetry data to other components.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;The following fields are exported and can be referenced by other components:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&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;code&gt;input&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Accepts &lt;code&gt;otelcol.Consumer&lt;/code&gt; data for metrics, logs, or traces.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;input&lt;/code&gt; accepts &lt;code&gt;otelcol.Consumer&lt;/code&gt; data for any telemetry signal (metrics, logs, or traces).&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.groupbyattrs&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.groupbyattrs&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;debug-metrics&#34;&gt;Debug metrics&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.groupbyattrs&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug metrics.&lt;/p&gt;
&lt;h2 id=&#34;examples&#34;&gt;Examples&lt;/h2&gt;
&lt;h3 id=&#34;group-metrics&#34;&gt;Group metrics&lt;/h3&gt;
&lt;p&gt;Consider the following metrics, all originally associated to the same Resource:&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;text&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-text&#34;&gt;Resource {host.name=&amp;#34;localhost&amp;#34;,source=&amp;#34;prom&amp;#34;}
  Metric &amp;#34;gauge-1&amp;#34; (GAUGE)
    DataPoint {host.name=&amp;#34;host-A&amp;#34;,id=&amp;#34;eth0&amp;#34;}
    DataPoint {host.name=&amp;#34;host-A&amp;#34;,id=&amp;#34;eth0&amp;#34;}
    DataPoint {host.name=&amp;#34;host-B&amp;#34;,id=&amp;#34;eth0&amp;#34;}
  Metric &amp;#34;gauge-1&amp;#34; (GAUGE) // Identical to previous Metric
    DataPoint {host.name=&amp;#34;host-A&amp;#34;,id=&amp;#34;eth0&amp;#34;}
    DataPoint {host.name=&amp;#34;host-A&amp;#34;,id=&amp;#34;eth0&amp;#34;}
    DataPoint {host.name=&amp;#34;host-B&amp;#34;,id=&amp;#34;eth0&amp;#34;}
  Metric &amp;#34;mixed-type&amp;#34; (GAUGE)
    DataPoint {host.name=&amp;#34;host-A&amp;#34;,id=&amp;#34;eth0&amp;#34;}
    DataPoint {host.name=&amp;#34;host-A&amp;#34;,id=&amp;#34;eth0&amp;#34;}
    DataPoint {host.name=&amp;#34;host-B&amp;#34;,id=&amp;#34;eth0&amp;#34;}
  Metric &amp;#34;mixed-type&amp;#34; (SUM)
    DataPoint {host.name=&amp;#34;host-A&amp;#34;,id=&amp;#34;eth0&amp;#34;}
    DataPoint {host.name=&amp;#34;host-A&amp;#34;,id=&amp;#34;eth0&amp;#34;}
  Metric &amp;#34;dont-move&amp;#34; (Gauge)
    DataPoint {id=&amp;#34;eth0&amp;#34;}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;With the following configuration, the groupbyattrs will re-associate the metrics with either &lt;code&gt;host-A&lt;/code&gt; or &lt;code&gt;host-B&lt;/code&gt;, based on the value of the &lt;code&gt;host.name&lt;/code&gt; 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;otelcol.processor.groupbyattrs &amp;#34;default&amp;#34; {
  keys = [ &amp;#34;host.name&amp;#34; ]
  output {
    metrics = [otelcol.exporter.otlphttp.default.input]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The output of the processor is:&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;text&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-text&#34;&gt;Resource {host.name=&amp;#34;localhost&amp;#34;,source=&amp;#34;prom&amp;#34;}
  Metric &amp;#34;dont-move&amp;#34; (Gauge)
    DataPoint {id=&amp;#34;eth0&amp;#34;}
Resource {host.name=&amp;#34;host-A&amp;#34;,source=&amp;#34;prom&amp;#34;}
  Metric &amp;#34;gauge-1&amp;#34;
    DataPoint {id=&amp;#34;eth0&amp;#34;}
    DataPoint {id=&amp;#34;eth0&amp;#34;}
    DataPoint {id=&amp;#34;eth0&amp;#34;}
    DataPoint {id=&amp;#34;eth0&amp;#34;}
  Metric &amp;#34;mixed-type&amp;#34; (GAUGE)
    DataPoint {id=&amp;#34;eth0&amp;#34;}
    DataPoint {id=&amp;#34;eth0&amp;#34;}
  Metric &amp;#34;mixed-type&amp;#34; (SUM)
    DataPoint {id=&amp;#34;eth0&amp;#34;}
    DataPoint {id=&amp;#34;eth0&amp;#34;}
Resource {host.name=&amp;#34;host-B&amp;#34;,source=&amp;#34;prom&amp;#34;}
  Metric &amp;#34;gauge-1&amp;#34;
    DataPoint {id=&amp;#34;eth0&amp;#34;}
    DataPoint {id=&amp;#34;eth0&amp;#34;}
  Metric &amp;#34;mixed-type&amp;#34; (GAUGE)
    DataPoint {id=&amp;#34;eth0&amp;#34;}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;This output demonstrates how &lt;code&gt;otelcol.processor.groupbyattrs&lt;/code&gt; works in various situations:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The DataPoints for the &lt;code&gt;gauge-1&lt;/code&gt; (GAUGE) metric were originally split under 2 Metric instances and have been merged in the output.&lt;/li&gt;
&lt;li&gt;The DataPoints of the &lt;code&gt;mixed-type&lt;/code&gt; (GAUGE) and &lt;code&gt;mixed-type&lt;/code&gt; (SUM) metrics haven&amp;rsquo;t been merged under the same Metric, because their DataType is different.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;dont-move&lt;/code&gt; metric DataPoints don&amp;rsquo;t have a &lt;code&gt;host.name&lt;/code&gt; attribute and therefore remained under the original Resource.&lt;/li&gt;
&lt;li&gt;The new Resources inherited the attributes from the original Resource (&lt;code&gt;source=&amp;quot;prom&amp;quot;&lt;/code&gt;), plus the specified attributes from the processed metrics (&lt;code&gt;host.name=&amp;quot;host-A&amp;quot;&lt;/code&gt; or &lt;code&gt;host.name=&amp;quot;host-B&amp;quot;&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;The specified &amp;ldquo;grouping&amp;rdquo; attributes that are set on the new Resources are also removed from the metric DataPoints.&lt;/li&gt;
&lt;li&gt;While not shown in the above example, the processor also merges collections of records under matching InstrumentationLibrary.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;compaction&#34;&gt;Compaction&lt;/h3&gt;
&lt;p&gt;Sometimes telemetry data can become fragmented due to multiple duplicated ResourceSpans/ResourceLogs/ResourceMetrics objects.
This leads to additional memory consumption, increased processing costs, inefficient serialization and increase of the export requests.
In such situations, &lt;code&gt;otelcol.processor.groupbyattrs&lt;/code&gt; can be used to compact the data with matching Resource and InstrumentationLibrary properties.&lt;/p&gt;
&lt;p&gt;For example, consider this input data:&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;text&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-text&#34;&gt;Resource {host.name=&amp;#34;localhost&amp;#34;}
  InstrumentationLibrary {name=&amp;#34;MyLibrary&amp;#34;}
  Spans
    Span {span_id=1, ...}
  InstrumentationLibrary {name=&amp;#34;OtherLibrary&amp;#34;}
  Spans
    Span {span_id=2, ...}
    
Resource {host.name=&amp;#34;localhost&amp;#34;}
  InstrumentationLibrary {name=&amp;#34;MyLibrary&amp;#34;}
  Spans
    Span {span_id=3, ...}
    
Resource {host.name=&amp;#34;localhost&amp;#34;}
  InstrumentationLibrary {name=&amp;#34;MyLibrary&amp;#34;}
  Spans
    Span {span_id=4, ...}
    
Resource {host.name=&amp;#34;otherhost&amp;#34;}
  InstrumentationLibrary {name=&amp;#34;MyLibrary&amp;#34;}
  Spans
    Span {span_id=5, ...}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;You can use &lt;code&gt;otelcol.processor.groupbyattrs&lt;/code&gt; with its default configuration to compact the data:&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;otelcol.processor.groupbyattrs &amp;#34;default&amp;#34; {
  output {
    metrics = [otelcol.exporter.otlphttp.default.input]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The output is:&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;text&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-text&#34;&gt;Resource {host.name=&amp;#34;localhost&amp;#34;}
  InstrumentationLibrary {name=&amp;#34;MyLibrary&amp;#34;}
  Spans
    Span {span_id=1, ...}
    Span {span_id=3, ...}
    Span {span_id=4, ...}
  InstrumentationLibrary {name=&amp;#34;OtherLibrary&amp;#34;}
  Spans
    Span {span_id=2, ...}

Resource {host.name=&amp;#34;otherhost&amp;#34;}
  InstrumentationLibrary {name=&amp;#34;MyLibrary&amp;#34;}
  Spans
    Span {span_id=5, ...}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.groupbyattrs&lt;/code&gt; can accept arguments from the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that export &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-exporters&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.groupbyattrs&lt;/code&gt; has exports that can be consumed by the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that consume &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-consumers&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolprocessorgroupbyattrs">&lt;code>otelcol.processor.groupbyattrs&lt;/code>&lt;/h1>
&lt;p>&lt;code>otelcol.processor.groupbyattrs&lt;/code> accepts spans, metrics, and traces from other &lt;code>otelcol&lt;/code> components and groups them under the same resource.&lt;/p>
&lt;div class="admonition admonition-note">&lt;blockquote>&lt;p class="title text-uppercase">Note&lt;/p>&lt;p>&lt;code>otelcol.processor.groupbyattrs&lt;/code> is a wrapper over the upstream OpenTelemetry Collector &lt;a href="https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/processor/groupbyattrsprocessor" target="_blank" rel="noopener noreferrer">&lt;code>groupbyattrs&lt;/code>&lt;/a> processor.
If necessary, bug reports or feature requests will be redirected to the upstream repository.&lt;/p></description></item><item><title>otelcol.processor.interval</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.processor.interval/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.processor.interval/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolprocessorinterval&#34;&gt;&lt;code&gt;otelcol.processor.interval&lt;/code&gt;&lt;/h1&gt;


&lt;div data-shared=&#34;stability/experimental.md&#34;&gt;
            &lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;EXPERIMENTAL&lt;/strong&gt;: This is an &lt;a href=&#34;/docs/release-life-cycle/&#34;&gt;experimental&lt;/a&gt; component.
Experimental components are subject to frequent breaking changes, and may be removed with no equivalent replacement.
To enable and use an experimental component, you must set the &lt;code&gt;stability.level&lt;/code&gt; 
    &lt;a href=&#34;/docs/alloy/v1.15/reference/cli/run/&#34;&gt;flag&lt;/a&gt; to &lt;code&gt;experimental&lt;/code&gt;.&lt;/p&gt;&lt;/blockquote&gt;
&lt;/div&gt;

        
&lt;p&gt;&lt;code&gt;otelcol.processor.interval&lt;/code&gt; aggregates metrics and periodically forwards the latest values to the next component in the pipeline.
The processor supports aggregating the following metric types:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Monotonically increasing, cumulative sums&lt;/li&gt;
&lt;li&gt;Monotonically increasing, cumulative histograms&lt;/li&gt;
&lt;li&gt;Monotonically increasing, cumulative exponential histograms&lt;/li&gt;
&lt;li&gt;Gauges&lt;/li&gt;
&lt;li&gt;Summaries&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following metric types won&amp;rsquo;t be aggregated and will instead be passed, unchanged, to the next component in the pipeline:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;All delta metrics&lt;/li&gt;
&lt;li&gt;Non-monotonically increasing sums&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Aggregating data over an interval is an inherently lossy process.
You lose precision for monotonically increasing cumulative sums, histograms, and exponential histograms, but you don&amp;rsquo;t lose overall data.
You can lose data when you aggregate non-monotonically increasing sums, gauges, and summaries.
For example, a value can increase and decrease to the original value, and you can lose this change in the aggregation.
In most cases, this type of data loss is acceptable.
However, you can change the configuration so that these changed values pass through and aren&amp;rsquo;t aggregated.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;



&lt;div class=&#34;admonition admonition-warning&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Warning&lt;/p&gt;&lt;p&gt;After exporting, any internal state is cleared.
If no new metrics come in, the next interval will export nothing.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;



&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.processor.interval&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/processor/intervalprocessor&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;interval&lt;/code&gt;&lt;/a&gt; processor.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.processor.interval &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  output {
    metrics = [...]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following argument with &lt;code&gt;otelcol.processor.interval&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The interval in which the processor should export aggregated metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;60s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.processor.interval&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 3;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#output\&amp;#34;\u003e\u003ccode\u003eoutput\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures where to send received telemetry data.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#passthrough\&amp;#34;\u003e\u003ccode\u003epassthrough\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures metric types to be passed through instead of aggregated.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures where to send received telemetry data.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#passthrough&#34;&gt;&lt;code&gt;passthrough&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures metric types to be passed through instead of aggregated.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;



&lt;div data-shared=&#34;reference/components/output-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;output&lt;/code&gt; block configures a set of components to forward resulting telemetry data to.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send logs to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send metrics to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;traces&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send traces to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You must specify the &lt;code&gt;output&lt;/code&gt; block, but all its arguments are optional.
By default, telemetry data is dropped.
Configure the &lt;code&gt;metrics&lt;/code&gt;, &lt;code&gt;logs&lt;/code&gt;, and &lt;code&gt;traces&lt;/code&gt; arguments accordingly to send telemetry data to other components.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h3 id=&#34;passthrough&#34;&gt;&lt;code&gt;passthrough&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;passthrough&lt;/code&gt; block configures which metric types should be passed through instead of being aggregated.&lt;/p&gt;
&lt;p&gt;The following attributes are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;gauge&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Determines whether gauge metrics should be passed through as they&amp;rsquo;re or aggregated.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;summary&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Determines whether summary metrics should be passed through as they&amp;rsquo;re or aggregated.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;The following fields are exported and can be referenced by other components:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&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;code&gt;input&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A value that other components can use to send telemetry data to.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;input&lt;/code&gt; accepts &lt;code&gt;otelcol.Consumer&lt;/code&gt; data for metrics.&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.interval&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.interval&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;p&gt;This example receives OTLP metrics and aggregates them for 30s before sending to the next exporter.&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;otelcol.receiver.otlp &amp;#34;default&amp;#34; {
  grpc { ... }
  http { ... }

  output {
    metrics = [otelcol.processor.interval.default.input]
  }
}

otelcol.processor.interval &amp;#34;default&amp;#34; {
  interval = &amp;#34;30s&amp;#34;
  output {
    metrics = [otelcol.exporter.otlphttp.grafana_cloud.input]
  }
}

otelcol.exporter.otlphttp &amp;#34;grafana_cloud&amp;#34; {
  client {
    endpoint = &amp;#34;https://otlp-gateway-prod-gb-south-0.grafana.net/otlp&amp;#34;
    auth     = otelcol.auth.basic.grafana_cloud.handler
  }
}

otelcol.auth.basic &amp;#34;grafana_cloud&amp;#34; {
  username = env(&amp;#34;&amp;lt;GRAFANA_CLOUD_USERNAME&amp;gt;&amp;#34;)
  password = env(&amp;#34;&amp;lt;GRAFANA_CLOUD_API_KEY&amp;gt;&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;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Timestamp&lt;/th&gt;
              &lt;th&gt;Metric Name&lt;/th&gt;
              &lt;th&gt;Aggregation Temporality&lt;/th&gt;
              &lt;th&gt;Attributes&lt;/th&gt;
              &lt;th style=&#34;text-align: right&#34;&gt;Value&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;0&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;test_metric&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Cumulative&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;labelA: example1&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: right&#34;&gt;4.0&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;2&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;test_metric&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Cumulative&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;labelA: example2&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: right&#34;&gt;3.1&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;4&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;other_metric&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Delta&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fruitType: orange&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: right&#34;&gt;77.4&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;6&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;test_metric&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Cumulative&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;labelA: example1&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: right&#34;&gt;8.2&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;8&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;test_metric&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Cumulative&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;labelA: example1&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: right&#34;&gt;12.8&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;10&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;test_metric&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Cumulative&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;labelA: example2&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: right&#34;&gt;6.4&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The processor immediately passes the following metric to the next processor in the chain because it&amp;rsquo;s a Delta metric.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Timestamp&lt;/th&gt;
              &lt;th&gt;Metric Name&lt;/th&gt;
              &lt;th&gt;Aggregation Temporality&lt;/th&gt;
              &lt;th&gt;Attributes&lt;/th&gt;
              &lt;th style=&#34;text-align: right&#34;&gt;Value&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;4&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;other_metric&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Delta&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fruitType: orange&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: right&#34;&gt;77.4&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;At the next &lt;code&gt;interval&lt;/code&gt; (15s by default), the processor passed the following metrics to the next processor in the chain.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Timestamp&lt;/th&gt;
              &lt;th&gt;Metric Name&lt;/th&gt;
              &lt;th&gt;Aggregation Temporality&lt;/th&gt;
              &lt;th&gt;Attributes&lt;/th&gt;
              &lt;th style=&#34;text-align: right&#34;&gt;Value&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;8&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;test_metric&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Cumulative&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;labelA: example1&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: right&#34;&gt;12.8&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;10&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;test_metric&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Cumulative&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;labelA: example1&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: right&#34;&gt;6.4&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.interval&lt;/code&gt; can accept arguments from the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that export &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-exporters&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.interval&lt;/code&gt; has exports that can be consumed by the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that consume &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-consumers&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolprocessorinterval">&lt;code>otelcol.processor.interval&lt;/code>&lt;/h1>
&lt;div data-shared="stability/experimental.md">
&lt;blockquote>
&lt;p>&lt;strong>EXPERIMENTAL&lt;/strong>: This is an &lt;a href="/docs/release-life-cycle/">experimental&lt;/a> component.
Experimental components are subject to frequent breaking changes, and may be removed with no equivalent replacement.
To enable and use an experimental component, you must set the &lt;code>stability.level&lt;/code>
&lt;a href="/docs/alloy/v1.15/reference/cli/run/">flag&lt;/a> to &lt;code>experimental&lt;/code>.&lt;/p></description></item><item><title>otelcol.processor.k8sattributes</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.processor.k8sattributes/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.processor.k8sattributes/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolprocessork8sattributes&#34;&gt;&lt;code&gt;otelcol.processor.k8sattributes&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.k8sattributes&lt;/code&gt; accepts telemetry data from other &lt;code&gt;otelcol&lt;/code&gt; components and adds Kubernetes metadata to the resource attributes of spans, logs, or metrics.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.processor.k8sattributes&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/processor/k8sattributesprocessor&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;k8sattributes&lt;/code&gt;&lt;/a&gt; processor.
If necessary, bug reports or feature requests will be redirected to the upstream repository.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.processor.k8sattributes&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.processor.k8sattributes &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  output {
    metrics = [...]
    logs    = [...]
    traces  = [...]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.processor.k8sattributes&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;auth_type&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Authentication method when connecting to the Kubernetes API.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;serviceAccount&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;passthrough&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Pass through signals as-is, only adding a &lt;code&gt;k8s.pod.ip&lt;/code&gt; resource attribute.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;wait_for_metadata_timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How long to wait for Kubernetes metadata to arrive.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;10s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;wait_for_metadata&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to wait for Kubernetes metadata to arrive before processing telemetry.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The supported values for &lt;code&gt;auth_type&lt;/code&gt; are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;none&lt;/code&gt;: No authentication is required.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;serviceAccount&lt;/code&gt;: Use the built-in service account that Kubernetes automatically provisions for each Pod.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;kubeConfig&lt;/code&gt;: Use local credentials like those used by &lt;code&gt;kubectl&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tls&lt;/code&gt;: Use client TLS authentication.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Setting &lt;code&gt;passthrough&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; enables the &amp;ldquo;passthrough mode&amp;rdquo; of &lt;code&gt;otelcol.processor.k8sattributes&lt;/code&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Only a &lt;code&gt;k8s.pod.ip&lt;/code&gt; resource attribute will be added.&lt;/li&gt;
&lt;li&gt;No other metadata will be added.&lt;/li&gt;
&lt;li&gt;The Kubernetes API won&amp;rsquo;t be accessed.&lt;/li&gt;
&lt;li&gt;To correctly detect the Pod IPs, Alloy must receive spans directly from services.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;passthrough&lt;/code&gt; setting is useful when configuring Alloy as a Kubernetes Deployment.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A Alloy running as a Deployment can&amp;rsquo;t detect the IP addresses of pods generating telemetry data without any of the well-known IP attributes.
If the Deployment Alloy receives telemetry from Alloys deployed as DaemonSet, then some of those attributes might be missing.
As a workaround, you can configure the DaemonSet Alloys with &lt;code&gt;passthrough&lt;/code&gt; set to &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;By default, &lt;code&gt;otelcol.processor.k8sattributes&lt;/code&gt; is ready as soon as it starts, even if no metadata has been fetched yet.
If telemetry is sent to this processor before the metadata is synced, there will be no metadata to enrich the telemetry with.&lt;/p&gt;
&lt;p&gt;To wait for the metadata to be synced before &lt;code&gt;otelcol.processor.k8sattributes&lt;/code&gt; is ready, set the &lt;code&gt;wait_for_metadata&lt;/code&gt; option to &lt;code&gt;true&lt;/code&gt;.
Then, the processor won&amp;rsquo;t be ready until the metadata is fully synced. As a result, the start-up of Alloy will be blocked.
If the metadata can&amp;rsquo;t be synced by the time the &lt;code&gt;wait_for_metadata_timeout&lt;/code&gt; duration is reached,
&lt;code&gt;otelcol.processor.k8sattributes&lt;/code&gt; will become unhealthy and fail to start.&lt;/p&gt;
&lt;p&gt;If &lt;code&gt;otelcol.processor.k8sattributes&lt;/code&gt; is unhealthy, other Alloy components will still be able to start.
However, they may be unable to send telemetry to &lt;code&gt;otelcol.processor.k8sattributes&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.processor.k8sattributes&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 12;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#output\&amp;#34;\u003e\u003ccode\u003eoutput\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures where to send received telemetry data.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#exclude\&amp;#34;\u003e\u003ccode\u003eexclude\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eExclude pods from being processed.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eexclude\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#pod\&amp;#34;\u003e\u003ccode\u003epod\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003ePod information.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#extract\&amp;#34;\u003e\u003ccode\u003eextract\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eRules for extracting data from Kubernetes.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eextract\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#annotation\&amp;#34;\u003e\u003ccode\u003eannotation\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eCreating resource attributes from Kubernetes annotations.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eextract\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#label-extract\&amp;#34;\u003e\u003ccode\u003elabel\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eCreating resource attributes from Kubernetes labels.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#filter\&amp;#34;\u003e\u003ccode\u003efilter\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eFilters the data loaded from Kubernetes.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003efilter\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#field\&amp;#34;\u003e\u003ccode\u003efield\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eFilter pods by generic Kubernetes fields.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003efilter\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#label-filter\&amp;#34;\u003e\u003ccode\u003elabel\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eFilter pods by Kubernetes labels.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#pod_association\&amp;#34;\u003e\u003ccode\u003epod_association\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eRules to associate Pod metadata with telemetry signals.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epod_association\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#source\&amp;#34;\u003e\u003ccode\u003esource\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eSource information to identify a Pod.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures where to send received telemetry data.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#exclude&#34;&gt;&lt;code&gt;exclude&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Exclude pods from being processed.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;exclude&lt;/code&gt; &amp;gt; &lt;a href=&#34;#pod&#34;&gt;&lt;code&gt;pod&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Pod information.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#extract&#34;&gt;&lt;code&gt;extract&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Rules for extracting data from Kubernetes.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;extract&lt;/code&gt; &amp;gt; &lt;a href=&#34;#annotation&#34;&gt;&lt;code&gt;annotation&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Creating resource attributes from Kubernetes annotations.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;extract&lt;/code&gt; &amp;gt; &lt;a href=&#34;#label-extract&#34;&gt;&lt;code&gt;label&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Creating resource attributes from Kubernetes labels.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#filter&#34;&gt;&lt;code&gt;filter&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Filters the data loaded from Kubernetes.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;filter&lt;/code&gt; &amp;gt; &lt;a href=&#34;#field&#34;&gt;&lt;code&gt;field&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Filter pods by generic Kubernetes fields.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;filter&lt;/code&gt; &amp;gt; &lt;a href=&#34;#label-filter&#34;&gt;&lt;code&gt;label&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Filter pods by Kubernetes labels.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#pod_association&#34;&gt;&lt;code&gt;pod_association&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Rules to associate Pod metadata with telemetry signals.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;pod_association&lt;/code&gt; &amp;gt; &lt;a href=&#34;#source&#34;&gt;&lt;code&gt;source&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Source information to identify a Pod.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;



&lt;div data-shared=&#34;reference/components/output-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;output&lt;/code&gt; block configures a set of components to forward resulting telemetry data to.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send logs to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send metrics to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;traces&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send traces to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You must specify the &lt;code&gt;output&lt;/code&gt; block, but all its arguments are optional.
By default, telemetry data is dropped.
Configure the &lt;code&gt;metrics&lt;/code&gt;, &lt;code&gt;logs&lt;/code&gt;, and &lt;code&gt;traces&lt;/code&gt; arguments accordingly to send telemetry data to other components.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h3 id=&#34;exclude&#34;&gt;&lt;code&gt;exclude&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;exclude&lt;/code&gt; block configures which pods to exclude from the processor.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Pods with the name &lt;code&gt;jaeger-agent&lt;/code&gt; or &lt;code&gt;jaeger-collector&lt;/code&gt; are excluded by default.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h3 id=&#34;pod&#34;&gt;&lt;code&gt;pod&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;pod&lt;/code&gt; block configures a Pod to be excluded from the processor.&lt;/p&gt;
&lt;p&gt;The following attributes are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The name of the Pod&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;extract&#34;&gt;&lt;code&gt;extract&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;extract&lt;/code&gt; block configures which metadata, annotations, and labels to extract from the Pod.&lt;/p&gt;
&lt;p&gt;The following attributes are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;deployment_name_from_replicaset&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to set the deployment name by trimming the hash from the end of the replica set.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metadata&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Pre-configured metadata keys to add.&lt;/td&gt;
              &lt;td&gt;&lt;em&gt;See below&lt;/em&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;otel_annotations&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to set the &lt;a href=&#34;https://opentelemetry.io/docs/specs/semconv/non-normative/k8s-attributes&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;recommended resource attributes&lt;/a&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The supported &lt;code&gt;metadata&lt;/code&gt; keys are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;container.id&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;container.image.name&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;container.image.tag&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k8s.container.name&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k8s.cronjob.name&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k8s.cronjob.uid&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k8s.daemonset.name&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k8s.daemonset.uid&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k8s.deployment.name&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k8s.deployment.uid&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k8s.job.name&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k8s.job.uid&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k8s.namespace.name&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k8s.node.name&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k8s.pod.name&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k8s.pod.start_time&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k8s.pod.uid&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k8s.replicaset.name&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k8s.replicaset.uid&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k8s.statefulset.name&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k8s.statefulset.uid&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;service.instance.id&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;service.name&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;service.namespace&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;service.version&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The &lt;code&gt;service.*&lt;/code&gt; metadata are calculated following the OpenTelemetry &lt;a href=&#34;https://opentelemetry.io/docs/specs/semconv/non-normative/k8s-attributes&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;semantic conventions&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;By default, if &lt;code&gt;metadata&lt;/code&gt; isn&amp;rsquo;t specified, the following fields are extracted and added to spans, metrics, and logs as resource attributes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;container.image.name&lt;/code&gt; (requires one of the following additional attributes to be set: &lt;code&gt;container.id&lt;/code&gt; or &lt;code&gt;k8s.container.name&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;container.image.tag&lt;/code&gt; (requires one of the following additional attributes to be set: &lt;code&gt;container.id&lt;/code&gt; or &lt;code&gt;k8s.container.name&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k8s.container.name&lt;/code&gt; (requires an additional attribute to be set: &lt;code&gt;container.id&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k8s.deployment.name&lt;/code&gt; (if the Pod is controlled by a deployment)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k8s.namespace.name&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k8s.node.name&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k8s.pod.name&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k8s.pod.start_time&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k8s.pod.uid&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When &lt;code&gt;otel_annotations&lt;/code&gt; is set to &lt;code&gt;true&lt;/code&gt;, annotations such as &lt;code&gt;resource.opentelemetry.io/exampleResource&lt;/code&gt; will be translated to the &lt;code&gt;exampleResource&lt;/code&gt; resource attribute, etc.&lt;/p&gt;
&lt;p&gt;When &lt;code&gt;deployment_name_from_replicaset&lt;/code&gt; is set to &lt;code&gt;true&lt;/code&gt;, the processor will extract deployment name from replicaset name by trimming pod template hash. This will disable watching for replicaset resources, which can be useful in environments with limited RBAC permissions as the processor will not need &lt;code&gt;get&lt;/code&gt;, &lt;code&gt;watch&lt;/code&gt;, and &lt;code&gt;list&lt;/code&gt; permissions for replicasets.&lt;/p&gt;
&lt;h3 id=&#34;annotation&#34;&gt;&lt;code&gt;annotation&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;annotation&lt;/code&gt; block configures how to extract Kubernetes annotations.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/extract-field-block.md&#34;&gt;
            &lt;p&gt;The following attributes are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;from&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The source of the labels or annotations.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;pod&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_regex&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A regular expression used to extract a key that matches the regular expression.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The annotation or label name. This key must exactly match an annotation or label name.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;tag_name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The name of the resource attribute added to logs, metrics, or spans.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;code&gt;from&lt;/code&gt; attribute must be one of &lt;code&gt;pod&lt;/code&gt;, &lt;code&gt;namespace&lt;/code&gt;, &lt;code&gt;deployment&lt;/code&gt;, &lt;code&gt;statefulset&lt;/code&gt;, &lt;code&gt;daemonset&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, or &lt;code&gt;node&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;When you don&amp;rsquo;t specify the &lt;code&gt;tag_name&lt;/code&gt;, a default tag name is used with the format:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;k8s.pod.annotations.&amp;lt;annotation key&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k8s.pod.labels.&amp;lt;label key&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For example, if &lt;code&gt;tag_name&lt;/code&gt; isn&amp;rsquo;t specified and the key is &lt;code&gt;git_sha&lt;/code&gt;, the attribute name will be &lt;code&gt;k8s.pod.annotations.git_sha&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;You can set either the &lt;code&gt;key&lt;/code&gt; attribute or the &lt;code&gt;key_regex&lt;/code&gt; attribute, but not both.
When &lt;code&gt;key_regex&lt;/code&gt; is present, &lt;code&gt;tag_name&lt;/code&gt; supports back reference to both named capturing and positioned capturing.&lt;/p&gt;
&lt;p&gt;For example, assume your Pod spec contains the following labels:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;app.kubernetes.io/component: mysql&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;app.kubernetes.io/version: 5.7.21&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you&amp;rsquo;d like to add tags for all labels with the prefix &lt;code&gt;app.kubernetes.io/&lt;/code&gt; and trim the prefix, then you can specify the following extraction rules:&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;extract {
  label {
    from = &amp;#34;pod&amp;#34;
    key_regex = &amp;#34;kubernetes.io/(.*)&amp;#34;
    tag_name  = &amp;#34;$1&amp;#34;
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;These rules add the &lt;code&gt;component&lt;/code&gt; and &lt;code&gt;version&lt;/code&gt; tags to the spans or metrics.&lt;/p&gt;
&lt;p&gt;You can set the &lt;code&gt;from&lt;/code&gt; attribute to &lt;code&gt;&amp;quot;pod&amp;quot;&lt;/code&gt;, &lt;code&gt;&amp;quot;namespace&amp;quot;&lt;/code&gt;, &lt;code&gt;&amp;quot;node&amp;quot;&lt;/code&gt;, or &lt;code&gt;&amp;quot;deployment&amp;quot;&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;

        


&lt;div class=&#34;admonition admonition-caution&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Caution&lt;/p&gt;&lt;p&gt;The &lt;code&gt;regex&lt;/code&gt; argument has been removed.
Use the &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.147.0/pkg/ottl/ottlfuncs/README.md#extractpatterns&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;ExtractPatterns&lt;/a&gt; function from &lt;code&gt;otelcol.processor.transform&lt;/code&gt; instead.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h3 id=&#34;label-extract&#34;&gt;&lt;code&gt;label&lt;/code&gt; extract&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;label&lt;/code&gt; block configures how to extract Kubernetes labels.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/extract-field-block.md&#34;&gt;
            &lt;p&gt;The following attributes are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;from&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The source of the labels or annotations.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;pod&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_regex&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A regular expression used to extract a key that matches the regular expression.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The annotation or label name. This key must exactly match an annotation or label name.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;tag_name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The name of the resource attribute added to logs, metrics, or spans.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;code&gt;from&lt;/code&gt; attribute must be one of &lt;code&gt;pod&lt;/code&gt;, &lt;code&gt;namespace&lt;/code&gt;, &lt;code&gt;deployment&lt;/code&gt;, &lt;code&gt;statefulset&lt;/code&gt;, &lt;code&gt;daemonset&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, or &lt;code&gt;node&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;When you don&amp;rsquo;t specify the &lt;code&gt;tag_name&lt;/code&gt;, a default tag name is used with the format:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;k8s.pod.annotations.&amp;lt;annotation key&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k8s.pod.labels.&amp;lt;label key&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For example, if &lt;code&gt;tag_name&lt;/code&gt; isn&amp;rsquo;t specified and the key is &lt;code&gt;git_sha&lt;/code&gt;, the attribute name will be &lt;code&gt;k8s.pod.annotations.git_sha&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;You can set either the &lt;code&gt;key&lt;/code&gt; attribute or the &lt;code&gt;key_regex&lt;/code&gt; attribute, but not both.
When &lt;code&gt;key_regex&lt;/code&gt; is present, &lt;code&gt;tag_name&lt;/code&gt; supports back reference to both named capturing and positioned capturing.&lt;/p&gt;
&lt;p&gt;For example, assume your Pod spec contains the following labels:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;app.kubernetes.io/component: mysql&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;app.kubernetes.io/version: 5.7.21&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you&amp;rsquo;d like to add tags for all labels with the prefix &lt;code&gt;app.kubernetes.io/&lt;/code&gt; and trim the prefix, then you can specify the following extraction rules:&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;extract {
  label {
    from = &amp;#34;pod&amp;#34;
    key_regex = &amp;#34;kubernetes.io/(.*)&amp;#34;
    tag_name  = &amp;#34;$1&amp;#34;
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;These rules add the &lt;code&gt;component&lt;/code&gt; and &lt;code&gt;version&lt;/code&gt; tags to the spans or metrics.&lt;/p&gt;
&lt;p&gt;You can set the &lt;code&gt;from&lt;/code&gt; attribute to &lt;code&gt;&amp;quot;pod&amp;quot;&lt;/code&gt;, &lt;code&gt;&amp;quot;namespace&amp;quot;&lt;/code&gt;, &lt;code&gt;&amp;quot;node&amp;quot;&lt;/code&gt;, or &lt;code&gt;&amp;quot;deployment&amp;quot;&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;

        


&lt;div class=&#34;admonition admonition-caution&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Caution&lt;/p&gt;&lt;p&gt;The &lt;code&gt;regex&lt;/code&gt; argument has been removed.
Use the &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.147.0/pkg/ottl/ottlfuncs/README.md#extractpatterns&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;ExtractPatterns&lt;/a&gt; function from &lt;code&gt;otelcol.processor.transform&lt;/code&gt; instead.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h3 id=&#34;filter&#34;&gt;&lt;code&gt;filter&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;filter&lt;/code&gt; block configures which nodes to get data from and which fields and labels to fetch.&lt;/p&gt;
&lt;p&gt;The following attributes are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;node&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Configures a Kubernetes node name or host name.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;namespace&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Filters all pods by the provided namespace. All other pods are ignored.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If &lt;code&gt;node&lt;/code&gt; is specified, then any pods not running on the specified node will be ignored by &lt;code&gt;otelcol.processor.k8sattributes&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;field&#34;&gt;&lt;code&gt;field&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;field&lt;/code&gt; block allows you to filter pods by generic Kubernetes fields.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/field-filter-block.md&#34;&gt;
            &lt;p&gt;The following attributes are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The key or name of the field or labels that a filter can use.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;value&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The value associated with the key that a filter can use.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;op&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The filter operation to apply on the given key: value pair.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;equals&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You can use the following values for &lt;code&gt;op&lt;/code&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;equals&lt;/code&gt;: The field value must equal the provided value.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;not-equals&lt;/code&gt;: The field value must not be equal to the provided value.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;exists&lt;/code&gt;: The field value must exist. Only applicable to &lt;code&gt;annotation&lt;/code&gt; fields.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;does-not-exist&lt;/code&gt;: The field value must not exist. Only applicable to &lt;code&gt;annotation&lt;/code&gt; fields.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;label-filter&#34;&gt;&lt;code&gt;label&lt;/code&gt; filter&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;label&lt;/code&gt; block allows you to filter pods by generic Kubernetes labels.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/field-filter-block.md&#34;&gt;
            &lt;p&gt;The following attributes are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The key or name of the field or labels that a filter can use.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;value&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The value associated with the key that a filter can use.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;op&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The filter operation to apply on the given key: value pair.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;equals&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You can use the following values for &lt;code&gt;op&lt;/code&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;equals&lt;/code&gt;: The field value must equal the provided value.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;not-equals&lt;/code&gt;: The field value must not be equal to the provided value.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;exists&lt;/code&gt;: The field value must exist. Only applicable to &lt;code&gt;annotation&lt;/code&gt; fields.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;does-not-exist&lt;/code&gt;: The field value must not exist. Only applicable to &lt;code&gt;annotation&lt;/code&gt; fields.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;pod_association&#34;&gt;&lt;code&gt;pod_association&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;pod_association&lt;/code&gt; block configures rules on how to associate logs/traces/metrics to pods.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;pod_association&lt;/code&gt; block doesn&amp;rsquo;t support any arguments and is configured fully through child blocks.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;pod_association&lt;/code&gt; block can be repeated multiple times, to configure additional rules.&lt;/p&gt;
&lt;h4 id=&#34;example&#34;&gt;Example&lt;/h4&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;pod_association {
    source {
        from = &amp;#34;resource_attribute&amp;#34;
        name = &amp;#34;k8s.pod.ip&amp;#34;
    }
}

pod_association {
    source {
        from = &amp;#34;resource_attribute&amp;#34;
        name = &amp;#34;k8s.pod.uid&amp;#34;
    }
    source {
        from = &amp;#34;connection&amp;#34;
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;source&#34;&gt;&lt;code&gt;source&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;source&lt;/code&gt; block configures a Pod association rule.
This is used by the &lt;code&gt;k8sattributes&lt;/code&gt; processor to determine the Pod associated with a telemetry signal.&lt;/p&gt;
&lt;p&gt;When multiple &lt;code&gt;source&lt;/code&gt; blocks are specified inside a &lt;code&gt;pod_association&lt;/code&gt; block, both &lt;code&gt;source&lt;/code&gt; blocks has to match for the Pod to be associated with the telemetry signal.&lt;/p&gt;
&lt;p&gt;The following attributes are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;from&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The association method. Currently supports &lt;code&gt;resource_attribute&lt;/code&gt; and &lt;code&gt;connection&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Name represents extracted key name. For example, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;pod_uid&lt;/code&gt;, &lt;code&gt;k8s.pod.ip&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;The following fields are exported and can be referenced by other components:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&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;code&gt;input&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A value that other components can use to send telemetry data to.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;input&lt;/code&gt; accepts &lt;code&gt;otelcol.Consumer&lt;/code&gt; data for any telemetry signal (metrics, logs, or traces).&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.k8sattributes&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.k8sattributes&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug
information.&lt;/p&gt;
&lt;h2 id=&#34;examples&#34;&gt;Examples&lt;/h2&gt;
&lt;h3 id=&#34;basic-usage&#34;&gt;Basic usage&lt;/h3&gt;
&lt;p&gt;In most cases, this is enough to get started. It&amp;rsquo;ll add these resource attributes to all logs, metrics, and traces:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;k8s.deployment.name&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k8s.namespace.name&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k8s.node.name&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k8s.pod.name&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k8s.pod.start_time&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k8s.pod.uid&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Example:&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;otelcol.receiver.otlp &amp;#34;default&amp;#34; {
  http {}
  grpc {}

  output {
    metrics = [otelcol.processor.k8sattributes.default.input]
    logs    = [otelcol.processor.k8sattributes.default.input]
    traces  = [otelcol.processor.k8sattributes.default.input]
  }
}

otelcol.processor.k8sattributes &amp;#34;default&amp;#34; {
  output {
    metrics = [otelcol.exporter.otlphttp.default.input]
    logs    = [otelcol.exporter.otlphttp.default.input]
    traces  = [otelcol.exporter.otlphttp.default.input]
  }
}

otelcol.exporter.otlphttp &amp;#34;default&amp;#34; {
  client {
    endpoint = sys.env(&amp;#34;&amp;lt;OTLP_ENDPOINT&amp;gt;&amp;#34;)
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;add-additional-metadata-and-labels&#34;&gt;Add additional metadata and labels&lt;/h3&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;otelcol.receiver.otlp &amp;#34;default&amp;#34; {
  http {}
  grpc {}

  output {
    metrics = [otelcol.processor.k8sattributes.default.input]
    logs    = [otelcol.processor.k8sattributes.default.input]
    traces  = [otelcol.processor.k8sattributes.default.input]
  }
}

otelcol.processor.k8sattributes &amp;#34;default&amp;#34; {
  extract {
    label {
      from      = &amp;#34;pod&amp;#34;
      key_regex = &amp;#34;(.*)/(.*)&amp;#34;
      tag_name  = &amp;#34;$1.$2&amp;#34;
    }

    metadata = [
      &amp;#34;k8s.namespace.name&amp;#34;,
      &amp;#34;k8s.deployment.name&amp;#34;,
      &amp;#34;k8s.statefulset.name&amp;#34;,
      &amp;#34;k8s.daemonset.name&amp;#34;,
      &amp;#34;k8s.cronjob.name&amp;#34;,
      &amp;#34;k8s.job.name&amp;#34;,
      &amp;#34;k8s.node.name&amp;#34;,
      &amp;#34;k8s.pod.name&amp;#34;,
      &amp;#34;k8s.pod.uid&amp;#34;,
      &amp;#34;k8s.pod.start_time&amp;#34;,
    ]

    otel_annotations = true
  }

  output {
    metrics = [otelcol.exporter.otlphttp.default.input]
    logs    = [otelcol.exporter.otlphttp.default.input]
    traces  = [otelcol.exporter.otlphttp.default.input]
  }
}

otelcol.exporter.otlphttp &amp;#34;default&amp;#34; {
  client {
    endpoint = sys.env(&amp;#34;&amp;lt;OTLP_ENDPOINT&amp;gt;&amp;#34;)
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;add-kubernetes-metadata-to-prometheus-metrics&#34;&gt;Add Kubernetes metadata to Prometheus metrics&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.k8sattributes&lt;/code&gt; adds metadata to metrics signals in the form of resource attributes.
To display the metadata as labels of Prometheus metrics, the OTLP attributes must be converted from resource attributes to datapoint attributes.
One way to do this is by using an &lt;code&gt;otelcol.processor.transform&lt;/code&gt; component.&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;otelcol.receiver.otlp &amp;#34;default&amp;#34; {
  http {}
  grpc {}

  output {
    metrics = [otelcol.processor.k8sattributes.default.input]
  }
}

otelcol.processor.k8sattributes &amp;#34;default&amp;#34; {
  extract {
    label {
      from = &amp;#34;pod&amp;#34;
    }

    metadata = [
      &amp;#34;k8s.namespace.name&amp;#34;,
      &amp;#34;k8s.pod.name&amp;#34;,
    ]
  }

  output {
    metrics = [otelcol.processor.transform.add_kube_attrs.input]
  }
}

otelcol.processor.transform &amp;#34;add_kube_attrs&amp;#34; {
  error_mode = &amp;#34;ignore&amp;#34;

  metric_statements {
    context = &amp;#34;datapoint&amp;#34;
    statements = [
      &amp;#34;set(attributes[\&amp;#34;k8s.pod.name\&amp;#34;], resource.attributes[\&amp;#34;k8s.pod.name\&amp;#34;])&amp;#34;,
      &amp;#34;set(attributes[\&amp;#34;k8s.namespace.name\&amp;#34;], resource.attributes[\&amp;#34;k8s.namespace.name\&amp;#34;])&amp;#34;,
    ]
  }

  output {
    metrics = [otelcol.exporter.prometheus.default.input]
  }
}

otelcol.exporter.prometheus &amp;#34;default&amp;#34; {
  forward_to = [prometheus.remote_write.mimir.receiver]
}

prometheus.remote_write &amp;#34;mimir&amp;#34; {
  endpoint {
    url = &amp;#34;http://mimir:9009/api/v1/push&amp;#34;
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.k8sattributes&lt;/code&gt; can accept arguments from the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that export &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-exporters&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.k8sattributes&lt;/code&gt; has exports that can be consumed by the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that consume &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-consumers&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolprocessork8sattributes">&lt;code>otelcol.processor.k8sattributes&lt;/code>&lt;/h1>
&lt;p>&lt;code>otelcol.processor.k8sattributes&lt;/code> accepts telemetry data from other &lt;code>otelcol&lt;/code> components and adds Kubernetes metadata to the resource attributes of spans, logs, or metrics.&lt;/p>
&lt;div class="admonition admonition-note">&lt;blockquote>&lt;p class="title text-uppercase">Note&lt;/p>&lt;p>&lt;code>otelcol.processor.k8sattributes&lt;/code> is a wrapper over the upstream OpenTelemetry Collector &lt;a href="https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/processor/k8sattributesprocessor" target="_blank" rel="noopener noreferrer">&lt;code>k8sattributes&lt;/code>&lt;/a> processor.
If necessary, bug reports or feature requests will be redirected to the upstream repository.&lt;/p></description></item><item><title>otelcol.processor.memory_limiter</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.processor.memory_limiter/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.processor.memory_limiter/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolprocessormemory_limiter&#34;&gt;&lt;code&gt;otelcol.processor.memory_limiter&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.memory_limiter&lt;/code&gt; is used to prevent out of memory situations on a telemetry pipeline by performing periodic checks of memory usage.
If usage exceeds the defined limits, data is dropped and garbage collections are triggered to reduce it.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;memory_limiter&lt;/code&gt; component uses both soft and hard limits, where the hard limit is always equal or larger than the soft limit.
When memory usage goes above the soft limit, the processor component drops data and returns errors to the preceding components in the pipeline.
When usage exceeds the hard limit, the processor forces a garbage collection to try and free memory.
When usage is below the soft limit, no data is dropped and no forced garbage collection is performed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.processor.memory_limiter&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector/tree/v0.147.0/processor/memorylimiterprocessor&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;memorylimiter&lt;/code&gt;&lt;/a&gt; processor.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.processor.memory_limiter&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.processor.memory_limiter &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  check_interval = &amp;#34;1s&amp;#34;

  limit = &amp;#34;50MiB&amp;#34; // alternatively, set `limit_percentage` and `spike_limit_percentage`

  output {
    metrics = [...]
    logs    = [...]
    traces  = [...]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.processor.memory_limiter&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;check_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How often to check memory usage.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;limit_percentage&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum amount of total available memory targeted to be allocated by the process heap.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;limit&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum amount of memory targeted to be allocated by the process heap.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0MiB&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;spike_limit_percentage&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum spike expected between the measurements of memory usage.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;spike_limit&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum spike expected between the measurements of memory usage.&lt;/td&gt;
              &lt;td&gt;20% of &lt;code&gt;limit&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The arguments must define either &lt;code&gt;limit&lt;/code&gt; or the &lt;code&gt;limit_percentage, spike_limit_percentage&lt;/code&gt; pair, but not both.&lt;/p&gt;
&lt;p&gt;The configuration options &lt;code&gt;limit&lt;/code&gt; and &lt;code&gt;limit_percentage&lt;/code&gt; define the hard limits.
The soft limits are then calculated as the hard limit minus the &lt;code&gt;spike_limit&lt;/code&gt; or &lt;code&gt;spike_limit_percentage&lt;/code&gt; values respectively.
The recommended value for spike limits is about 20% of the corresponding hard limit.&lt;/p&gt;
&lt;p&gt;The recommended &lt;code&gt;check_interval&lt;/code&gt; value is 1 second.
If the traffic through the component is spiky in nature, it&amp;rsquo;s recommended to either decrease the interval or increase the spike limit to avoid going over the hard limit.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;limit&lt;/code&gt; and &lt;code&gt;spike_limit&lt;/code&gt; values must be larger than 1 MiB.&lt;/p&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.processor.memory_limiter&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 2;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#output\&amp;#34;\u003e\u003ccode\u003eoutput\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures where to send received telemetry data.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures where to send received telemetry data.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;



&lt;div data-shared=&#34;reference/components/output-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;output&lt;/code&gt; block configures a set of components to forward resulting telemetry data to.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send logs to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send metrics to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;traces&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send traces to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You must specify the &lt;code&gt;output&lt;/code&gt; block, but all its arguments are optional.
By default, telemetry data is dropped.
Configure the &lt;code&gt;metrics&lt;/code&gt;, &lt;code&gt;logs&lt;/code&gt;, and &lt;code&gt;traces&lt;/code&gt; arguments accordingly to send telemetry data to other components.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;The following fields are exported and can be referenced by other components:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&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;code&gt;input&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A value that other components can use to send telemetry data to.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;input&lt;/code&gt; accepts &lt;code&gt;otelcol.Consumer&lt;/code&gt; data for any telemetry signal (metrics, logs, or traces).&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.memory_limiter&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.memory_limiter&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.memory_limiter&lt;/code&gt; can accept arguments from the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that export &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-exporters&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.memory_limiter&lt;/code&gt; has exports that can be consumed by the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that consume &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-consumers&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;]]></content><description>&lt;h1 id="otelcolprocessormemory_limiter">&lt;code>otelcol.processor.memory_limiter&lt;/code>&lt;/h1>
&lt;p>&lt;code>otelcol.processor.memory_limiter&lt;/code> is used to prevent out of memory situations on a telemetry pipeline by performing periodic checks of memory usage.
If usage exceeds the defined limits, data is dropped and garbage collections are triggered to reduce it.&lt;/p></description></item><item><title>otelcol.processor.metric_start_time</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.processor.metric_start_time/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.processor.metric_start_time/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolprocessormetric_start_time&#34;&gt;&lt;code&gt;otelcol.processor.metric_start_time&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.metric_start_time&lt;/code&gt; accepts metrics from other &lt;code&gt;otelcol&lt;/code&gt; components and sets the start time for cumulative metric datapoints which do not already have a start time.
This processor is commonly used with &lt;code&gt;otelcol.receiver.prometheus&lt;/code&gt;, which produces metric points without a &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-proto/blob/v1.9.0/opentelemetry/proto/metrics/v1/metrics.proto#L181-L187&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;start time&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Grafana Mimir ingests OTLP metric start times only when it is configured with the &lt;code&gt;-distributor.otel-created-timestamp-zero-ingestion-enabled&lt;/code&gt; flag.
Without this configuration, setting start times in Alloy has no effect on ingestion behavior.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.processor.metric_start_time&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/processor/metricstarttimeprocessor&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;metricstarttime&lt;/code&gt;&lt;/a&gt; processor.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.processor.metric_start_time&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.processor.metric_start_time &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  output {
    metrics = [...]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.processor.metric_start_time&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;strategy&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Strategy to use for setting start time.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;true_reset_point&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;gc_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How long to wait before removing a metric from the cache.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;10m&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;start_time_metric_regex&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Regex for a metric name containing the start time. Only applies when strategy is &lt;code&gt;start_time_metric&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;strategies&#34;&gt;Strategies&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;strategy&lt;/code&gt; argument determines how the processor handles missing start times for cumulative metrics. Valid values are:&lt;/p&gt;
&lt;h4 id=&#34;true_reset_point-default&#34;&gt;&lt;code&gt;true_reset_point&lt;/code&gt; (default)&lt;/h4&gt;
&lt;p&gt;Produces a stream of points that starts with a &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/data-model.md#cumulative-streams-inserting-true-reset-points&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;True Reset Point&lt;/a&gt;.
The true reset point has its start time set to its end timestamp, indicating the absolute value of the cumulative point when the collector first observed it.
Subsequent points reuse the start timestamp of the initial true reset point.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The absolute value of the cumulative metric is preserved.&lt;/li&gt;
&lt;li&gt;It is possible to calculate the correct rate between any two points since the timestamps and values are not modified.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;This strategy is &lt;strong&gt;stateful&lt;/strong&gt; because the initial True Reset point is necessary to properly calculate rates on subsequent points.&lt;/li&gt;
&lt;li&gt;The True Reset point doesn&amp;rsquo;t make sense semantically. It has a zero duration, but non-zero values.&lt;/li&gt;
&lt;li&gt;Many backends reject points with equal start and end timestamps.
&lt;ul&gt;
&lt;li&gt;If the True Reset point is rejected, the next point will appear to have a very large rate.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Example transformation:&lt;/strong&gt;&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Input Timestamp&lt;/th&gt;
              &lt;th&gt;Input Value&lt;/th&gt;
              &lt;th&gt;Output Start Time&lt;/th&gt;
              &lt;th&gt;Output End Time&lt;/th&gt;
              &lt;th&gt;Output Value&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;T1&lt;/td&gt;
              &lt;td&gt;10&lt;/td&gt;
              &lt;td&gt;T1&lt;/td&gt;
              &lt;td&gt;T1&lt;/td&gt;
              &lt;td&gt;10&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;T2&lt;/td&gt;
              &lt;td&gt;15&lt;/td&gt;
              &lt;td&gt;T1&lt;/td&gt;
              &lt;td&gt;T2&lt;/td&gt;
              &lt;td&gt;15&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;T3&lt;/td&gt;
              &lt;td&gt;25&lt;/td&gt;
              &lt;td&gt;T1&lt;/td&gt;
              &lt;td&gt;T3&lt;/td&gt;
              &lt;td&gt;25&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;subtract_initial_point&#34;&gt;&lt;code&gt;subtract_initial_point&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;Drops the first point in a cumulative series, subtracting that point&amp;rsquo;s value from subsequent points and using the initial point&amp;rsquo;s timestamp as the start timestamp for subsequent points.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cumulative semantics are preserved. This means that for a point with a given &lt;code&gt;[start, end]&lt;/code&gt; interval, the cumulative value occurred in that interval.&lt;/li&gt;
&lt;li&gt;Rates over resulting timeseries are correct, even if points are lost. This strategy is not stateful.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The absolute value of counters is modified. This is generally not an issue, since counters are usually used to compute rates.&lt;/li&gt;
&lt;li&gt;The initial point is dropped, which loses information.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Example transformation:&lt;/strong&gt;&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Input Timestamp&lt;/th&gt;
              &lt;th&gt;Input Value&lt;/th&gt;
              &lt;th&gt;Output Start Time&lt;/th&gt;
              &lt;th&gt;Output End Time&lt;/th&gt;
              &lt;th&gt;Output Value&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;T1&lt;/td&gt;
              &lt;td&gt;10&lt;/td&gt;
              &lt;td&gt;&lt;em&gt;(dropped)&lt;/em&gt;&lt;/td&gt;
              &lt;td&gt;&lt;em&gt;(dropped)&lt;/em&gt;&lt;/td&gt;
              &lt;td&gt;&lt;em&gt;(dropped)&lt;/em&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;T2&lt;/td&gt;
              &lt;td&gt;15&lt;/td&gt;
              &lt;td&gt;T1&lt;/td&gt;
              &lt;td&gt;T2&lt;/td&gt;
              &lt;td&gt;5&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;T3&lt;/td&gt;
              &lt;td&gt;25&lt;/td&gt;
              &lt;td&gt;T1&lt;/td&gt;
              &lt;td&gt;T3&lt;/td&gt;
              &lt;td&gt;15&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;start_time_metric&#34;&gt;&lt;code&gt;start_time_metric&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;Looks for the &lt;code&gt;process_start_time&lt;/code&gt; metric (or a metric matching &lt;code&gt;start_time_metric_regex&lt;/code&gt;) and uses its value as the start time for all other cumulative points in the batch of metrics.
If the start time metric is not found, it falls back to the time at which the collector started.&lt;/p&gt;
&lt;p&gt;This strategy should only be used in limited circumstances:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;When your application has a metric with the start time in Unix seconds, such as &lt;code&gt;process_start_time_seconds&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The processor is used &lt;em&gt;before&lt;/em&gt; any batching, so that the batch of metrics all originate from a single application.&lt;/li&gt;
&lt;li&gt;This strategy can be used when the collector is run as a sidecar to the application, where the collector&amp;rsquo;s start time is a good approximation of the application&amp;rsquo;s start time.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If the collector&amp;rsquo;s start time is used as a fallback and the collector restarts, it can produce rates that are incorrect and higher than expected.&lt;/li&gt;
&lt;li&gt;The process&amp;rsquo; start time isn&amp;rsquo;t the time at which individual instruments or timeseries are initialized. It may result in lower rates if the first observation is significantly later than the process&amp;rsquo; start time.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Example transformation:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Given a &lt;code&gt;process_start_time_seconds&lt;/code&gt; metric with value &lt;code&gt;T0&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Input Timestamp&lt;/th&gt;
              &lt;th&gt;Input Value&lt;/th&gt;
              &lt;th&gt;Output Start Time&lt;/th&gt;
              &lt;th&gt;Output End Time&lt;/th&gt;
              &lt;th&gt;Output Value&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;T1&lt;/td&gt;
              &lt;td&gt;10&lt;/td&gt;
              &lt;td&gt;T0&lt;/td&gt;
              &lt;td&gt;T1&lt;/td&gt;
              &lt;td&gt;10&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;T2&lt;/td&gt;
              &lt;td&gt;15&lt;/td&gt;
              &lt;td&gt;T0&lt;/td&gt;
              &lt;td&gt;T2&lt;/td&gt;
              &lt;td&gt;15&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;T3&lt;/td&gt;
              &lt;td&gt;25&lt;/td&gt;
              &lt;td&gt;T0&lt;/td&gt;
              &lt;td&gt;T3&lt;/td&gt;
              &lt;td&gt;25&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;garbage-collection&#34;&gt;Garbage collection&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;gc_interval&lt;/code&gt; argument defines how often to check if any resources have not emitted data since the last check.
If a resource hasn&amp;rsquo;t emitted any data, it&amp;rsquo;s removed from the cache to free up memory.
Any additional data from resources removed from the cache will be given a new start time.&lt;/p&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.processor.metric_start_time&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 2;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#output\&amp;#34;\u003e\u003ccode\u003eoutput\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures where to send received telemetry data.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures where to send received telemetry data.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;



&lt;div data-shared=&#34;reference/components/output-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;output&lt;/code&gt; block configures a set of components to forward resulting telemetry data to.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send logs to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send metrics to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;traces&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send traces to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You must specify the &lt;code&gt;output&lt;/code&gt; block, but all its arguments are optional.
By default, telemetry data is dropped.
Configure the &lt;code&gt;metrics&lt;/code&gt;, &lt;code&gt;logs&lt;/code&gt;, and &lt;code&gt;traces&lt;/code&gt; arguments accordingly to send telemetry data to other components.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;The following fields are exported and can be referenced by other components:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&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;code&gt;input&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A value that other components can use to send telemetry data to.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;input&lt;/code&gt; accepts &lt;code&gt;otelcol.Consumer&lt;/code&gt; data for metrics.&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.metric_start_time&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.metric_start_time&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;examples&#34;&gt;Examples&lt;/h2&gt;
&lt;h3 id=&#34;basic-usage-with-default-strategy&#34;&gt;Basic usage with default strategy&lt;/h3&gt;
&lt;p&gt;This example uses the default &lt;code&gt;true_reset_point&lt;/code&gt; strategy to set start times for Prometheus metrics:&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;otelcol.receiver.prometheus &amp;#34;default&amp;#34; {
  output {
    metrics = [otelcol.processor.metric_start_time.default.input]
  }
}

otelcol.processor.metric_start_time &amp;#34;default&amp;#34; {
  output {
    metrics = [otelcol.exporter.otlphttp.production.input]
  }
}

otelcol.exporter.otlphttp &amp;#34;production&amp;#34; {
  client {
    endpoint = sys.env(&amp;#34;OTLP_SERVER_ENDPOINT&amp;#34;)
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;using-subtract_initial_point-strategy&#34;&gt;Using &lt;code&gt;subtract_initial_point&lt;/code&gt; strategy&lt;/h3&gt;
&lt;p&gt;This example uses the &lt;code&gt;subtract_initial_point&lt;/code&gt; strategy, which preserves cumulative semantics and produces correct rates:&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;otelcol.receiver.prometheus &amp;#34;default&amp;#34; {
  output {
    metrics = [otelcol.processor.metric_start_time.default.input]
  }
}

otelcol.processor.metric_start_time &amp;#34;default&amp;#34; {
  strategy = &amp;#34;subtract_initial_point&amp;#34;

  output {
    metrics = [otelcol.exporter.otlphttp.production.input]
  }
}

otelcol.exporter.otlphttp &amp;#34;production&amp;#34; {
  client {
    endpoint = sys.env(&amp;#34;OTLP_SERVER_ENDPOINT&amp;#34;)
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;use-a-start_time_metric-strategy-with-a-custom-regular-expression&#34;&gt;Use a &lt;code&gt;start_time_metric&lt;/code&gt; strategy with a custom regular expression&lt;/h3&gt;
&lt;p&gt;This example uses the &lt;code&gt;start_time_metric&lt;/code&gt; strategy with a custom regular expression to find the start time metric:&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;otelcol.receiver.prometheus &amp;#34;default&amp;#34; {
  output {
    metrics = [otelcol.processor.metric_start_time.default.input]
  }
}

otelcol.processor.metric_start_time &amp;#34;default&amp;#34; {
  strategy                 = &amp;#34;start_time_metric&amp;#34;
  gc_interval              = &amp;#34;1h&amp;#34;
  start_time_metric_regex  = &amp;#34;^.&amp;#43;_start_time$&amp;#34;

  output {
    metrics = [otelcol.exporter.otlphttp.production.input]
  }
}

otelcol.exporter.otlphttp &amp;#34;production&amp;#34; {
  client {
    endpoint = sys.env(&amp;#34;OTLP_SERVER_ENDPOINT&amp;#34;)
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.metric_start_time&lt;/code&gt; can accept arguments from the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that export &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-exporters&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.metric_start_time&lt;/code&gt; has exports that can be consumed by the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that consume &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-consumers&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolprocessormetric_start_time">&lt;code>otelcol.processor.metric_start_time&lt;/code>&lt;/h1>
&lt;p>&lt;code>otelcol.processor.metric_start_time&lt;/code> accepts metrics from other &lt;code>otelcol&lt;/code> components and sets the start time for cumulative metric datapoints which do not already have a start time.
This processor is commonly used with &lt;code>otelcol.receiver.prometheus&lt;/code>, which produces metric points without a &lt;a href="https://github.com/open-telemetry/opentelemetry-proto/blob/v1.9.0/opentelemetry/proto/metrics/v1/metrics.proto#L181-L187" target="_blank" rel="noopener noreferrer">start time&lt;/a>.&lt;/p></description></item><item><title>otelcol.processor.probabilistic_sampler</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.processor.probabilistic_sampler/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.processor.probabilistic_sampler/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolprocessorprobabilistic_sampler&#34;&gt;&lt;code&gt;otelcol.processor.probabilistic_sampler&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.probabilistic_sampler&lt;/code&gt; accepts logs and traces data from other otelcol components and applies probabilistic sampling based on configuration options.&lt;/p&gt;
&lt;!-- 
The next few paragraphs were copied from the OTel docs:
https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/processor/probabilisticsamplerprocessor/README.md
--&gt;
&lt;p&gt;The probabilistic sampler processor supports several modes of sampling for spans and log records.&lt;br /&gt;
Sampling is performed on a per-request basis, considering individual items statelessly.
For whole trace sampling, see &lt;code&gt;otelcol.processor.tail_sampling&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;For trace spans, this sampler supports probabilistic sampling based on a configured sampling percentage applied to the TraceID.
In addition, the sampler recognizes a &lt;code&gt;sampling.priority&lt;/code&gt; annotation, which can force the sampler to apply 0% or 100% sampling.&lt;/p&gt;
&lt;p&gt;For log records, this sampler can be configured to use the embedded TraceID and follow the same logic as applied to spans.&lt;br /&gt;
When the TraceID isn&amp;rsquo;t defined, the sampler can be configured to apply hashing to a selected log record attribute.&lt;br /&gt;
This sampler also supports sampling priority.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.processor.probabilistic_sampler&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector Contrib &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/processor/probabilisticsamplerprocessor&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;probabilistic_sampler&lt;/code&gt;&lt;/a&gt; processor.
If necessary, bug reports or feature requests will be redirected to the upstream repository.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.processor.probabilistic_sampler&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.processor.probabilistic_sampler &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  output {
    logs    = [...]
    traces  = [...]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.processor.probabilistic_sampler&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;attribute_source&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Defines where to look for the attribute in &lt;code&gt;from_attribute&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;traceID&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fail_closed&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to reject items with sampling-related errors.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;from_attribute&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The name of a log record attribute used for sampling purposes.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;hash_seed&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;uint32&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;An integer used to compute the hash algorithm.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;mode&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Sampling mode.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;proportional&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sampling_percentage&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;float32&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Percentage of traces or logs sampled.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sampling_precision&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The number of hexadecimal digits used to encode the sampling threshold.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;4&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sampling_priority&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The name of a log record attribute used to set a different sampling priority from the &lt;code&gt;sampling_percentage&lt;/code&gt; setting.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You can set &lt;code&gt;mode&lt;/code&gt; to &lt;code&gt;&amp;quot;proportional&amp;quot;&lt;/code&gt;, &lt;code&gt;&amp;quot;equalizing&amp;quot;&lt;/code&gt;, or &lt;code&gt;&amp;quot;hash_seed&amp;quot;&lt;/code&gt;.
The default is &lt;code&gt;&amp;quot;proportional&amp;quot;&lt;/code&gt; unless either &lt;code&gt;hash_seed&lt;/code&gt; is configured or &lt;code&gt;attribute_source&lt;/code&gt; is set to &lt;code&gt;record&lt;/code&gt;.
For more information on modes, refer to the upstream Collector&amp;rsquo;s &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.147.0/processor/probabilisticsamplerprocessor/README.md#mode-selection&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Mode Selection documentation&lt;/a&gt; section.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;hash_seed&lt;/code&gt; determines an integer to compute the hash algorithm. This argument could be used for both traces and logs.
When used for logs, it computes the hash of a log record.
For hashing to work, all collectors for a given tier, for example, behind the same load balancer, must have the same &lt;code&gt;hash_seed&lt;/code&gt;.
It&amp;rsquo;s also possible to leverage a different &lt;code&gt;hash_seed&lt;/code&gt; at different collector tiers to support additional sampling requirements.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sampling_percentage&lt;/code&gt; determines the percentage at which traces or logs are sampled.
All traces or logs are sampled if you set this argument to a value greater than or equal to 100.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;attribute_source&lt;/code&gt; (logs only) determines where to look for the attribute in &lt;code&gt;from_attribute&lt;/code&gt;. The allowed values are &lt;code&gt;traceID&lt;/code&gt; or &lt;code&gt;record&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;from_attribute&lt;/code&gt; (logs only) determines the name of a log record attribute used for sampling purposes, such as a unique log record ID.
The value of the attribute is only used if the trace ID is absent or if &lt;code&gt;attribute_source&lt;/code&gt; is set to &lt;code&gt;record&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sampling_priority&lt;/code&gt; (logs only) determines the name of a log record attribute used to set a different sampling priority from the &lt;code&gt;sampling_percentage&lt;/code&gt; setting.
0 means to never sample the log record, and greater than or equal to 100 means to always sample the log record.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;probabilistic_sampler&lt;/code&gt; supports two types of sampling for traces:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;sampling.priority&lt;/code&gt; &lt;a href=&#34;https://github.com/opentracing/specification/blob/master/semantic_conventions.md#span-tags-table&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;semantic convention&lt;/a&gt; as defined by OpenTracing.&lt;/li&gt;
&lt;li&gt;Trace ID hashing.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The &lt;code&gt;sampling.priority&lt;/code&gt; semantic convention takes priority over trace ID hashing.
Trace ID hashing samples based on hash values determined by trace IDs.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;probabilistic_sampler&lt;/code&gt; supports sampling logs according to their trace ID, or by a specific log record attribute.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sampling_precision&lt;/code&gt; must be a value between 1 and 14 (inclusive).&lt;/p&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following block with &lt;code&gt;otelcol.processor.probabilistic_sampler&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 1;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;The following fields are exported and can be referenced by other components:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&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;code&gt;input&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A value that other components can use to send telemetry data to.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;input&lt;/code&gt; accepts &lt;code&gt;otelcol.Consumer&lt;/code&gt; OTLP-formatted data for any telemetry signal of these types:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;logs&lt;/li&gt;
&lt;li&gt;traces&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.probabilistic_sampler&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.probabilistic_sampler&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;examples&#34;&gt;Examples&lt;/h2&gt;
&lt;h3 id=&#34;basic-usage&#34;&gt;Basic usage&lt;/h3&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;otelcol.processor.probabilistic_sampler &amp;#34;default&amp;#34; {
  hash_seed           = 123
  sampling_percentage = 15.3

  output {
    logs = [otelcol.exporter.otlphttp.default.input]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;sample-15-of-the-logs&#34;&gt;Sample 15% of the logs&lt;/h3&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;otelcol.processor.probabilistic_sampler &amp;#34;default&amp;#34; {
  sampling_percentage = 15

  output {
    logs = [otelcol.exporter.otlphttp.default.input]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;sample-logs-according-to-their-logid-attribute&#34;&gt;Sample logs according to their &amp;ldquo;logID&amp;rdquo; attribute&lt;/h3&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;otelcol.processor.probabilistic_sampler &amp;#34;default&amp;#34; {
  sampling_percentage = 15
  attribute_source    = &amp;#34;record&amp;#34;
  from_attribute      = &amp;#34;logID&amp;#34;

  output {
    logs = [otelcol.exporter.otlphttp.default.input]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;sample-logs-according-to-a-priority-attribute&#34;&gt;Sample logs according to a &amp;ldquo;priority&amp;rdquo; attribute&lt;/h3&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;otelcol.processor.probabilistic_sampler &amp;#34;default&amp;#34; {
  sampling_percentage = 15
  sampling_priority   = &amp;#34;priority&amp;#34;

  output {
    logs = [otelcol.exporter.otlphttp.default.input]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.probabilistic_sampler&lt;/code&gt; can accept arguments from the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that export &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-exporters&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.probabilistic_sampler&lt;/code&gt; has exports that can be consumed by the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that consume &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-consumers&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolprocessorprobabilistic_sampler">&lt;code>otelcol.processor.probabilistic_sampler&lt;/code>&lt;/h1>
&lt;p>&lt;code>otelcol.processor.probabilistic_sampler&lt;/code> accepts logs and traces data from other otelcol components and applies probabilistic sampling based on configuration options.&lt;/p>
&lt;!--
The next few paragraphs were copied from the OTel docs:
https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/processor/probabilisticsamplerprocessor/README.md
-->
&lt;p>The probabilistic sampler processor supports several modes of sampling for spans and log records.&lt;br />
Sampling is performed on a per-request basis, considering individual items statelessly.
For whole trace sampling, see &lt;code>otelcol.processor.tail_sampling&lt;/code>.&lt;/p></description></item><item><title>otelcol.processor.resourcedetection</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.processor.resourcedetection/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.processor.resourcedetection/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolprocessorresourcedetection&#34;&gt;&lt;code&gt;otelcol.processor.resourcedetection&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.resourcedetection&lt;/code&gt; detects resource information from the host in a format that conforms to the &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-specification/tree/main/specification/resource/semantic_conventions/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;OpenTelemetry resource semantic conventions&lt;/a&gt;, and appends or overrides the resource values in the telemetry data with this information.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.processor.resourcedetection&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector Contrib &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/processor/resourcedetectionprocessor&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;resourcedetection&lt;/code&gt;&lt;/a&gt; processor.
If necessary, bug reports or feature requests are redirected to the upstream repository.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.processor.resourcedetection&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.processor.resourcedetection &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  output {
    logs    = [...]
    metrics = [...]
    traces  = [...]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.processor.resourcedetection&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;detectors&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;An ordered list of named detectors used to detect resource information.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[&amp;quot;env&amp;quot;]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;override&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Configures whether existing resource attributes should be overridden or preserved.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Timeout by which all specified detectors must complete.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;5s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;detectors&lt;/code&gt; could contain the following values:&lt;/p&gt;
&lt;div class=&#34;column-list&#34;&gt;
  &lt;ul&gt;
&lt;li&gt;&lt;code&gt;akamai&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;alibaba_ecs&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;aks&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;azure&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;consul&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;digitalocean&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;docker&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;dynatrace&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ec2&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ecs&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;eks&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;elasticbeanstalk&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;env&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;gcp&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;heroku&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;hetzner&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;kubeadm&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;kubernetes_node&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;lambda&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;openshift&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;nova&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;oraclecloud&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;scaleway&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tencent_cvm&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;upcloud&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;vultr&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;system&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;p&gt;You can customize most detectors with the relevant block.
For example, you can customize the &lt;code&gt;ec2&lt;/code&gt; detector with the [ec2][] block.
If you omit the [ec2][] block, the defaults specified in the [ec2][] block documentation are used.&lt;/p&gt;
&lt;p&gt;If multiple detectors are inserting the same attribute name, the first detector to insert wins.
For example, if you had &lt;code&gt;detectors = [&amp;quot;eks&amp;quot;, &amp;quot;ec2&amp;quot;]&lt;/code&gt; then &lt;code&gt;cloud.platform&lt;/code&gt; will be &lt;code&gt;aws_eks&lt;/code&gt; instead of &lt;code&gt;ec2&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The following order is recommended for AWS:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;[&lt;code&gt;lambda&lt;/code&gt;][lambda]&lt;/li&gt;
&lt;li&gt;[&lt;code&gt;elasticbeanstalk&lt;/code&gt;][elasticbeanstalk]&lt;/li&gt;
&lt;li&gt;[&lt;code&gt;eks&lt;/code&gt;][eks]&lt;/li&gt;
&lt;li&gt;[&lt;code&gt;ecs&lt;/code&gt;][ecs]&lt;/li&gt;
&lt;li&gt;[&lt;code&gt;ec2&lt;/code&gt;][ec2]&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;There are several delectors which are not configured through blocks:&lt;/p&gt;
&lt;h3 id=&#34;env-detector&#34;&gt;&lt;code&gt;env&lt;/code&gt; detector&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;env&lt;/code&gt; detector reads resource information from the &lt;code&gt;OTEL_RESOURCE_ATTRIBUTES&lt;/code&gt; environment variable.
This variable must be in the format &lt;code&gt;&amp;lt;key1&amp;gt;=&amp;lt;value1&amp;gt;,&amp;lt;key2&amp;gt;=&amp;lt;value2&amp;gt;,...&lt;/code&gt;, the details of which are currently pending confirmation in the OpenTelemetry specification.&lt;/p&gt;
&lt;h3 id=&#34;dynatrace-detector&#34;&gt;&lt;code&gt;dynatrace&lt;/code&gt; detector&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;dynatrace&lt;/code&gt; block loads resource information from the &lt;code&gt;dt_host_metadata.properties&lt;/code&gt; file which is located in the &lt;code&gt;/var/lib/dynatrace/enrichment&lt;/code&gt; (on Unix systems) or &lt;code&gt;%ProgramData%\dynatrace\enrichment&lt;/code&gt; (on Windows) directories.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;dynatrace&lt;/code&gt; detector reads the following resource attributes from the metadata file: &lt;code&gt;host.name&lt;/code&gt;, &lt;code&gt;dt.entity.host&lt;/code&gt;, and &lt;code&gt;dt.smartscape.host&lt;/code&gt;. These attributes are not configurable.&lt;/p&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.processor.resourcedetection&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 27;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#output\&amp;#34;\u003e\u003ccode\u003eoutput\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures where to send received telemetry data.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#akamai\&amp;#34;\u003e\u003ccode\u003eakamai\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eQueries the Akamai connected cloud instance metadata service to retrieve various resource attributes.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#alibaba_ecs\&amp;#34;\u003e\u003ccode\u003ealibaba_ecs\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eQueries the Alibaba Cloud ECS metadata service to retrieve various resource attributes.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#aks\&amp;#34;\u003e\u003ccode\u003eaks\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eAdds resource attributes related to Azure AKS.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#azure\&amp;#34;\u003e\u003ccode\u003eazure\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eQueries the Azure Instance Metadata Service to retrieve various resource attributes.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#consul\&amp;#34;\u003e\u003ccode\u003econsul\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eQueries a Consul agent and reads its configuration endpoint to retrieve values for resource attributes.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#docker\&amp;#34;\u003e\u003ccode\u003edocker\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eQueries the Docker daemon to retrieve various resource attributes from the host machine.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#digitalocean\&amp;#34;\u003e\u003ccode\u003edigitalocean\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eQueries the DigitalOcean instance metadata API to retrieve various resource attributes.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#ec2\&amp;#34;\u003e\u003ccode\u003eec2\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eReads resource information from the EC2 instance metadata API.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#ecs\&amp;#34;\u003e\u003ccode\u003eecs\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eQueries the Task Metadata Endpoint to record information about the current ECS Task.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#eks\&amp;#34;\u003e\u003ccode\u003eeks\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eAdds resource attributes for Amazon EKS.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#elasticbeanstalk\&amp;#34;\u003e\u003ccode\u003eelasticbeanstalk\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eReads the AWS X-Ray configuration file available on all Beanstalk instances with X-Ray Enabled.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#gcp\&amp;#34;\u003e\u003ccode\u003egcp\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eDetects resource attributes using the Google Cloud Client Libraries for Go.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#heroku\&amp;#34;\u003e\u003ccode\u003eheroku\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eAdds resource attributes derived from Heroku dyno metadata.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#hetzner\&amp;#34;\u003e\u003ccode\u003ehetzner\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eQueries the Hetzner cloud instance metadata API to retrieve various resource attributes.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#kubeadm\&amp;#34;\u003e\u003ccode\u003ekubeadm\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eQueries the Kubernetes API server to retrieve kubeadm resource attributes.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#kubernetes_node\&amp;#34;\u003e\u003ccode\u003ekubernetes_node\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eQueries the Kubernetes API server to retrieve various node resource attributes.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#lambda\&amp;#34;\u003e\u003ccode\u003elambda\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eUses the AWS Lambda runtime environment variables to retrieve various resource attributes.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#nova\&amp;#34;\u003e\u003ccode\u003enova\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eQueries the OpenStack Nova instance metadata API to retrieve various resource attributes.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#oraclecloud\&amp;#34;\u003e\u003ccode\u003eoraclecloud\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eQueries the Oracle Cloud infrastructure instance metadata service to retrieve various resource attributes.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#tencent_cvm\&amp;#34;\u003e\u003ccode\u003etencent_cvm\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eQueries the Tencent Cloud CVM metadata service to retrieve various resource attributes.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#scaleway\&amp;#34;\u003e\u003ccode\u003escaleway\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eQueries the Scaleway instance metadata API to retrieve various resource attributes.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#upcloud\&amp;#34;\u003e\u003ccode\u003eupcloud\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eQueries the UpCloud instance metadata API to retrieve various resource attributes.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#vultr\&amp;#34;\u003e\u003ccode\u003evultr\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eQueries the Vultr instance metadata API to retrieve various resource attributes.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#openshift\&amp;#34;\u003e\u003ccode\u003eopenshift\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eQueries the OpenShift and Kubernetes APIs to retrieve various resource attributes.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#system\&amp;#34;\u003e\u003ccode\u003esystem\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eQueries the host machine to retrieve various resource attributes.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures where to send received telemetry data.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#akamai&#34;&gt;&lt;code&gt;akamai&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Queries the Akamai connected cloud instance metadata service to retrieve various resource attributes.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#alibaba_ecs&#34;&gt;&lt;code&gt;alibaba_ecs&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Queries the Alibaba Cloud ECS metadata service to retrieve various resource attributes.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#aks&#34;&gt;&lt;code&gt;aks&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Adds resource attributes related to Azure AKS.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#azure&#34;&gt;&lt;code&gt;azure&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Queries the Azure Instance Metadata Service to retrieve various resource attributes.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#consul&#34;&gt;&lt;code&gt;consul&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Queries a Consul agent and reads its configuration endpoint to retrieve values for resource attributes.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#docker&#34;&gt;&lt;code&gt;docker&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Queries the Docker daemon to retrieve various resource attributes from the host machine.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#digitalocean&#34;&gt;&lt;code&gt;digitalocean&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Queries the DigitalOcean instance metadata API to retrieve various resource attributes.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#ec2&#34;&gt;&lt;code&gt;ec2&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Reads resource information from the EC2 instance metadata API.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#ecs&#34;&gt;&lt;code&gt;ecs&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Queries the Task Metadata Endpoint to record information about the current ECS Task.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#eks&#34;&gt;&lt;code&gt;eks&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Adds resource attributes for Amazon EKS.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#elasticbeanstalk&#34;&gt;&lt;code&gt;elasticbeanstalk&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Reads the AWS X-Ray configuration file available on all Beanstalk instances with X-Ray Enabled.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#gcp&#34;&gt;&lt;code&gt;gcp&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Detects resource attributes using the Google Cloud Client Libraries for Go.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#heroku&#34;&gt;&lt;code&gt;heroku&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Adds resource attributes derived from Heroku dyno metadata.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#hetzner&#34;&gt;&lt;code&gt;hetzner&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Queries the Hetzner cloud instance metadata API to retrieve various resource attributes.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#kubeadm&#34;&gt;&lt;code&gt;kubeadm&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Queries the Kubernetes API server to retrieve kubeadm resource attributes.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#kubernetes_node&#34;&gt;&lt;code&gt;kubernetes_node&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Queries the Kubernetes API server to retrieve various node resource attributes.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#lambda&#34;&gt;&lt;code&gt;lambda&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Uses the AWS Lambda runtime environment variables to retrieve various resource attributes.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#nova&#34;&gt;&lt;code&gt;nova&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Queries the OpenStack Nova instance metadata API to retrieve various resource attributes.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#oraclecloud&#34;&gt;&lt;code&gt;oraclecloud&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Queries the Oracle Cloud infrastructure instance metadata service to retrieve various resource attributes.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#tencent_cvm&#34;&gt;&lt;code&gt;tencent_cvm&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Queries the Tencent Cloud CVM metadata service to retrieve various resource attributes.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#scaleway&#34;&gt;&lt;code&gt;scaleway&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Queries the Scaleway instance metadata API to retrieve various resource attributes.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#upcloud&#34;&gt;&lt;code&gt;upcloud&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Queries the UpCloud instance metadata API to retrieve various resource attributes.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#vultr&#34;&gt;&lt;code&gt;vultr&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Queries the Vultr instance metadata API to retrieve various resource attributes.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#openshift&#34;&gt;&lt;code&gt;openshift&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Queries the OpenShift and Kubernetes APIs to retrieve various resource attributes.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#system&#34;&gt;&lt;code&gt;system&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Queries the host machine to retrieve various resource attributes.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;



&lt;div data-shared=&#34;reference/components/output-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;output&lt;/code&gt; block configures a set of components to forward resulting telemetry data to.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send logs to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send metrics to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;traces&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send traces to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You must specify the &lt;code&gt;output&lt;/code&gt; block, but all its arguments are optional.
By default, telemetry data is dropped.
Configure the &lt;code&gt;metrics&lt;/code&gt;, &lt;code&gt;logs&lt;/code&gt;, and &lt;code&gt;traces&lt;/code&gt; arguments accordingly to send telemetry data to other components.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;akamai&#34;&gt;&lt;code&gt;akamai&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;akamai&lt;/code&gt; block queries the Akamai connected cloud instance metadata service to retrieve various resource attributes from the Akamai cloud environment.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;akamai&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#akamai--resource_attributes&#34;&gt;&lt;code&gt;resource_attributes&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures which resource attributes to add.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;akamai--resource_attributes&#34;&gt;&lt;code&gt;akamai&lt;/code&gt; &amp;gt; &lt;code&gt;resource_attributes&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;The &lt;code&gt;resource_attributes&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.provider&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.provider&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.region&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.region&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.id&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.id&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.name&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.name&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;Example values:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;cloud.provider&lt;/code&gt;: &lt;code&gt;&amp;quot;akamai&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;aks&#34;&gt;&lt;code&gt;aks&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;aks&lt;/code&gt; block adds resource attributes related to Azure AKS.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;aks&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#aks--resource_attributes&#34;&gt;&lt;code&gt;resource_attributes&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures which resource attributes to add.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;aks--resource_attributes&#34;&gt;&lt;code&gt;aks&lt;/code&gt; &amp;gt; &lt;code&gt;resource_attributes&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;The &lt;code&gt;resource_attributes&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.platform&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.platform&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.provider&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.provider&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;k8s.cluster.name&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;k8s.cluster.name&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;false&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;Example values:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;cloud.platform&lt;/code&gt;: &lt;code&gt;&amp;quot;azure_vm&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cloud.provider&lt;/code&gt;: &lt;code&gt;&amp;quot;azure&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Azure AKS cluster name is derived from the Azure Instance Metadata Service&amp;rsquo;s (IMDS) infrastructure resource group field.
This field contains the resource group and name of the cluster, separated by underscores. For example: &lt;code&gt;MC_&amp;lt;resource group&amp;gt;_&amp;lt;cluster name&amp;gt;_&amp;lt;location&amp;gt;&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Resource group: &lt;code&gt;my-resource-group&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Cluster name: &lt;code&gt;my-cluster&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Location: &lt;code&gt;eastus&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Generated name: &lt;code&gt;MC_my-resource-group_my-cluster_eastus&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The cluster name is detected if it doesn&amp;rsquo;t contain underscores and if a custom infrastructure resource group name wasn&amp;rsquo;t used.&lt;/p&gt;
&lt;p&gt;If accurate parsing can&amp;rsquo;t be performed, the infrastructure resource group value is returned.
This value can be used to uniquely identify the cluster, because Azure won&amp;rsquo;t allow users to create multiple clusters with the same infrastructure resource group name.&lt;/p&gt;
&lt;h3 id=&#34;azure&#34;&gt;&lt;code&gt;azure&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;azure&lt;/code&gt; block queries the &lt;a href=&#34;https://aka.ms/azureimds&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Azure Instance Metadata Service&lt;/a&gt; to retrieve various resource attributes.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;azure&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#azure--resource_attributes&#34;&gt;&lt;code&gt;resource_attributes&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures which resource attributes to add.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;code&gt;azure&lt;/code&gt; block supports the following attributes:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&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;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;tags&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of regular expressions to match tag keys to add as resource attributes can be specified.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;azure--resource_attributes&#34;&gt;&lt;code&gt;azure&lt;/code&gt; &amp;gt; &lt;code&gt;resource_attributes&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;The &lt;code&gt;resource_attributes&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;azure.resourcegroup.name&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;azure.resourcegroup.name&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;azure.vm.name&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;azure.vm.name&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;azure.vm.scaleset.name&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;azure.vm.scaleset.name&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;azure.vm.size&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;azure.vm.size&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.account.id&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.account.id&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.availability_zone&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.availability_zone&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;false&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.platform&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.platform&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.provider&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.provider&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.region&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.region&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.id&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.id&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.name&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.name&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;Example values:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;cloud.platform&lt;/code&gt;: &lt;code&gt;&amp;quot;azure_vm&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cloud.provider&lt;/code&gt;: &lt;code&gt;&amp;quot;azure&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;consul&#34;&gt;&lt;code&gt;consul&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;consul&lt;/code&gt; block queries a Consul agent and reads its configuration endpoint to retrieve values for resource attributes.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;consul&lt;/code&gt; block supports the following attributes:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&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;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;address&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The address of the Consul server&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;datacenter&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Data center to use. If not provided, the default agent data center is used.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;meta&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Allowlist of &lt;a href=&#34;https://www.consul.io/docs/agent/options#node_meta&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Consul Metadata&lt;/a&gt; keys to use as resource attributes.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;namespace&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The name of the namespace to send along for the request.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;token&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;secret&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A per-request ACL token which overrides the Consul agent&amp;rsquo;s default (empty) token.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;token&lt;/code&gt; is only required if the &lt;a href=&#34;https://www.consul.io/docs/security/acl/acl-system&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Consul ACL System&lt;/a&gt; is enabled.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;consul&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#consul--resource_attributes&#34;&gt;&lt;code&gt;resource_attributes&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures which resource attributes to add.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;consul--resource_attributes&#34;&gt;&lt;code&gt;consul&lt;/code&gt; &amp;gt; &lt;code&gt;resource_attributes&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;The &lt;code&gt;resource_attributes&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.region&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.region&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.id&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.id&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.name&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.name&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h3 id=&#34;digitalocean&#34;&gt;&lt;code&gt;digitalocean&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;digitalocean&lt;/code&gt; block queries the DigitalOcean instance metadata API to retrieve various resource attributes from the DigitalOcean cloud environment.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;digitalocean&lt;/code&gt; block supports the following attributes:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&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;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;resource_attributes&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;[&lt;code&gt;resource_attributes&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Configures which resource attributes to add.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;digitalocean--resource_attributes&#34;&gt;&lt;code&gt;digitalocean&lt;/code&gt; &amp;gt; &lt;code&gt;resource_attributes&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;The &lt;code&gt;resource_attributes&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.provider&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.provider&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.region&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.region&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.id&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.id&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.name&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.name&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;Example values:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;cloud.provider&lt;/code&gt;: &lt;code&gt;&amp;quot;digitalocean&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;docker&#34;&gt;&lt;code&gt;docker&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;docker&lt;/code&gt; block queries the Docker daemon to retrieve various resource attributes from the host machine.&lt;/p&gt;
&lt;p&gt;You need to mount the Docker socket (&lt;code&gt;/var/run/docker.sock&lt;/code&gt; on Linux) to contact the Docker daemon.
Docker detection doesn&amp;rsquo;t work on MacOS.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;docker&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#docker--resource_attributes&#34;&gt;&lt;code&gt;resource_attributes&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures which resource attributes to add.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;docker--resource_attributes&#34;&gt;&lt;code&gt;docker&lt;/code&gt; &amp;gt; &lt;code&gt;resource_attributes&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;The &lt;code&gt;resource_attributes&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.name&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.name&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;os.type&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;os.type&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;ec2&#34;&gt;&lt;code&gt;ec2&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;ec2&lt;/code&gt; block reads resource information from the &lt;a href=&#34;https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;EC2 instance metadata API&lt;/a&gt; using the &lt;a href=&#34;https://docs.aws.amazon.com/sdk-for-go/api/aws/ec2metadata/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;AWS SDK for Go&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;ec2&lt;/code&gt; block supports the following attributes:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&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;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_attempts&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The maximum number of attempts to retrieve metadata.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;3&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_backoff&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The maximum backoff time between retries.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;20s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;tags_from_imds&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Fetch instance tags through IMDS instead of the EC2 &lt;code&gt;DescribeTags&lt;/code&gt; API.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;tags&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of regular expressions to match against tag keys of an EC2 instance.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;!-- The following commented behavior is implemented in https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/37453 but it does not appear
that the code actually will cause the collector to fail to start, waiting for a response from the author
&lt;!-- | `fail_on_missing_metadata` | `bool`         | Whether to fail if metadata is missing.                                     | `false` | no       |

By default the ec2 detector will log errors if the metadata endpoint is unavailable, but if `fail_on_missing_metadata` is `true` it will propagate that error instead which will cause Alloy to fail to start. --&gt;
&lt;p&gt;If you are using a proxy server on your EC2 instance, it&amp;rsquo;s important that you exempt requests for instance metadata as described in the &lt;a href=&#34;https://github.com/awsdocs/aws-cli-user-guide/blob/a2393582590b64bd2a1d9978af15b350e1f9eb8e/doc_source/cli-configure-proxy.md#using-a-proxy-on-amazon-ec2-instances&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;AWS cli user guide&lt;/a&gt;.
Failing to do so can result in proxied or missing instance data.&lt;/p&gt;
&lt;p&gt;If the instance is part of AWS ParallelCluster and the detector is failing to connect to the metadata server,
check the iptable and make sure the chain &lt;code&gt;PARALLELCLUSTER_IMDS&lt;/code&gt; contains a rule that allows the Alloy user to access &lt;code&gt;169.254.169.254/32&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;tags&lt;/code&gt; can be used to gather tags for the EC2 instance which Alloy is running on.
To fetch EC2 tags, the IAM role assigned to the EC2 instance must have a policy that includes the &lt;code&gt;ec2:DescribeTags&lt;/code&gt; permission.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;ec2&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#ec2--resource_attributes&#34;&gt;``&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures which resource attributes to add.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;ec2--resource_attributes&#34;&gt;&lt;code&gt;ec2&lt;/code&gt; &amp;gt; &lt;code&gt;resource_attributes&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;The &lt;code&gt;resource_attributes&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.account.id&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.account.id&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.availability_zone&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.availability_zone&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.platform&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.platform&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.provider&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.provider&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.region&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.region&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.id&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.id&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.image.id&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.image.id&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.name&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.name&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.type&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.type&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;ecs&#34;&gt;&lt;code&gt;ecs&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;ecs&lt;/code&gt; block queries the &lt;a href=&#34;https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-metadata-endpoint.html&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Task Metadata Endpoint&lt;/a&gt; (TMDE) to record information about the current ECS Task.
Only TMDE V4 and V3 are supported.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;ecs&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#ecs--resource_attributes&#34;&gt;resource_attr`ibutes&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures which resource attributes to add.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;ecs--resource_attributes&#34;&gt;&lt;code&gt;ecs&lt;/code&gt; &amp;gt; &lt;code&gt;resource_attributes&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;The &lt;code&gt;resource_attributes&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;aws.ecs.cluster.arn&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;aws.ecs.cluster.arn&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;aws.ecs.launchtype&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;aws.ecs.launchtype&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;aws.ecs.task.arn&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;aws.ecs.task.arn&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;aws.ecs.task.family&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;aws.ecs.task.family&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;aws.ecs.task.id&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;aws.ecs.task.id&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;aws.ecs.task.revision&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;aws.ecs.task.revision&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;aws.log.group.arns&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;aws.log.group.arns&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;aws.log.group.names&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;aws.log.group.names&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;aws.log.stream.arns&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;aws.log.stream.arns&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;aws.log.stream.names&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;aws.log.stream.names&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.account.id&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.account.id&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.availability_zone&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.availability_zone&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.platform&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.platform&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.provider&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.provider&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.region&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.region&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;eks&#34;&gt;&lt;code&gt;eks&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;eks&lt;/code&gt; block adds resource attributes for Amazon EKS.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;eks&lt;/code&gt; block supports the following attributes:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&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;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;node_from_env_var&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The environment variable that contains the node name.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;K8S_NODE_NAME&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;code&gt;eks&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#eks--resource_attributes&#34;&gt;&lt;code&gt;resource_attributes&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures which resource attributes to add.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;eks--resource_attributes&#34;&gt;&lt;code&gt;eks&lt;/code&gt; &amp;gt; &lt;code&gt;resource_attributes&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;The &lt;code&gt;resource_attributes&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.account.id&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.account.id&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;false&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.platform&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.platform&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.provider&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.provider&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;k8s.cluster.name&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;k8s.cluster.name&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;false&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;Example values:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;cloud.provider&lt;/code&gt;: &lt;code&gt;&amp;quot;aws&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cloud.platform&lt;/code&gt;: &lt;code&gt;&amp;quot;aws_eks&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;elasticbeanstalk&#34;&gt;&lt;code&gt;elasticbeanstalk&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;elasticbeanstalk&lt;/code&gt; block reads the AWS X-Ray configuration file available on all Beanstalk instances with &lt;a href=&#34;https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environment-configuration-debugging.html&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;X-Ray Enabled&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;elasticbeanstalk&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#elasticbeanstalk--resource_attributes&#34;&gt;&lt;code&gt;resource_attributes&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures which resource attributes to add.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;elasticbeanstalk--resource_attributes&#34;&gt;&lt;code&gt;elasticbeanstalk&lt;/code&gt; &amp;gt; &lt;code&gt;resource_attributes&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;The &lt;code&gt;resource_attributes&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.platform&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.platform&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.provider&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.provider&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;deployment.envir&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;deployment.envir&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;service.instance&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;service.instance&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;service.version&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;service.version&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;Example values:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;cloud.provider&lt;/code&gt;: &lt;code&gt;&amp;quot;aws&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cloud.platform&lt;/code&gt;: &lt;code&gt;&amp;quot;aws_elastic_beanstalk&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;gcp&#34;&gt;&lt;code&gt;gcp&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;gcp&lt;/code&gt; block detects resource attributes using the &lt;a href=&#34;https://github.com/googleapis/google-cloud-go&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Google Cloud Client Libraries for Go&lt;/a&gt;, which reads resource information from the &lt;a href=&#34;https://cloud.google.com/compute/docs/storing-retrieving-metadata&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;GCP metadata server&lt;/a&gt;.
The detector also uses environment variables to identify which GCP platform the application is running on, and assigns appropriate resource attributes for that platform.&lt;/p&gt;
&lt;p&gt;Use the &lt;code&gt;gcp&lt;/code&gt; detector regardless of the GCP platform Alloy is running on.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;gcp&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#gcp--resource_attributes&#34;&gt;&lt;code&gt;resource_attributes&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures which resource attributes to add.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;gcp--resource_attributes&#34;&gt;&lt;code&gt;gcp&lt;/code&gt; &amp;gt; &lt;code&gt;resource_attributes&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;The &lt;code&gt;resource_attributes&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.account.id&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.account.id&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.availability_zone&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.availability_zone&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.platform&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.platform&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.provider&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.provider&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.region&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.region&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;faas.instance&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;faas.instance&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;faas.id&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Deprecated. Removed upstream and has no effect.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;faas.name&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;faas.name&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;faas.version&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;faas.version&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;gcp.cloud_run.job.execution&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;gcp.cloud_run.job.execution&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;gcp.cloud_run.job.task_index&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;gcp.cloud_run.job.task_index&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;gcp.gce.instance.group_manager.name&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;gcp.gce.instance.group_manager.name&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;gcp.gce.instance.group_manager.region&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;gcp.gce.instance.group_manager.region&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;gcp.gce.instance.group_manager.zone&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;gcp.gce.instance.group_manager.zone&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;gcp.gce.instance.hostname&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;gcp.gce.instance.hostname&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;false&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;gcp.gce.instance.name&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;gcp.gce.instance.name&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;false&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.id&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.id&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.name&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.name&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.type&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.type&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;k8s.cluster.name&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;k8s.cluster.name&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;google-compute-engine-gce-metadata&#34;&gt;Google Compute Engine (GCE) metadata&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;cloud.provider&lt;/code&gt;: &lt;code&gt;&amp;quot;gcp&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cloud.platform&lt;/code&gt;: &lt;code&gt;&amp;quot;gcp_compute_engine&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cloud.account.id&lt;/code&gt;: Project ID&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cloud.region&lt;/code&gt;: For example, &lt;code&gt;&amp;quot;us-central1&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cloud.availability_zone&lt;/code&gt;: For example, &lt;code&gt;&amp;quot;us-central1-c&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;host.id&lt;/code&gt;: Instance ID&lt;/li&gt;
&lt;li&gt;&lt;code&gt;host.name&lt;/code&gt;: Instance name&lt;/li&gt;
&lt;li&gt;&lt;code&gt;host.type&lt;/code&gt;: Machine type&lt;/li&gt;
&lt;li&gt;(optional) &lt;code&gt;gcp.gce.instance.hostname&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;(optional) &lt;code&gt;gcp.gce.instance.name&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;gcp.gce.instance.group_manager.name&lt;/code&gt;: Managed instance group name&lt;/li&gt;
&lt;li&gt;&lt;code&gt;gcp.gce.instance.group_manager.region&lt;/code&gt;: Managed instance group region&lt;/li&gt;
&lt;li&gt;&lt;code&gt;gcp.gce.instance.group_manager.zone&lt;/code&gt;: Managed instance group zone&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;google-kubernetes-engine-gke-metadata&#34;&gt;Google Kubernetes Engine (GKE) metadata&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;cloud.provider&lt;/code&gt;: &lt;code&gt;&amp;quot;gcp&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cloud.platform&lt;/code&gt;: &lt;code&gt;&amp;quot;gcp_kubernetes_engine&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cloud.account.id&lt;/code&gt;: Project ID&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cloud.region&lt;/code&gt;: Only for regional GKE clusters, for example &lt;code&gt;&amp;quot;us-central1&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cloud.availability_zone&lt;/code&gt;: only for zonal GKE clusters, for example, &lt;code&gt;&amp;quot;us-central1-c&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k8s.cluster.name&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;host.id&lt;/code&gt;: Instance ID&lt;/li&gt;
&lt;li&gt;&lt;code&gt;host.name&lt;/code&gt;: Instance name, only when workload identity is disabled&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;One known issue happens when GKE workload identity is enabled.
The GCE metadata endpoints won&amp;rsquo;t be available, and the GKE resource detector won&amp;rsquo;t be able to determine &lt;code&gt;host.name&lt;/code&gt;.
If this happens, you can set &lt;code&gt;host.name&lt;/code&gt; from one of the following resources:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Get the &lt;code&gt;node.name&lt;/code&gt; through the &lt;a href=&#34;https://kubernetes.io/docs/concepts/workloads/pods/downward-api/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;downward API&lt;/a&gt; with the &lt;code&gt;env&lt;/code&gt; detector.&lt;/li&gt;
&lt;li&gt;Get the Kubernetes node name from the Kubernetes API (with &lt;code&gt;k8s.io/client-go&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;google-cloud-run-services-metadata&#34;&gt;Google Cloud Run Services metadata&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;cloud.provider&lt;/code&gt;: &lt;code&gt;&amp;quot;gcp&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cloud.platform&lt;/code&gt;: &lt;code&gt;&amp;quot;gcp_cloud_run&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cloud.account.id&lt;/code&gt;: Project ID&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cloud.region&lt;/code&gt;: For example, &lt;code&gt;&amp;quot;us-central1&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;faas.name&lt;/code&gt;: Service name&lt;/li&gt;
&lt;li&gt;&lt;code&gt;faas.version&lt;/code&gt;: Service revision&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;cloud-run-jobs-metadata&#34;&gt;Cloud Run Jobs metadata&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;cloud.provider&lt;/code&gt;: &lt;code&gt;&amp;quot;gcp&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cloud.platform&lt;/code&gt;: &lt;code&gt;&amp;quot;gcp_cloud_run&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cloud.account.id&lt;/code&gt;: Project ID&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cloud.region&lt;/code&gt;: For example, &lt;code&gt;&amp;quot;us-central1&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;faas.name&lt;/code&gt;: Service name&lt;/li&gt;
&lt;li&gt;&lt;code&gt;gcp.cloud_run.job.execution&lt;/code&gt;: For example, &lt;code&gt;&amp;quot;my-service-ajg89&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;gcp.cloud_run.job.task_index&lt;/code&gt;: For example, &lt;code&gt;&amp;quot;0&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;google-cloud-functions-metadata&#34;&gt;Google Cloud Functions metadata&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;cloud.provider&lt;/code&gt;: &lt;code&gt;&amp;quot;gcp&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cloud.platform&lt;/code&gt;: &lt;code&gt;&amp;quot;gcp_cloud_functions&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cloud.account.id&lt;/code&gt;: Project ID&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cloud.region&lt;/code&gt;: For example, &lt;code&gt;&amp;quot;us-central1&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;faas.name&lt;/code&gt;: Function name&lt;/li&gt;
&lt;li&gt;&lt;code&gt;faas.version&lt;/code&gt;: Function version&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;google-app-engine-metadata&#34;&gt;Google App Engine metadata&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;cloud.provider&lt;/code&gt;: &lt;code&gt;&amp;quot;gcp&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cloud.platform&lt;/code&gt;: &lt;code&gt;&amp;quot;gcp_app_engine&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cloud.account.id&lt;/code&gt;: Project ID&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cloud.region&lt;/code&gt;: For example, &lt;code&gt;&amp;quot;us-central1&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cloud.availability_zone&lt;/code&gt;: For example, &lt;code&gt;&amp;quot;us-central1-c&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;faas.name&lt;/code&gt;: Service name&lt;/li&gt;
&lt;li&gt;&lt;code&gt;faas.version&lt;/code&gt;: Service version&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;heroku&#34;&gt;&lt;code&gt;heroku&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;heroku&lt;/code&gt; block adds resource attributes derived from &lt;a href=&#34;https://devcenter.heroku.com/articles/dyno-metadata&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Heroku dyno metadata&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;heroku&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#heroku--resource_attributes&#34;&gt;&lt;code&gt;resource_attributes&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures which resource attributes to add.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;heroku--resource_attributes&#34;&gt;&lt;code&gt;heroku&lt;/code&gt; &amp;gt; &lt;code&gt;resource_attributes&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;The &lt;code&gt;resource_attributes&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.provider&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.provider&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;heroku.app.id&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;heroku.app.id&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;heroku.dyno.id&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;heroku.dyno.id&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;heroku.release.commit&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;heroku.release.commit&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;heroku.release.creation_timestamp&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;heroku.release.creation_timestamp&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;service.instance.id&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;service.instance.id&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;service.name&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;service.name&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;service.version&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;service.version&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;When &lt;a href=&#34;https://devcenter.heroku.com/articles/dyno-metadata&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Heroku dyno metadata&lt;/a&gt; is active, Heroku applications publish information through environment variables.
These environment variables map to resource attributes as follows:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Dyno metadata environment variable&lt;/th&gt;
              &lt;th&gt;Resource attribute&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;HEROKU_APP_ID&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;heroku.app.id&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;HEROKU_APP_NAME&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;service.name&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;HEROKU_DYNO_ID&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;service.instance.id&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;HEROKU_RELEASE_CREATED_AT&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;heroku.release.creation_timestamp&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;HEROKU_RELEASE_VERSION&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;service.version&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;HEROKU_SLUG_COMMIT&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;heroku.release.commit&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;For more information, refer to the &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/cloud_provider/heroku.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Heroku cloud provider documentation&lt;/a&gt; under the &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-specification&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;OpenTelemetry specification semantic conventions&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;hetzner&#34;&gt;&lt;code&gt;hetzner&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;hetzner&lt;/code&gt; block queries the Hetzner cloud instance metadata API to retrieve various resource attributes from the Hetzner cloud environment.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;hetzner&lt;/code&gt; block supports the following attributes:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&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;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;resource_attributes&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;[&lt;code&gt;resource_attributes&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Configures which resource attributes to add.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;hetzner--resource_attributes&#34;&gt;&lt;code&gt;hetzner&lt;/code&gt; &amp;gt; &lt;code&gt;resource_attributes&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;The &lt;code&gt;resource_attributes&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.availability_zone&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.availability_zone&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.provider&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.provider&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.region&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.region&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.id&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.id&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.name&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.name&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;Example values:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;cloud.provider&lt;/code&gt;: &lt;code&gt;&amp;quot;hetzner&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;kubeadm&#34;&gt;&lt;code&gt;kubeadm&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;kubeadm&lt;/code&gt; block queries the Kubernetes API server to retrieve kubeadm resource attributes.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;kubeadm&lt;/code&gt; block supports the following attributes:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&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;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;auth_type&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Configures how to authenticate to the Kubernetes API server.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;none&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;context&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Override the current context when &lt;code&gt;auth_type&lt;/code&gt; is set to &lt;code&gt;&amp;quot;kubeConfig&amp;quot;&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The following permissions are required:&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;YAML&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-yaml&#34;&gt;apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: otel-collector
  namespace: kube-system
rules:
  - apiGroups: [&amp;#34;&amp;#34;]
    resources: [&amp;#34;configmaps&amp;#34;]
    resourceNames: [&amp;#34;kubeadm-config&amp;#34;]
    verbs: [&amp;#34;get&amp;#34;]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: otel-collector-rolebinding
  namespace: kube-system
subjects:
  - kind: ServiceAccount
    name: default
    namespace: default
roleRef:
  kind: Role
  name: otel-collector
  apiGroup: rbac.authorization.k8s.io&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;You can set &lt;code&gt;auth_type&lt;/code&gt; to one of the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;none&lt;/code&gt;: No authentication.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;serviceAccount&lt;/code&gt;: Use the standard service account token provided to the Alloy Pod.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;kubeConfig&lt;/code&gt;: Use credentials from &lt;code&gt;~/.kube/config&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The &lt;code&gt;kubeadm&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#kubeadm--resource_attributes&#34;&gt;&lt;code&gt;resource_attributes&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures which resource attributes to add.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;kubeadm--resource_attributes&#34;&gt;&lt;code&gt;kubeadm&lt;/code&gt; &amp;gt; &lt;code&gt;resource_attributes&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;The &lt;code&gt;resource_attributes&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;k8s.cluster.name&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;k8s.cluster.name&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;k8s.cluster.uid&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;k8s.cluster.uid&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;kubernetes_node&#34;&gt;&lt;code&gt;kubernetes_node&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;kubernetes_node&lt;/code&gt; block queries the Kubernetes API server to retrieve various node resource attributes.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;kubernetes_node&lt;/code&gt; block supports the following attributes:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&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;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;auth_type&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Configures how to authenticate to the K8s API server.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;none&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;context&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Override the current context when &lt;code&gt;auth_type&lt;/code&gt; is set to &lt;code&gt;&amp;quot;kubeConfig&amp;quot;&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;node_from_env_var&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The environment variable that contains the node name.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;K8S_NODE_NAME&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &amp;ldquo;get&amp;rdquo; and &amp;ldquo;list&amp;rdquo; permissions are required:&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;YAML&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-yaml&#34;&gt;kind: ClusterRole
metadata:
  name: alloy
rules:
  - apiGroups: [&amp;#34;&amp;#34;]
    resources: [&amp;#34;nodes&amp;#34;]
    verbs: [&amp;#34;get&amp;#34;, &amp;#34;list&amp;#34;]&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;code&gt;auth_type&lt;/code&gt; can be set to one of the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;none&lt;/code&gt;: No authentication.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;serviceAccount&lt;/code&gt;: Use the standard service account token provided to the Alloy Pod.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;kubeConfig&lt;/code&gt;: Use credentials from &lt;code&gt;~/.kube/config&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The &lt;code&gt;kubernetes_node&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#kubernetes_node--resource_attributes&#34;&gt;&lt;code&gt;resource_attributes&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures which resource attributes to add.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;kubernetes_node--resource_attributes&#34;&gt;&lt;code&gt;kubernetes_node&lt;/code&gt; &amp;gt; &lt;code&gt;resource_attributes&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;The &lt;code&gt;resource_attributes&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;k8s.node.name&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;k8s.node.name&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;k8s.node.uid&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;k8s.node.uid&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;lambda&#34;&gt;&lt;code&gt;lambda&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;lambda&lt;/code&gt; block uses the AWS Lambda &lt;a href=&#34;https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-runtime&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;runtime environment variables&lt;/a&gt; to retrieve various resource attributes.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;lambda&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#lambda--resource_attributes&#34;&gt;resource_attri`butes&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures which resource attributes to add.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;lambda--resource_attributes&#34;&gt;&lt;code&gt;lambda&lt;/code&gt; &amp;gt; &lt;code&gt;resource_attributes&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;The &lt;code&gt;resource_attributes&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;aws.log.group.names&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;aws.log.group.names&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;aws.log.stream.names&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;aws.log.stream.names&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.platform&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.platform&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.provider&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.provider&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.region&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.region&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;faas.instance&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;faas.instance&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;faas.max_memory&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;faas.max_memory&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;faas.name&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;faas.name&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;faas.version&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;faas.version&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/cloud.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Cloud semantic conventions&lt;/a&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;cloud.provider&lt;/code&gt;: &lt;code&gt;&amp;quot;aws&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cloud.platform&lt;/code&gt;: &lt;code&gt;&amp;quot;aws_lambda&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cloud.region&lt;/code&gt;: &lt;code&gt;$AWS_REGION&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/faas.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Function as a Service semantic conventions&lt;/a&gt; and &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/semantic_conventions/instrumentation/aws-lambda.md#resource-detector&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;AWS Lambda semantic conventions&lt;/a&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;faas.name&lt;/code&gt;: &lt;code&gt;$AWS_LAMBDA_FUNCTION_NAME&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;faas.version&lt;/code&gt;: &lt;code&gt;$AWS_LAMBDA_FUNCTION_VERSION&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;faas.instance&lt;/code&gt;: &lt;code&gt;$AWS_LAMBDA_LOG_STREAM_NAME&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;faas.max_memory&lt;/code&gt;: &lt;code&gt;$AWS_LAMBDA_FUNCTION_MEMORY_SIZE&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/cloud_provider/aws/logs.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;AWS Logs semantic conventions&lt;/a&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;aws.log.group.names&lt;/code&gt;: &lt;code&gt;$AWS_LAMBDA_LOG_GROUP_NAME&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;aws.log.stream.names&lt;/code&gt;: &lt;code&gt;$AWS_LAMBDA_LOG_STREAM_NAME&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;nova&#34;&gt;&lt;code&gt;nova&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;nova&lt;/code&gt; block queries the OpenStack Nova instance metadata API to retrieve various resource attributes from the OpenStack environment.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;nova&lt;/code&gt; block supports the following attributes:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&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;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fail_on_missing_metadata&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to fail if metadata is missing.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;labels&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of regular expressions to match against OpenStack Nova instance metadata keys (from the &amp;ldquo;meta&amp;rdquo; map) to add as resource attributes.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;code&gt;nova&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#nova--resource_attributes&#34;&gt;&lt;code&gt;resource_attributes&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures which resource attributes to add.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;nova--resource_attributes&#34;&gt;&lt;code&gt;nova&lt;/code&gt; &amp;gt; &lt;code&gt;resource_attributes&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;The &lt;code&gt;resource_attributes&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.availability_zone&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.availability_zone&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.platform&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.platform&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.provider&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.provider&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.region&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.region&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.id&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.id&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.name&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.name&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.type&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.type&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;Example values:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;cloud.platform&lt;/code&gt;: &lt;code&gt;&amp;quot;openstack&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cloud.provider&lt;/code&gt;: &lt;code&gt;&amp;quot;openstack_nova&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;oraclecloud&#34;&gt;&lt;code&gt;oraclecloud&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;oraclecloud&lt;/code&gt; block queries the Oracle Cloud Infrastructure (OCI) instance metadata service to retrieve various resource attributes from the Oracle Cloud environment.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;oraclecloud&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#oraclecloud--resource_attributes&#34;&gt;&lt;code&gt;resource_attributes&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures which resource attributes to add.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;oraclecloud--resource_attributes&#34;&gt;&lt;code&gt;oraclecloud&lt;/code&gt; &amp;gt; &lt;code&gt;resource_attributes&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;The &lt;code&gt;resource_attributes&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.platform&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.platform&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.provider&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.provider&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.region&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.region&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.availability_zone&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.availability_zone&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.id&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.id&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.name&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.name&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.type&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.type&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;k8s.cluster.name&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;k8s.cluster.name&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;oracle_cloud.realm&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;oracle_cloud.realm&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;Example values:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;cloud.platform&lt;/code&gt;: &lt;code&gt;&amp;quot;oracle_cloud_infrastructure&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cloud.provider&lt;/code&gt;: &lt;code&gt;&amp;quot;oraclecloud&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;oracle_cloud.realm&lt;/code&gt;: For example, &lt;code&gt;&amp;quot;oc1&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;tencent_cvm&#34;&gt;&lt;code&gt;tencent_cvm&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;tencent_cvm&lt;/code&gt; block queries the Tencent Cloud CVM metadata service to retrieve resource attributes.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;tencent_cvm&lt;/code&gt; block supports the following attributes:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&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;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fail_on_missing_metadata&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to fail if the metadata endpoint is unavailable or required fields are missing.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;code&gt;tencent_cvm&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#tencent_cvm--resource_attributes&#34;&gt;&lt;code&gt;resource_attributes&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures which resource attributes to add.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;tencent_cvm--resource_attributes&#34;&gt;&lt;code&gt;tencent_cvm&lt;/code&gt; &amp;gt; &lt;code&gt;resource_attributes&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;The &lt;code&gt;resource_attributes&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.account.id&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.account.id&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.availability_zone&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.availability_zone&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.platform&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.platform&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.provider&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.provider&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.region&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.region&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.id&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.id&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.image.id&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.image.id&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.name&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.name&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.type&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.type&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;alibaba_ecs&#34;&gt;&lt;code&gt;alibaba_ecs&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;alibaba_ecs&lt;/code&gt; block queries the Alibaba Cloud ECS metadata service to retrieve resource attributes.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;alibaba_ecs&lt;/code&gt; block supports the following attributes:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&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;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fail_on_missing_metadata&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to fail if the metadata endpoint is unavailable or required fields are missing.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;code&gt;alibaba_ecs&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#alibaba_ecs--resource_attributes&#34;&gt;&lt;code&gt;resource_attributes&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures which resource attributes to add.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;alibaba_ecs--resource_attributes&#34;&gt;&lt;code&gt;alibaba_ecs&lt;/code&gt; &amp;gt; &lt;code&gt;resource_attributes&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;The &lt;code&gt;resource_attributes&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.account.id&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.account.id&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.availability_zone&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.availability_zone&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.platform&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.platform&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.provider&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.provider&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.region&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.region&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.id&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.id&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.image.id&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.image.id&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.name&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.name&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.type&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.type&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;openshift&#34;&gt;&lt;code&gt;openshift&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;openshift&lt;/code&gt; block queries the OpenShift and Kubernetes APIs to retrieve various resource attributes.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;openshift&lt;/code&gt; block supports the following attributes:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&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;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;address&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Address of the OpenShift API server.&lt;/td&gt;
              &lt;td&gt;&lt;em&gt;See below&lt;/em&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;token&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Token used to identify against the OpenShift API server.&lt;/td&gt;
              &lt;td&gt;&amp;quot;&amp;quot;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &amp;ldquo;get&amp;rdquo;, &amp;ldquo;watch&amp;rdquo;, and &amp;ldquo;list&amp;rdquo; permissions are required:&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;YAML&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-yaml&#34;&gt;kind: ClusterRole
metadata:
  name: alloy
rules:
  - apiGroups: [&amp;#34;config.openshift.io&amp;#34;]
    resources: [&amp;#34;infrastructures&amp;#34;, &amp;#34;infrastructures/status&amp;#34;]
    verbs: [&amp;#34;get&amp;#34;, &amp;#34;watch&amp;#34;, &amp;#34;list&amp;#34;]&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;By default, the API address is determined from the environment variables &lt;code&gt;KUBERNETES_SERVICE_HOST&lt;/code&gt;, &lt;code&gt;KUBERNETES_SERVICE_PORT&lt;/code&gt; and the service token is read from &lt;code&gt;/var/run/secrets/kubernetes.io/serviceaccount/token&lt;/code&gt;.
If TLS isn&amp;rsquo;t explicitly disabled and no &lt;code&gt;ca_file&lt;/code&gt; is configured, &lt;code&gt;/var/run/secrets/kubernetes.io/serviceaccount/ca.crt&lt;/code&gt; is used.
The determination of the API address, &lt;code&gt;ca_file&lt;/code&gt;, and the service token is skipped if they are set in the configuration.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;openshift&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#openshift--tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;TLS settings for the connection with the OpenShift API.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#openshift--resource_attributes&#34;&gt;&lt;code&gt;resource_attributes&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures which resource attributes to add.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;openshift--tls&#34;&gt;&lt;code&gt;openshift&lt;/code&gt; &amp;gt; &lt;code&gt;tls&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;The &lt;code&gt;tls&lt;/code&gt; block configures TLS settings used for the connection to the gRPC server.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-tls-client-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ca_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the CA file.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ca_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;CA PEM-encoded text to validate the server with.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cert_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS certificate.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cert_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Certificate PEM-encoded text for client authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cipher_suites&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of TLS cipher suites that the TLS transport can use.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;curve_preferences&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Set of elliptic curves to use in a handshake.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_system_ca_certs_pool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to load the system certificate authorities pool alongside the certificate authority.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;insecure_skip_verify&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Ignores insecure server TLS certificates.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;insecure&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Disables TLS when connecting to the configured server.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS certificate key.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;secret&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Key PEM-encoded text for client authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum acceptable TLS version for connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;TLS 1.3&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;min_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Minimum acceptable TLS version for connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;TLS 1.2&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;reload_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The duration after which the certificate is reloaded.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;server_name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Verifies the hostname of server certificates when set.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If the server doesn&amp;rsquo;t support TLS, you must set the &lt;code&gt;insecure&lt;/code&gt; argument to &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;To disable &lt;code&gt;tls&lt;/code&gt; for connections to the server, set the &lt;code&gt;insecure&lt;/code&gt; argument to &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;If you set &lt;code&gt;reload_interval&lt;/code&gt; to &lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;, the certificate never reloaded.&lt;/p&gt;
&lt;p&gt;The following pairs of arguments are mutually exclusive and can&amp;rsquo;t both be set simultaneously:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ca_pem&lt;/code&gt; and &lt;code&gt;ca_file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cert_pem&lt;/code&gt; and &lt;code&gt;cert_file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;key_pem&lt;/code&gt; and &lt;code&gt;key_file&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If &lt;code&gt;cipher_suites&lt;/code&gt; is left blank, a safe default list is used.
Refer to the &lt;a href=&#34;https://go.dev/src/crypto/tls/cipher_suites.go&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Go TLS documentation&lt;/a&gt; for a list of supported cipher suites.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;curve_preferences&lt;/code&gt; argument determines the set of &lt;a href=&#34;https://go.dev/src/crypto/tls/common.go#L138&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;elliptic curves&lt;/a&gt; to prefer during a handshake in preference order.
If not provided, a default list is used.
The set of elliptic curves available are &lt;code&gt;X25519&lt;/code&gt;, &lt;code&gt;P521&lt;/code&gt;, &lt;code&gt;P256&lt;/code&gt;, and &lt;code&gt;P384&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;tpm&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;tpm&lt;/code&gt; block configures retrieving the TLS &lt;code&gt;key_file&lt;/code&gt; from a trusted device.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-tls-tpm-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The authorization value used to authenticate the TPM device.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Load the &lt;code&gt;tls.key_file&lt;/code&gt; from TPM.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;owner_auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The owner authorization value used to authenticate the TPM device.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;path&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TPM device or Unix domain socket.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;a href=&#34;https://trustedcomputinggroup.org/resource/trusted-platform-module-tpm-summary/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;trusted platform module&lt;/a&gt; (TPM) configuration can be used for loading TLS key from TPM. Currently only TSS2 format is supported.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;path&lt;/code&gt; attribute is not supported on Windows.&lt;/p&gt;
&lt;p&gt;In the following example, the private key &lt;code&gt;my-tss2-key.key&lt;/code&gt; in TSS2 format is loaded from the TPM device &lt;code&gt;/dev/tmprm0&lt;/code&gt;:&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;otelcol.example.component &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
    ...
    tls {
        ...
        key_file = &amp;#34;my-tss2-key.key&amp;#34;
        tpm {
            enabled = true
            path = &amp;#34;/dev/tpmrm0&amp;#34;
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

        
&lt;h4 id=&#34;openshift--resource_attributes&#34;&gt;&lt;code&gt;openshift&lt;/code&gt; &amp;gt; &lt;code&gt;resource_attributes&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;The &lt;code&gt;resource_attributes&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.platform&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.platform&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.provider&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.provider&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.region&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.region&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;k8s.cluster.name&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;k8s.cluster.name&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;scaleway&#34;&gt;&lt;code&gt;scaleway&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;scaleway&lt;/code&gt; block queries the Scaleway instance metadata API to retrieve various resource attributes from the Scaleway cloud environment.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;scaleway&lt;/code&gt; block supports the following attributes:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&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;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;resource_attributes&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;[&lt;code&gt;resource_attributes&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Configures which resource attributes to add.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;scaleway--resource_attributes&#34;&gt;&lt;code&gt;scaleway&lt;/code&gt; &amp;gt; &lt;code&gt;resource_attributes&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;The &lt;code&gt;resource_attributes&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.account.id&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.account.id&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.availability_zone&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.availability_zone&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.platform&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.platform&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.provider&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.provider&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.region&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.region&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.id&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.id&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.image.id&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.image.id&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.image.name&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.image.name&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.name&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.name&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.type&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.type&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;Example values:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;cloud.platform&lt;/code&gt;: &lt;code&gt;&amp;quot;scaleway_cloud_compute&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cloud.provider&lt;/code&gt;: &lt;code&gt;&amp;quot;scaleway_cloud&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;system&#34;&gt;&lt;code&gt;system&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;system&lt;/code&gt; block queries the host machine to retrieve various resource attributes.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Use the &lt;a href=&#34;#docker&#34;&gt;Docker&lt;/a&gt; detector if running Alloy as a Docker container.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;The &lt;code&gt;system&lt;/code&gt; block supports the following attributes:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&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;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;hostname_sources&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A priority list of sources from which the hostname will be fetched.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[&amp;quot;dns&amp;quot;, &amp;quot;os&amp;quot;]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The valid options for &lt;code&gt;hostname_sources&lt;/code&gt; are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;dns&amp;quot;&lt;/code&gt;: Uses multiple sources to get the fully qualified domain name.
First, it looks up the host name in the local machine&amp;rsquo;s &lt;code&gt;hosts&lt;/code&gt; file.
If that fails, it looks up the CNAME.
If the CNAME lookup fails, it does a reverse DNS query.
This hostname source may produce unreliable results on Windows.
To produce a FQDN, Windows hosts might have better results using the &amp;ldquo;lookup&amp;rdquo; hostname source.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;os&amp;quot;&lt;/code&gt;: Provides the hostname provided by the local machine&amp;rsquo;s kernel.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;cname&amp;quot;&lt;/code&gt;: Provides the canonical name, as provided by &lt;code&gt;net.LookupCNAME&lt;/code&gt; in the Go standard library.
This hostname source may produce unreliable results on Windows.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;lookup&amp;quot;&lt;/code&gt;: Does a reverse DNS lookup of the current host&amp;rsquo;s IP address.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If there is an error fetching a hostname from a source, the next source from the list of &lt;code&gt;hostname_sources&lt;/code&gt; will be considered.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;system&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#system--resource_attributes&#34;&gt;&lt;code&gt;resource_attributes&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures which resource attributes to add.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;system--resource_attributes&#34;&gt;&lt;code&gt;system&lt;/code&gt; &amp;gt; &lt;code&gt;resource_attributes&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;The &lt;code&gt;resource_attributes&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.arch&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.arch&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;false&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.cpu.cache.l2.size&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.cpu.cache.l2.size&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;false&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.cpu.family&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.cpu.family&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;false&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.cpu.model.id&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.cpu.model.id&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;false&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.cpu.model.name&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.cpu.model.name&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;false&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.cpu.stepping&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.cpu.stepping&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;false&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.cpu.vendor.id&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.cpu.vendor.id&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;false&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.id&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.id&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;false&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.interface&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.interface&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;false&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.ip&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.ip&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;false&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.mac&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.mac&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;false&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.name&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.name&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;os.build.id&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;os.build.id&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;false&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;os.description&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;os.description&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;false&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;os.name&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;os.name&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;false&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;os.type&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;os.type&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;os.version&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;os.version&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;false&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;upcloud&#34;&gt;&lt;code&gt;upcloud&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;upcloud&lt;/code&gt; block queries the UpCloud instance metadata API to retrieve various resource attributes from the UpCloud environment.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;upcloud&lt;/code&gt; block supports the following attributes:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&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;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fail_on_missing_metadata&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to fail if metadata cannot be retrieved from the UpCloud metadata API.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;resource_attributes&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;[&lt;code&gt;resource_attributes&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Configures which resource attributes to add.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;upcloud--resource_attributes&#34;&gt;&lt;code&gt;upcloud&lt;/code&gt; &amp;gt; &lt;code&gt;resource_attributes&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;The &lt;code&gt;resource_attributes&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.provider&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.provider&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.region&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.region&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.id&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.id&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.name&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.name&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;Example values:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;cloud.provider&lt;/code&gt;: &lt;code&gt;&amp;quot;upcloud&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;vultr&#34;&gt;&lt;code&gt;vultr&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;vultr&lt;/code&gt; block queries the Vultr instance metadata API to retrieve various resource attributes from the Vultr cloud environment.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;vultr&lt;/code&gt; block supports the following attributes:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&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;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fail_on_missing_metadata&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to fail if metadata cannot be retrieved from the Vultr metadata API.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;resource_attributes&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;[&lt;code&gt;resource_attributes&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Configures which resource attributes to add.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;vultr--resource_attributes&#34;&gt;&lt;code&gt;vultr&lt;/code&gt; &amp;gt; &lt;code&gt;resource_attributes&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;The &lt;code&gt;resource_attributes&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.provider&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.provider&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;cloud.region&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;cloud.region&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.id&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.id&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;[&lt;code&gt;host.name&lt;/code&gt;][res-attr-cfg]&lt;/td&gt;
              &lt;td&gt;Toggles the &lt;code&gt;host.name&lt;/code&gt; resource attribute. Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;Example values:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;cloud.provider&lt;/code&gt;: &lt;code&gt;&amp;quot;vultr&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;common-configuration&#34;&gt;Common configuration&lt;/h2&gt;
&lt;h3 id=&#34;resource-attribute-configuration&#34;&gt;Resource attribute configuration&lt;/h3&gt;
&lt;p&gt;This block describes how to configure resource attributes such as &lt;code&gt;k8s.node.name&lt;/code&gt; and &lt;code&gt;azure.vm.name&lt;/code&gt;.
Every block is configured using the same set of attributes.
Only the default values for those attributes might differ across resource attributes.
For example, some resource attributes have &lt;code&gt;enabled&lt;/code&gt; set to &lt;code&gt;true&lt;/code&gt; by default, whereas others don&amp;rsquo;t.&lt;/p&gt;
&lt;p&gt;The following attributes are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&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;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Toggles whether to add the resource attribute to the span, log, or metric resource.&lt;/td&gt;
              &lt;td&gt;&lt;em&gt;See below&lt;/em&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;To see the default value for &lt;code&gt;enabled&lt;/code&gt;, refer to the tables in the sections above which list the resource attributes blocks.
The &amp;ldquo;Description&amp;rdquo; column will state either:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; by default.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;or:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Sets &lt;code&gt;enabled&lt;/code&gt; to &lt;code&gt;false&lt;/code&gt; by default.&lt;/p&gt;&lt;/blockquote&gt;
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;The following fields are exported and can be referenced by other components:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&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;code&gt;input&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A value that other components can use to send telemetry data to.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;input&lt;/code&gt; accepts &lt;code&gt;otelcol.Consumer&lt;/code&gt; OTLP-formatted data for any telemetry signal of these types:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;logs&lt;/li&gt;
&lt;li&gt;metrics&lt;/li&gt;
&lt;li&gt;traces&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.resourcedetection&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.resourcedetection&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;examples&#34;&gt;Examples&lt;/h2&gt;
&lt;h3 id=&#34;env-detector-1&#34;&gt;&lt;code&gt;env&lt;/code&gt; detector&lt;/h3&gt;
&lt;p&gt;If you set up a &lt;code&gt;OTEL_RESOURCE_ATTRIBUTES&lt;/code&gt; environment variable with value of &lt;code&gt;TestKey=TestValue&lt;/code&gt;,
then all logs, metrics, and traces have a resource attribute with a key &lt;code&gt;TestKey&lt;/code&gt; and value of &lt;code&gt;TestValue&lt;/code&gt;.&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;otelcol.processor.resourcedetection &amp;#34;default&amp;#34; {
  detectors = [&amp;#34;env&amp;#34;]

  output {
    logs    = [otelcol.exporter.otlphttp.default.input]
    metrics = [otelcol.exporter.otlphttp.default.input]
    traces  = [otelcol.exporter.otlphttp.default.input]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;env-and-ec2&#34;&gt;&lt;code&gt;env&lt;/code&gt; and &lt;code&gt;ec2&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;There is no need to put in an &lt;code&gt;ec2 {}&lt;/code&gt; block.
The &lt;code&gt;ec2&lt;/code&gt; defaults are applied automatically, as specified in [&lt;code&gt;ec2&lt;/code&gt;][ec2].&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;otelcol.processor.resourcedetection &amp;#34;default&amp;#34; {
  detectors = [&amp;#34;env&amp;#34;, &amp;#34;ec2&amp;#34;]

  output {
    logs    = [otelcol.exporter.otlphttp.default.input]
    metrics = [otelcol.exporter.otlphttp.default.input]
    traces  = [otelcol.exporter.otlphttp.default.input]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;ec2-with-default-resource-attributes&#34;&gt;&lt;code&gt;ec2&lt;/code&gt; with default resource attributes&lt;/h3&gt;
&lt;p&gt;There is no need to put in a &lt;code&gt;ec2 {}&lt;/code&gt; block.
The &lt;code&gt;ec2&lt;/code&gt; defaults are applied automatically, as specified in [&lt;code&gt;ec2&lt;/code&gt;][ec2].&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;otelcol.processor.resourcedetection &amp;#34;default&amp;#34; {
  detectors = [&amp;#34;ec2&amp;#34;]

  output {
    logs    = [otelcol.exporter.otlphttp.default.input]
    metrics = [otelcol.exporter.otlphttp.default.input]
    traces  = [otelcol.exporter.otlphttp.default.input]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;ec2-with-explicit-resource-attributes&#34;&gt;&lt;code&gt;ec2&lt;/code&gt; with explicit resource attributes&lt;/h3&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;otelcol.processor.resourcedetection &amp;#34;default&amp;#34; {
  detectors = [&amp;#34;ec2&amp;#34;]
  ec2 {
    tags = [&amp;#34;^tag1$&amp;#34;, &amp;#34;^tag2$&amp;#34;, &amp;#34;^label.*$&amp;#34;]
    resource_attributes {
      cloud.account.id  { enabled = true }
      cloud.availability_zone  { enabled = true }
      cloud.platform  { enabled = true }
      cloud.provider  { enabled = true }
      cloud.region  { enabled = true }
      host.id  { enabled = true }
      host.image.id  { enabled = false }
      host.name  { enabled = false }
      host.type  { enabled = false }
    }
  }

  output {
    logs    = [otelcol.exporter.otlphttp.default.input]
    metrics = [otelcol.exporter.otlphttp.default.input]
    traces  = [otelcol.exporter.otlphttp.default.input]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;kubernetes_node-with-a-default-node&#34;&gt;&lt;code&gt;kubernetes_node&lt;/code&gt; with a default node&lt;/h3&gt;
&lt;p&gt;This example uses the default &lt;code&gt;node_from_env_var&lt;/code&gt; option of &lt;code&gt;K8S_NODE_NAME&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;There is no need to put in a &lt;code&gt;kubernetes_node {}&lt;/code&gt; block.
The &lt;code&gt;kubernetes_node&lt;/code&gt; defaults are applied automatically, as specified in [&lt;code&gt;kubernetes_node&lt;/code&gt;][kubernetes_node].&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;otelcol.processor.resourcedetection &amp;#34;default&amp;#34; {
  detectors = [&amp;#34;kubernetes_node&amp;#34;]

  output {
    logs    = [otelcol.exporter.otlphttp.default.input]
    metrics = [otelcol.exporter.otlphttp.default.input]
    traces  = [otelcol.exporter.otlphttp.default.input]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;You need to add this to your workload:&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;YAML&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-yaml&#34;&gt;env:
  - name: K8S_NODE_NAME
    valueFrom:
      fieldRef:
        fieldPath: spec.nodeName&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;kubernetes_node-with-a-custom-environment-variable&#34;&gt;&lt;code&gt;kubernetes_node&lt;/code&gt; with a custom environment variable&lt;/h3&gt;
&lt;p&gt;This example uses a custom &lt;code&gt;node_from_env_var&lt;/code&gt; set to &lt;code&gt;my_custom_var&lt;/code&gt;.&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;otelcol.processor.resourcedetection &amp;#34;default&amp;#34; {
  detectors = [&amp;#34;kubernetes_node&amp;#34;]
  kubernetes_node {
    node_from_env_var = &amp;#34;my_custom_var&amp;#34;
  }

  output {
    logs    = [otelcol.exporter.otlphttp.default.input]
    metrics = [otelcol.exporter.otlphttp.default.input]
    traces  = [otelcol.exporter.otlphttp.default.input]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;You need to add this to your workload:&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;YAML&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-yaml&#34;&gt;env:
  - name: my_custom_var
    valueFrom:
      fieldRef:
        fieldPath: spec.nodeName&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.resourcedetection&lt;/code&gt; can accept arguments from the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that export &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-exporters&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.resourcedetection&lt;/code&gt; has exports that can be consumed by the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that consume &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-consumers&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolprocessorresourcedetection">&lt;code>otelcol.processor.resourcedetection&lt;/code>&lt;/h1>
&lt;p>&lt;code>otelcol.processor.resourcedetection&lt;/code> detects resource information from the host in a format that conforms to the &lt;a href="https://github.com/open-telemetry/opentelemetry-specification/tree/main/specification/resource/semantic_conventions/" target="_blank" rel="noopener noreferrer">OpenTelemetry resource semantic conventions&lt;/a>, and appends or overrides the resource values in the telemetry data with this information.&lt;/p></description></item><item><title>otelcol.processor.span</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.processor.span/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.processor.span/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolprocessorspan&#34;&gt;otelcol.processor.span&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.span&lt;/code&gt; accepts traces telemetry data from other &lt;code&gt;otelcol&lt;/code&gt; components and modifies the names and attributes of the spans.
It also supports the ability to filter input data to determine if it should be included or excluded from this processor.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.processor.span&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/processor/spanprocessor&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;span&lt;/code&gt;&lt;/a&gt; processor.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.processor.span&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.processor.span &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  output {
    traces  = [...]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;otelcol.processor.span&lt;/code&gt; component doesn&amp;rsquo;t support any arguments. You can configure this component with blocks.&lt;/p&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.processor.span&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 15;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#output\&amp;#34;\u003e\u003ccode\u003eoutput\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures where to send received telemetry data.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#exclude\&amp;#34;\u003e\u003ccode\u003eexclude\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eFilter for data excluded from this processor\u0026rsquo;s actions\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eexclude\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#attribute\&amp;#34;\u003e\u003ccode\u003eattribute\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eA list of attributes to match against.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eexclude\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#library\&amp;#34;\u003e\u003ccode\u003elibrary\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eA list of items to match the implementation library against.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eexclude\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#regexp\&amp;#34;\u003e\u003ccode\u003eregexp\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eRegex cache settings.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eexclude\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#resource\&amp;#34;\u003e\u003ccode\u003eresource\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eA list of items to match the resources against.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#include\&amp;#34;\u003e\u003ccode\u003einclude\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eFilter for data included in this processor\u0026rsquo;s actions.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003einclude\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#attribute\&amp;#34;\u003e\u003ccode\u003eattribute\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eA list of attributes to match against.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003einclude\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#library\&amp;#34;\u003e\u003ccode\u003elibrary\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eA list of items to match the implementation library against.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003einclude\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#regexp\&amp;#34;\u003e\u003ccode\u003eregexp\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eRegex cache settings.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003einclude\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#resource\&amp;#34;\u003e\u003ccode\u003eresource\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eA list of items to match the resources against.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#name\&amp;#34;\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures how to rename a span and add attributes.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003ename\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#to_attributes\&amp;#34;\u003e\u003ccode\u003eto-attributes\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfiguration to create attributes from a span name.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#status\&amp;#34;\u003e\u003ccode\u003estatus\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eSpecifies a status which should be set for this span.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures where to send received telemetry data.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#exclude&#34;&gt;&lt;code&gt;exclude&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Filter for data excluded from this processor&amp;rsquo;s actions&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;exclude&lt;/code&gt; &amp;gt; &lt;a href=&#34;#attribute&#34;&gt;&lt;code&gt;attribute&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;A list of attributes to match against.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;exclude&lt;/code&gt; &amp;gt; &lt;a href=&#34;#library&#34;&gt;&lt;code&gt;library&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;A list of items to match the implementation library against.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;exclude&lt;/code&gt; &amp;gt; &lt;a href=&#34;#regexp&#34;&gt;&lt;code&gt;regexp&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Regex cache settings.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;exclude&lt;/code&gt; &amp;gt; &lt;a href=&#34;#resource&#34;&gt;&lt;code&gt;resource&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;A list of items to match the resources against.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#include&#34;&gt;&lt;code&gt;include&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Filter for data included in this processor&amp;rsquo;s actions.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include&lt;/code&gt; &amp;gt; &lt;a href=&#34;#attribute&#34;&gt;&lt;code&gt;attribute&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;A list of attributes to match against.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include&lt;/code&gt; &amp;gt; &lt;a href=&#34;#library&#34;&gt;&lt;code&gt;library&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;A list of items to match the implementation library against.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include&lt;/code&gt; &amp;gt; &lt;a href=&#34;#regexp&#34;&gt;&lt;code&gt;regexp&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Regex cache settings.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include&lt;/code&gt; &amp;gt; &lt;a href=&#34;#resource&#34;&gt;&lt;code&gt;resource&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;A list of items to match the resources against.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#name&#34;&gt;&lt;code&gt;name&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures how to rename a span and add attributes.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;name&lt;/code&gt; &amp;gt; &lt;a href=&#34;#to_attributes&#34;&gt;&lt;code&gt;to-attributes&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configuration to create attributes from a span name.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#status&#34;&gt;&lt;code&gt;status&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Specifies a status which should be set for this span.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;p&gt;If both an &lt;code&gt;include&lt;/code&gt; block and an &lt;code&gt;exclude&lt;/code&gt;block are specified, the &lt;code&gt;include&lt;/code&gt; properties are checked before the &lt;code&gt;exclude&lt;/code&gt; properties.&lt;/p&gt;
&lt;h3 id=&#34;output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;



&lt;div data-shared=&#34;reference/components/output-block-traces.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;output&lt;/code&gt; block configures a set of components to forward resulting telemetry data to.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;traces&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send traces to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You must specify the &lt;code&gt;output&lt;/code&gt; block, but all its arguments are optional.
By default, telemetry data is dropped.
Configure the &lt;code&gt;traces&lt;/code&gt; argument accordingly to send telemetry data to other components.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h3 id=&#34;exclude&#34;&gt;&lt;code&gt;exclude&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;exclude&lt;/code&gt; block provides an option to exclude data from being fed into the [&lt;code&gt;name&lt;/code&gt;][name] and [&lt;code&gt;status&lt;/code&gt;][status] blocks based on the properties of a span.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;match_type&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Controls how items to match against are interpreted.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;services&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of items to match the service name against.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;span_kinds&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of items to match the span kind against.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;span_names&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of items to match the span name against.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;match_type&lt;/code&gt; is required and must be set to either &lt;code&gt;&amp;quot;regexp&amp;quot;&lt;/code&gt; or &lt;code&gt;&amp;quot;strict&amp;quot;&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;A match occurs if at least one item in the lists matches.&lt;/p&gt;
&lt;p&gt;One of &lt;code&gt;services&lt;/code&gt;, &lt;code&gt;span_names&lt;/code&gt;, &lt;code&gt;span_kinds&lt;/code&gt;, [&lt;code&gt;attribute&lt;/code&gt;][attribute], [&lt;code&gt;resource&lt;/code&gt;][resource], or [&lt;code&gt;library&lt;/code&gt;][library] must be specified with a non-empty value for a valid configuration.&lt;/p&gt;
&lt;h3 id=&#34;attribute&#34;&gt;&lt;code&gt;attribute&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-filter-attribute-block.md&#34;&gt;
            &lt;p&gt;This block specifies an attribute to match against:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You can define more than one &lt;code&gt;attribute&lt;/code&gt; block.&lt;/li&gt;
&lt;li&gt;Only &lt;code&gt;match_type = &amp;quot;strict&amp;quot;&lt;/code&gt; is allowed if &lt;code&gt;attribute&lt;/code&gt; is specified.&lt;/li&gt;
&lt;li&gt;All &lt;code&gt;attribute&lt;/code&gt; blocks must match exactly for a match to occur.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The attribute key.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;value&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;any&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The attribute value to match against.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If &lt;code&gt;value&lt;/code&gt; isn&amp;rsquo;t set, any value matches.
The type of &lt;code&gt;value&lt;/code&gt; could be a number, a string, or a boolean.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;library&#34;&gt;&lt;code&gt;library&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-filter-library-block.md&#34;&gt;
            &lt;p&gt;This block specifies properties to match the implementation library against:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;More than one &lt;code&gt;library&lt;/code&gt; block can be defined.&lt;/li&gt;
&lt;li&gt;A match occurs if the span&amp;rsquo;s implementation library matches at least one &lt;code&gt;library&lt;/code&gt; block.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The attribute key.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The version to match against.&lt;/td&gt;
              &lt;td&gt;null&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If &lt;code&gt;version&lt;/code&gt; is unset, any version matches.
If you set &lt;code&gt;version&lt;/code&gt; to an empty string, it only matches a library version, which is also an empty string.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;regexp&#34;&gt;&lt;code&gt;regexp&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-filter-regexp-block.md&#34;&gt;
            &lt;p&gt;This block is an optional configuration for the &lt;code&gt;match_type&lt;/code&gt; of &lt;code&gt;&amp;quot;regexp&amp;quot;&lt;/code&gt;.
It configures a Least Recently Used (LRU) cache.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cache_enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Determines whether match results are LRU cached.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cache_max_num_entries&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The max number of entries of the LRU cache that stores match results.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;Enabling &lt;code&gt;cache_enabled&lt;/code&gt; could make subsequent matches faster.
Cache size is unlimited unless &lt;code&gt;cache_max_num_entries&lt;/code&gt; is also specified.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;cache_max_num_entries&lt;/code&gt; is ignored if &lt;code&gt;cache_enabled&lt;/code&gt; is false.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;resource&#34;&gt;&lt;code&gt;resource&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-filter-resource-block.md&#34;&gt;
            &lt;p&gt;This block specifies items to match the resources against:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;More than one &lt;code&gt;resource&lt;/code&gt; block can be defined.&lt;/li&gt;
&lt;li&gt;A match occurs if the input data resources match at least one &lt;code&gt;resource&lt;/code&gt; block.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The resource key.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;value&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;any&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The resource value to match against.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If &lt;code&gt;value&lt;/code&gt; isn&amp;rsquo;t set, any value matches.
The type of &lt;code&gt;value&lt;/code&gt; could be a number, a string, or a boolean.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;include&#34;&gt;&lt;code&gt;include&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;include&lt;/code&gt; block provides an option to include data being fed into the [&lt;code&gt;name&lt;/code&gt;][name] and [&lt;code&gt;status&lt;/code&gt;][status] blocks based on the properties of a span.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;match_type&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Controls how items to match against are interpreted.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;services&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of items to match the service name against.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;span_kinds&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of items to match the span kind against.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;span_names&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of items to match the span name against.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;match_type&lt;/code&gt; is required and must be set to either &lt;code&gt;&amp;quot;regexp&amp;quot;&lt;/code&gt; or &lt;code&gt;&amp;quot;strict&amp;quot;&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;A match occurs if at least one item in the lists matches.&lt;/p&gt;
&lt;p&gt;One of &lt;code&gt;services&lt;/code&gt;, &lt;code&gt;span_names&lt;/code&gt;, &lt;code&gt;span_kinds&lt;/code&gt;, [&lt;code&gt;attribute&lt;/code&gt;][attribute], [&lt;code&gt;resource&lt;/code&gt;][resource], or [&lt;code&gt;library&lt;/code&gt;][library] must be specified with a non-empty value for a valid configuration.&lt;/p&gt;
&lt;h3 id=&#34;name&#34;&gt;&lt;code&gt;name&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;name&lt;/code&gt; block configures how to rename a span and add attributes.&lt;/p&gt;
&lt;p&gt;The following attributes are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;from_attributes&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Attribute keys to pull values from, to generate a new span name.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;separator&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Separates attributes values in the new span name.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;Firstly &lt;code&gt;from_attributes&lt;/code&gt; rules are applied, then [&lt;code&gt;to-attributes&lt;/code&gt;][to-attributes] are applied.
At least one of these 2 fields must be set.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;from_attributes&lt;/code&gt; represents the attribute keys to pull the values from to generate the new span name:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;All attribute keys are required in the span to rename a span.
If any attribute is missing from the span, no rename will occur.&lt;/li&gt;
&lt;li&gt;The new span name is constructed in order of the &lt;code&gt;from_attributes&lt;/code&gt; specified in the configuration.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;separator&lt;/code&gt; is the string used to separate attributes values in the new span name.
If no value is set, no separator is used between attribute values.
&lt;code&gt;separator&lt;/code&gt; is used with &lt;code&gt;from_attributes&lt;/code&gt; only. It&amp;rsquo;s not used with [&lt;code&gt;to-attributes&lt;/code&gt;][to-attributes].&lt;/p&gt;
&lt;h3 id=&#34;to_attributes&#34;&gt;&lt;code&gt;to_attributes&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;to_attributes&lt;/code&gt; block configures how to create attributes from a span name.&lt;/p&gt;
&lt;p&gt;The following attributes are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;rules&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of regular expression rules to extract attribute values from span name.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;break_after_match&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Configures if processing of rules should stop after the first match.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;keep_original_name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Configures if the original span name should be kept after processing the rules.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;Each rule in the &lt;code&gt;rules&lt;/code&gt; list is a regular expression pattern string.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The span name is checked against each regular expression in the list.&lt;/li&gt;
&lt;li&gt;If it matches, then all named subexpressions of the regular expression are extracted as attributes and are added to the span.&lt;/li&gt;
&lt;li&gt;Each subexpression name becomes an attribute name and the subexpression matched portion becomes the attribute value.&lt;/li&gt;
&lt;li&gt;The matched portion in the span name is replaced by extracted attribute name.&lt;/li&gt;
&lt;li&gt;If the attributes already exist in the span then they will be overwritten.&lt;/li&gt;
&lt;li&gt;The process is repeated for all rules in the order they&amp;rsquo;re specified.&lt;/li&gt;
&lt;li&gt;Each subsequent rule works on the span name that&amp;rsquo;s the output after processing the previous rule.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;code&gt;break_after_match&lt;/code&gt; specifies if processing of rules should stop after the first match.
If it&amp;rsquo;s &lt;code&gt;false&lt;/code&gt;, rule processing will continue to be performed over the modified span name.&lt;/p&gt;
&lt;p&gt;If &lt;code&gt;keep_original_name&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;, the original span name is kept.
If it&amp;rsquo;s &lt;code&gt;false&lt;/code&gt;, the span name is replaced with the placeholders of the captured attributes.&lt;/p&gt;
&lt;h3 id=&#34;status&#34;&gt;&lt;code&gt;status&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;status&lt;/code&gt; block specifies a status which should be set for this span.&lt;/p&gt;
&lt;p&gt;The following attributes are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;code&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A status code.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;description&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;An optional field documenting Error status codes.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The supported values for &lt;code&gt;code&lt;/code&gt; are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Ok&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Error&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Unset&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;description&lt;/code&gt; should only be specified if &lt;code&gt;code&lt;/code&gt; is set to &lt;code&gt;Error&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;The following fields are exported and can be referenced by other components:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&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;code&gt;input&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A value that other components can use to send telemetry data to.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;input&lt;/code&gt; accepts &lt;code&gt;otelcol.Consumer&lt;/code&gt; OTLP-formatted data for traces telemetry signals.
Logs and metrics aren&amp;rsquo;t supported.&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.attributes&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.attributes&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;examples&#34;&gt;Examples&lt;/h2&gt;
&lt;h3 id=&#34;create-a-new-span-name-from-attribute-values&#34;&gt;Create a new span name from attribute values&lt;/h3&gt;
&lt;p&gt;This example creates a new span name from the values of attributes &lt;code&gt;db.svc&lt;/code&gt;, &lt;code&gt;operation&lt;/code&gt;, and &lt;code&gt;id&lt;/code&gt;, in that order, separated by the value &lt;code&gt;::&lt;/code&gt;.
All attribute keys need to be specified in the span for the processor to rename it.&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;otelcol.processor.span &amp;#34;default&amp;#34; {
  name {
    separator        = &amp;#34;::&amp;#34;
    from_attributes  = [&amp;#34;db.svc&amp;#34;, &amp;#34;operation&amp;#34;, &amp;#34;id&amp;#34;]
  }

  output {
      traces = [otelcol.exporter.otlphttp.default.input]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;For a span with the following attributes key/value pairs, the above configuration changes the span name to &lt;code&gt;&amp;quot;location::get::1234&amp;quot;&lt;/code&gt;:&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;JSON&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-json&#34;&gt;{
  &amp;#34;db.svc&amp;#34;: &amp;#34;location&amp;#34;,
  &amp;#34;operation&amp;#34;: &amp;#34;get&amp;#34;,
  &amp;#34;id&amp;#34;: &amp;#34;1234&amp;#34;
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;For a span with the following attributes key/value pairs, the above configuration won&amp;rsquo;t change the span name.
This is because the attribute key &lt;code&gt;operation&lt;/code&gt; isn&amp;rsquo;t set:&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;JSON&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-json&#34;&gt;{
  &amp;#34;db.svc&amp;#34;: &amp;#34;location&amp;#34;,
  &amp;#34;id&amp;#34;: &amp;#34;1234&amp;#34;
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;create-a-new-span-name-from-attribute-values-no-separator&#34;&gt;Create a new span name from attribute values (no separator)&lt;/h3&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;otelcol.processor.span &amp;#34;default&amp;#34; {
  name {
    from_attributes = [&amp;#34;db.svc&amp;#34;, &amp;#34;operation&amp;#34;, &amp;#34;id&amp;#34;]
  }

  output {
      traces = [otelcol.exporter.otlphttp.default.input]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;For a span with the following attributes key/value pairs, the above configuration changes the span name to &lt;code&gt;&amp;quot;locationget1234&amp;quot;&lt;/code&gt;:&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;JSON&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-json&#34;&gt;{
  &amp;#34;db.svc&amp;#34;: &amp;#34;location&amp;#34;,
  &amp;#34;operation&amp;#34;: &amp;#34;get&amp;#34;,
  &amp;#34;id&amp;#34;: &amp;#34;1234&amp;#34;
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;rename-a-span-name-and-adding-attributes&#34;&gt;Rename a span name and adding attributes&lt;/h3&gt;
&lt;p&gt;Example input and output using the configuration below:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Assume the input span name is &lt;code&gt;/api/v1/document/12345678/update&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;The span name will be changed to &lt;code&gt;/api/v1/document/{documentId}/update&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;A new attribute &lt;code&gt;&amp;quot;documentId&amp;quot;=&amp;quot;12345678&amp;quot;&lt;/code&gt; will be added to the span.&lt;/li&gt;
&lt;/ol&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;otelcol.processor.span &amp;#34;default&amp;#34; {
  name {
    to_attributes {
      rules = [&amp;#34;^\\/api\\/v1\\/document\\/(?P&amp;lt;documentId&amp;gt;.*)\\/update$&amp;#34;]
    }
  }

  output {
      traces = [otelcol.exporter.otlphttp.default.input]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;keep-the-original-span-name&#34;&gt;Keep the original span name&lt;/h3&gt;
&lt;p&gt;This example adds the same new &lt;code&gt;&amp;quot;documentId&amp;quot;=&amp;quot;12345678&amp;quot;&lt;/code&gt; attribute as the previous example.
However, the span name is unchanged (&lt;code&gt;/api/v1/document/12345678/update&lt;/code&gt;).&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;otelcol.processor.span &amp;#34;keep_original_name&amp;#34; {
  name {
    to_attributes {
      keep_original_name = true
      rules = [`^\/api\/v1\/document\/(?P&amp;lt;documentId&amp;gt;.*)\/update$`]
    }
  }

  output {
      traces = [otelcol.exporter.otlphttp.default.input]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;filtering-renaming-a-span-name-and-adding-attributes&#34;&gt;Filtering, renaming a span name and adding attributes&lt;/h3&gt;
&lt;p&gt;This example renames the span name to &lt;code&gt;{operation_website}&lt;/code&gt;
and adds the attribute &lt;code&gt;{Key: operation_website, Value: &amp;lt;old span name&amp;gt; }&lt;/code&gt;
if the span has the following properties:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Service name contains the word &lt;code&gt;banks&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The span name contains &lt;code&gt;/&lt;/code&gt; anywhere in the string.&lt;/li&gt;
&lt;li&gt;The span name isn&amp;rsquo;t &lt;code&gt;donot/change&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&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;otelcol.processor.span &amp;#34;default&amp;#34; {
  include {
    match_type = &amp;#34;regexp&amp;#34;
    services   = [&amp;#34;banks&amp;#34;]
    span_names = [&amp;#34;^(.*?)/(.*?)$&amp;#34;]
  }
  exclude {
    match_type = &amp;#34;strict&amp;#34;
    span_names = [&amp;#34;donot/change&amp;#34;]
  }
  name {
    to_attributes {
      rules = [&amp;#34;(?P&amp;lt;operation_website&amp;gt;.*?)$&amp;#34;]
    }
  }

  output {
      traces = [otelcol.exporter.otlphttp.default.input]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;set-a-status&#34;&gt;Set a status&lt;/h3&gt;
&lt;p&gt;This example changes the status of a span to &amp;ldquo;Error&amp;rdquo; and sets an error description.&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;otelcol.processor.span &amp;#34;default&amp;#34; {
  status {
    code        = &amp;#34;Error&amp;#34;
    description = &amp;#34;some additional error description&amp;#34;
  }

  output {
      traces = [otelcol.exporter.otlphttp.default.input]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;set-a-status-depending-on-an-attribute-value&#34;&gt;Set a status depending on an attribute value&lt;/h3&gt;
&lt;p&gt;This example sets the status to success only when attribute &lt;code&gt;http.status_code&lt;/code&gt; is equal to &lt;code&gt;400&lt;/code&gt;.&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;otelcol.processor.span &amp;#34;default&amp;#34; {
  include {
    match_type = &amp;#34;strict&amp;#34;
    attribute {
      key   = &amp;#34;http.status_code&amp;#34;
      value = 400
    }
  }
  status {
    code = &amp;#34;Ok&amp;#34;
  }

  output {
      traces = [otelcol.exporter.otlphttp.default.input]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.span&lt;/code&gt; can accept arguments from the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that export &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-exporters&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.span&lt;/code&gt; has exports that can be consumed by the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that consume &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-consumers&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolprocessorspan">otelcol.processor.span&lt;/h1>
&lt;p>&lt;code>otelcol.processor.span&lt;/code> accepts traces telemetry data from other &lt;code>otelcol&lt;/code> components and modifies the names and attributes of the spans.
It also supports the ability to filter input data to determine if it should be included or excluded from this processor.&lt;/p></description></item><item><title>otelcol.processor.tail_sampling</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.processor.tail_sampling/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.processor.tail_sampling/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolprocessortail_sampling&#34;&gt;&lt;code&gt;otelcol.processor.tail_sampling&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.tail_sampling&lt;/code&gt; samples traces based on a set of defined policies.
All spans for a given trace &lt;em&gt;must&lt;/em&gt; be received by the same collector instance for effective sampling decisions.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.processor.tail_sampling&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector Contrib &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/processor/tailsamplingprocessor&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;tail_sampling&lt;/code&gt;&lt;/a&gt; processor.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.processor.tail_sampling&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.processor.tail_sampling &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  policy {
    ...
  }
  ...

  output {
    traces  = [...]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.processor.tail_sampling&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;decision_wait&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Wait time since the first span of a trace before making a sampling decision.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;30s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;decision_wait_after_root_received&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Wait time since receiving the root span before making a sampling decision.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;num_traces&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Number of traces kept in memory.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;50000&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;block_on_overflow&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;If &lt;code&gt;true&lt;/code&gt;, wait for space when the &lt;code&gt;num_traces&lt;/code&gt; limit is reached. If &lt;code&gt;false&lt;/code&gt;, old traces will be evicted to make space.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;expected_new_traces_per_sec&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Expected number of new traces (helps in allocating data structures).&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sample_on_first_match&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Make a sampling decision as soon as any policy matches.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;drop_pending_traces_on_shutdown&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Drop pending traces on shutdown instead of deciding with partial data.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;maximum_trace_size_bytes&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Drop traces early when they exceed this size in bytes. &lt;code&gt;0&lt;/code&gt; disables early dropping.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;decision_cache&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;object&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Configures caches for sampling decisions.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;{}&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;decision_wait&lt;/code&gt; determines the number of batches to maintain on a channel.
Its value must convert to a number of seconds greater than zero.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;num_traces&lt;/code&gt; determines the buffer size of the trace delete channel which is composed of trace IDs.
Increasing the number will increase the memory usage of the component while decreasing the number will lower the maximum amount of traces kept in memory.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;expected_new_traces_per_sec&lt;/code&gt; determines the initial slice sizing of the current batch.
A larger number will use more memory but be more efficient when adding traces to the batch.&lt;/p&gt;
&lt;p&gt;If &lt;code&gt;sample_on_first_match&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;, the component makes a decision as soon as one policy matches.&lt;/p&gt;
&lt;p&gt;If &lt;code&gt;drop_pending_traces_on_shutdown&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;, the component drops traces that are still waiting for &lt;code&gt;decision_wait&lt;/code&gt; when shutdown starts.&lt;/p&gt;
&lt;p&gt;If &lt;code&gt;decision_wait_after_root_received&lt;/code&gt; is greater than &lt;code&gt;0&lt;/code&gt;, the component can decide relative to root-span arrival time.&lt;/p&gt;
&lt;p&gt;If &lt;code&gt;maximum_trace_size_bytes&lt;/code&gt; is greater than &lt;code&gt;0&lt;/code&gt;, traces over this size are dropped before decision wait to limit memory usage.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;decision_cache&lt;/code&gt; can contain two keys:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;sampled_cache_size&lt;/code&gt;: Configures the number of trace IDs to be kept in an LRU cache, persisting the &amp;ldquo;keep&amp;rdquo; decisions for traces that may have already been released from memory.
By default, the size is 0 and the cache is inactive.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;non_sampled_cache_size&lt;/code&gt;: Configures the number of trace IDs to be kept in an LRU cache, persisting the &amp;ldquo;drop&amp;rdquo; decisions for traces that may have already been released from memory.
By default, the size is 0 and the cache is inactive.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You may want to vary the size of the &lt;code&gt;decision_cache&lt;/code&gt; depending on how many &amp;ldquo;keep&amp;rdquo; vs &amp;ldquo;drop&amp;rdquo; decisions you expect from your policies.
For example, you can allocate a larger &lt;code&gt;non_sampled_cache_size&lt;/code&gt; if you expect most traces to be dropped.
Additionally, when you use &lt;code&gt;decision_cache&lt;/code&gt;, configure it with a much higher value than &lt;code&gt;num_traces&lt;/code&gt; so decisions for trace IDs are kept longer than the span data for the trace.&lt;/p&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.processor.tail_sampling&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 66;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#output\&amp;#34;\u003e\u003ccode\u003eoutput\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures where to send received telemetry data.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#policy\&amp;#34;\u003e\u003ccode\u003epolicy\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003ePolicies used to make a sampling decision.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#boolean_attribute\&amp;#34;\u003e\u003ccode\u003eboolean_attribute\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on a boolean attribute (resource and record).\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#latency\&amp;#34;\u003e\u003ccode\u003elatency\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on the duration of the trace.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#numeric_attribute\&amp;#34;\u003e\u003ccode\u003enumeric_attribute\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on the number attributes (resource and record).\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#ottl_condition\&amp;#34;\u003e\u003ccode\u003eottl_condition\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on a given boolean OTTL condition (span and span event).\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#probabilistic\&amp;#34;\u003e\u003ccode\u003eprobabilistic\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples a percentage of traces.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#rate_limiting\&amp;#34;\u003e\u003ccode\u003erate_limiting\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on rate.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#bytes_limiting\&amp;#34;\u003e\u003ccode\u003ebytes_limiting\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on the rate of bytes per second.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#span_count\&amp;#34;\u003e\u003ccode\u003espan_count\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on the minimum number of spans within a batch.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#status_code\&amp;#34;\u003e\u003ccode\u003estatus_code\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based upon the status code.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#string_attribute\&amp;#34;\u003e\u003ccode\u003estring_attribute\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on string attributes (resource and record) value matches.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#trace_state\&amp;#34;\u003e\u003ccode\u003etrace_state\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on TraceState value matches.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#not\&amp;#34;\u003e\u003ccode\u003enot\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy inverts a nested policy decision.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003enot\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#not_sub_policy\&amp;#34;\u003e\u003ccode\u003enot_sub_policy\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eA nested policy for \u003ccode\u003enot\u003c/code\u003e inversion.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003enot\u003c/code\u003e \u0026gt; \u003ccode\u003enot_sub_policy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#boolean_attribute\&amp;#34;\u003e\u003ccode\u003eboolean_attribute\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on a boolean attribute (resource and record).\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003enot\u003c/code\u003e \u0026gt; \u003ccode\u003enot_sub_policy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#latency\&amp;#34;\u003e\u003ccode\u003elatency\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on the duration of the trace.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003enot\u003c/code\u003e \u0026gt; \u003ccode\u003enot_sub_policy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#numeric_attribute\&amp;#34;\u003e\u003ccode\u003enumeric_attribute\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on number attributes (resource and record).\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003enot\u003c/code\u003e \u0026gt; \u003ccode\u003enot_sub_policy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#ottl_condition\&amp;#34;\u003e\u003ccode\u003eottl_condition\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on a given boolean OTTL condition (span and span event).\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003enot\u003c/code\u003e \u0026gt; \u003ccode\u003enot_sub_policy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#probabilistic\&amp;#34;\u003e\u003ccode\u003eprobabilistic\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples a percentage of traces.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003enot\u003c/code\u003e \u0026gt; \u003ccode\u003enot_sub_policy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#rate_limiting\&amp;#34;\u003e\u003ccode\u003erate_limiting\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on rate.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003enot\u003c/code\u003e \u0026gt; \u003ccode\u003enot_sub_policy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#bytes_limiting\&amp;#34;\u003e\u003ccode\u003ebytes_limiting\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on the rate of bytes per second.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003enot\u003c/code\u003e \u0026gt; \u003ccode\u003enot_sub_policy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#span_count\&amp;#34;\u003e\u003ccode\u003espan_count\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on the minimum number of spans within a batch.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003enot\u003c/code\u003e \u0026gt; \u003ccode\u003enot_sub_policy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#status_code\&amp;#34;\u003e\u003ccode\u003estatus_code\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based upon the status code.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003enot\u003c/code\u003e \u0026gt; \u003ccode\u003enot_sub_policy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#string_attribute\&amp;#34;\u003e\u003ccode\u003estring_attribute\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on string attributes (resource and record) value matches.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003enot\u003c/code\u003e \u0026gt; \u003ccode\u003enot_sub_policy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#trace_state\&amp;#34;\u003e\u003ccode\u003etrace_state\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on TraceState value matches.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#and\&amp;#34;\u003e\u003ccode\u003eand\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on multiple policies, creates an \u003ccode\u003eand\u003c/code\u003e policy.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003eand\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#and_sub_policy\&amp;#34;\u003e\u003ccode\u003eand_sub_policy\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eA set of policies underneath an \u003ccode\u003eand\u003c/code\u003e policy type.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003eand\u003c/code\u003e \u0026gt; \u003ccode\u003eand_sub_policy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#boolean_attribute\&amp;#34;\u003e\u003ccode\u003eboolean_attribute\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on a boolean attribute (resource and record).\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003eand\u003c/code\u003e \u0026gt; \u003ccode\u003eand_sub_policy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#latency\&amp;#34;\u003e\u003ccode\u003elatency\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on the duration of the trace.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003eand\u003c/code\u003e \u0026gt; \u003ccode\u003eand_sub_policy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#numeric_attribute\&amp;#34;\u003e\u003ccode\u003enumeric_attribute\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on number attributes (resource and record).\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003eand\u003c/code\u003e \u0026gt; \u003ccode\u003eand_sub_policy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#ottl_condition\&amp;#34;\u003e\u003ccode\u003eottl_condition\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on a given boolean OTTL condition (span and span event).\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003eand\u003c/code\u003e \u0026gt; \u003ccode\u003eand_sub_policy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#probabilistic\&amp;#34;\u003e\u003ccode\u003eprobabilistic\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples a percentage of traces.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003eand\u003c/code\u003e \u0026gt; \u003ccode\u003eand_sub_policy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#rate_limiting\&amp;#34;\u003e\u003ccode\u003erate_limiting\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on rate.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003eand\u003c/code\u003e \u0026gt; \u003ccode\u003eand_sub_policy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#bytes_limiting\&amp;#34;\u003e\u003ccode\u003ebytes_limiting\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on the rate of bytes per second.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003eand\u003c/code\u003e \u0026gt; \u003ccode\u003eand_sub_policy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#span_count\&amp;#34;\u003e\u003ccode\u003espan_count\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on the minimum number of spans within a batch.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003eand\u003c/code\u003e \u0026gt; \u003ccode\u003eand_sub_policy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#status_code\&amp;#34;\u003e\u003ccode\u003estatus_code\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based upon the status code.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003eand\u003c/code\u003e \u0026gt; \u003ccode\u003eand_sub_policy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#string_attribute\&amp;#34;\u003e\u003ccode\u003estring_attribute\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on string attributes (resource and record) value matches.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003eand\u003c/code\u003e \u0026gt; \u003ccode\u003eand_sub_policy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#trace_state\&amp;#34;\u003e\u003ccode\u003etrace_state\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on TraceState value matches.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#drop\&amp;#34;\u003e\u003ccode\u003edrop\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy drops traces based on multiple sub-policies.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003edrop\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#drop_sub_policy\&amp;#34;\u003e\u003ccode\u003edrop_sub_policy\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eA set of policies underneath a \u003ccode\u003edrop\u003c/code\u003e policy type.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003edrop\u003c/code\u003e \u0026gt; \u003ccode\u003edrop_sub_policy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#boolean_attribute\&amp;#34;\u003e\u003ccode\u003eboolean_attribute\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on a boolean attribute (resource and record).\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003edrop\u003c/code\u003e \u0026gt; \u003ccode\u003edrop_sub_policy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#latency\&amp;#34;\u003e\u003ccode\u003elatency\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on the duration of the trace.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003edrop\u003c/code\u003e \u0026gt; \u003ccode\u003edrop_sub_policy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#numeric_attribute\&amp;#34;\u003e\u003ccode\u003enumeric_attribute\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on number attributes (resource and record).\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003edrop\u003c/code\u003e \u0026gt; \u003ccode\u003edrop_sub_policy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#ottl_condition\&amp;#34;\u003e\u003ccode\u003eottl_condition\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on a given boolean OTTL condition (span and span event).\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003edrop\u003c/code\u003e \u0026gt; \u003ccode\u003edrop_sub_policy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#probabilistic\&amp;#34;\u003e\u003ccode\u003eprobabilistic\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples a percentage of traces.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003edrop\u003c/code\u003e \u0026gt; \u003ccode\u003edrop_sub_policy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#rate_limiting\&amp;#34;\u003e\u003ccode\u003erate_limiting\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on rate.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003edrop\u003c/code\u003e \u0026gt; \u003ccode\u003edrop_sub_policy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#bytes_limiting\&amp;#34;\u003e\u003ccode\u003ebytes_limiting\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on the rate of bytes per second.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003edrop\u003c/code\u003e \u0026gt; \u003ccode\u003edrop_sub_policy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#span_count\&amp;#34;\u003e\u003ccode\u003espan_count\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on the minimum number of spans within a batch.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003edrop\u003c/code\u003e \u0026gt; \u003ccode\u003edrop_sub_policy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#status_code\&amp;#34;\u003e\u003ccode\u003estatus_code\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based upon the status code.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003edrop\u003c/code\u003e \u0026gt; \u003ccode\u003edrop_sub_policy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#string_attribute\&amp;#34;\u003e\u003ccode\u003estring_attribute\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on string attributes (resource and record) value matches.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003edrop\u003c/code\u003e \u0026gt; \u003ccode\u003edrop_sub_policy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#trace_state\&amp;#34;\u003e\u003ccode\u003etrace_state\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on TraceState value matches.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#composite\&amp;#34;\u003e\u003ccode\u003ecomposite\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on a combination of above samplers, with ordering and rate allocation per sampler.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003ecomposite\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#composite_sub_policy\&amp;#34;\u003e\u003ccode\u003ecomposite_sub_policy\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eA set of policies underneath a \u003ccode\u003ecomposite\u003c/code\u003e policy type.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003ecomposite\u003c/code\u003e \u0026gt; \u003ccode\u003ecomposite_sub_policy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#boolean_attribute\&amp;#34;\u003e\u003ccode\u003eboolean_attribute\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on a boolean attribute (resource and record).\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003ecomposite\u003c/code\u003e \u0026gt; \u003ccode\u003ecomposite_sub_policy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#latency\&amp;#34;\u003e\u003ccode\u003elatency\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on the duration of the trace.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003ecomposite\u003c/code\u003e \u0026gt; \u003ccode\u003ecomposite_sub_policy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#numeric_attribute\&amp;#34;\u003e\u003ccode\u003enumeric_attribute\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on number attributes (resource and record).\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003ecomposite\u003c/code\u003e \u0026gt; \u003ccode\u003ecomposite_sub_policy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#ottl_condition\&amp;#34;\u003e\u003ccode\u003eottl_condition\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on a given boolean OTTL condition (span and span event).\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003ecomposite\u003c/code\u003e \u0026gt; \u003ccode\u003ecomposite_sub_policy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#probabilistic\&amp;#34;\u003e\u003ccode\u003eprobabilistic\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples a percentage of traces.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003ecomposite\u003c/code\u003e \u0026gt; \u003ccode\u003ecomposite_sub_policy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#rate_limiting\&amp;#34;\u003e\u003ccode\u003erate_limiting\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on rate.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003ecomposite\u003c/code\u003e \u0026gt; \u003ccode\u003ecomposite_sub_policy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#bytes_limiting\&amp;#34;\u003e\u003ccode\u003ebytes_limiting\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on the rate of bytes per second.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003ecomposite\u003c/code\u003e \u0026gt; \u003ccode\u003ecomposite_sub_policy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#span_count\&amp;#34;\u003e\u003ccode\u003espan_count\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on the minimum number of spans within a batch.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003ecomposite\u003c/code\u003e \u0026gt; \u003ccode\u003ecomposite_sub_policy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#status_code\&amp;#34;\u003e\u003ccode\u003estatus_code\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based upon the status code.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003ecomposite\u003c/code\u003e \u0026gt; \u003ccode\u003ecomposite_sub_policy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#string_attribute\&amp;#34;\u003e\u003ccode\u003estring_attribute\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on string attributes (resource and record) value matches.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003epolicy\u003c/code\u003e \u0026gt; \u003ccode\u003ecomposite\u003c/code\u003e \u0026gt; \u003ccode\u003ecomposite_sub_policy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#trace_state\&amp;#34;\u003e\u003ccode\u003etrace_state\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eThe policy samples based on TraceState value matches.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures where to send received telemetry data.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#policy&#34;&gt;&lt;code&gt;policy&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Policies used to make a sampling decision.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#boolean_attribute&#34;&gt;&lt;code&gt;boolean_attribute&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on a boolean attribute (resource and record).&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#latency&#34;&gt;&lt;code&gt;latency&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on the duration of the trace.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#numeric_attribute&#34;&gt;&lt;code&gt;numeric_attribute&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on the number attributes (resource and record).&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#ottl_condition&#34;&gt;&lt;code&gt;ottl_condition&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on a given boolean OTTL condition (span and span event).&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#probabilistic&#34;&gt;&lt;code&gt;probabilistic&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples a percentage of traces.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#rate_limiting&#34;&gt;&lt;code&gt;rate_limiting&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on rate.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#bytes_limiting&#34;&gt;&lt;code&gt;bytes_limiting&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on the rate of bytes per second.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#span_count&#34;&gt;&lt;code&gt;span_count&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on the minimum number of spans within a batch.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#status_code&#34;&gt;&lt;code&gt;status_code&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based upon the status code.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#string_attribute&#34;&gt;&lt;code&gt;string_attribute&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on string attributes (resource and record) value matches.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#trace_state&#34;&gt;&lt;code&gt;trace_state&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on TraceState value matches.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#not&#34;&gt;&lt;code&gt;not&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy inverts a nested policy decision.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;not&lt;/code&gt; &amp;gt; &lt;a href=&#34;#not_sub_policy&#34;&gt;&lt;code&gt;not_sub_policy&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;A nested policy for &lt;code&gt;not&lt;/code&gt; inversion.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;not&lt;/code&gt; &amp;gt; &lt;code&gt;not_sub_policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#boolean_attribute&#34;&gt;&lt;code&gt;boolean_attribute&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on a boolean attribute (resource and record).&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;not&lt;/code&gt; &amp;gt; &lt;code&gt;not_sub_policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#latency&#34;&gt;&lt;code&gt;latency&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on the duration of the trace.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;not&lt;/code&gt; &amp;gt; &lt;code&gt;not_sub_policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#numeric_attribute&#34;&gt;&lt;code&gt;numeric_attribute&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on number attributes (resource and record).&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;not&lt;/code&gt; &amp;gt; &lt;code&gt;not_sub_policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#ottl_condition&#34;&gt;&lt;code&gt;ottl_condition&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on a given boolean OTTL condition (span and span event).&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;not&lt;/code&gt; &amp;gt; &lt;code&gt;not_sub_policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#probabilistic&#34;&gt;&lt;code&gt;probabilistic&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples a percentage of traces.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;not&lt;/code&gt; &amp;gt; &lt;code&gt;not_sub_policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#rate_limiting&#34;&gt;&lt;code&gt;rate_limiting&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on rate.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;not&lt;/code&gt; &amp;gt; &lt;code&gt;not_sub_policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#bytes_limiting&#34;&gt;&lt;code&gt;bytes_limiting&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on the rate of bytes per second.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;not&lt;/code&gt; &amp;gt; &lt;code&gt;not_sub_policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#span_count&#34;&gt;&lt;code&gt;span_count&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on the minimum number of spans within a batch.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;not&lt;/code&gt; &amp;gt; &lt;code&gt;not_sub_policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#status_code&#34;&gt;&lt;code&gt;status_code&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based upon the status code.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;not&lt;/code&gt; &amp;gt; &lt;code&gt;not_sub_policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#string_attribute&#34;&gt;&lt;code&gt;string_attribute&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on string attributes (resource and record) value matches.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;not&lt;/code&gt; &amp;gt; &lt;code&gt;not_sub_policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#trace_state&#34;&gt;&lt;code&gt;trace_state&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on TraceState value matches.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#and&#34;&gt;&lt;code&gt;and&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on multiple policies, creates an &lt;code&gt;and&lt;/code&gt; policy.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;and&lt;/code&gt; &amp;gt; &lt;a href=&#34;#and_sub_policy&#34;&gt;&lt;code&gt;and_sub_policy&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;A set of policies underneath an &lt;code&gt;and&lt;/code&gt; policy type.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;and&lt;/code&gt; &amp;gt; &lt;code&gt;and_sub_policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#boolean_attribute&#34;&gt;&lt;code&gt;boolean_attribute&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on a boolean attribute (resource and record).&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;and&lt;/code&gt; &amp;gt; &lt;code&gt;and_sub_policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#latency&#34;&gt;&lt;code&gt;latency&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on the duration of the trace.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;and&lt;/code&gt; &amp;gt; &lt;code&gt;and_sub_policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#numeric_attribute&#34;&gt;&lt;code&gt;numeric_attribute&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on number attributes (resource and record).&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;and&lt;/code&gt; &amp;gt; &lt;code&gt;and_sub_policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#ottl_condition&#34;&gt;&lt;code&gt;ottl_condition&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on a given boolean OTTL condition (span and span event).&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;and&lt;/code&gt; &amp;gt; &lt;code&gt;and_sub_policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#probabilistic&#34;&gt;&lt;code&gt;probabilistic&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples a percentage of traces.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;and&lt;/code&gt; &amp;gt; &lt;code&gt;and_sub_policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#rate_limiting&#34;&gt;&lt;code&gt;rate_limiting&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on rate.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;and&lt;/code&gt; &amp;gt; &lt;code&gt;and_sub_policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#bytes_limiting&#34;&gt;&lt;code&gt;bytes_limiting&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on the rate of bytes per second.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;and&lt;/code&gt; &amp;gt; &lt;code&gt;and_sub_policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#span_count&#34;&gt;&lt;code&gt;span_count&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on the minimum number of spans within a batch.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;and&lt;/code&gt; &amp;gt; &lt;code&gt;and_sub_policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#status_code&#34;&gt;&lt;code&gt;status_code&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based upon the status code.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;and&lt;/code&gt; &amp;gt; &lt;code&gt;and_sub_policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#string_attribute&#34;&gt;&lt;code&gt;string_attribute&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on string attributes (resource and record) value matches.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;and&lt;/code&gt; &amp;gt; &lt;code&gt;and_sub_policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#trace_state&#34;&gt;&lt;code&gt;trace_state&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on TraceState value matches.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#drop&#34;&gt;&lt;code&gt;drop&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy drops traces based on multiple sub-policies.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;drop&lt;/code&gt; &amp;gt; &lt;a href=&#34;#drop_sub_policy&#34;&gt;&lt;code&gt;drop_sub_policy&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;A set of policies underneath a &lt;code&gt;drop&lt;/code&gt; policy type.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;drop&lt;/code&gt; &amp;gt; &lt;code&gt;drop_sub_policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#boolean_attribute&#34;&gt;&lt;code&gt;boolean_attribute&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on a boolean attribute (resource and record).&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;drop&lt;/code&gt; &amp;gt; &lt;code&gt;drop_sub_policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#latency&#34;&gt;&lt;code&gt;latency&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on the duration of the trace.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;drop&lt;/code&gt; &amp;gt; &lt;code&gt;drop_sub_policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#numeric_attribute&#34;&gt;&lt;code&gt;numeric_attribute&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on number attributes (resource and record).&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;drop&lt;/code&gt; &amp;gt; &lt;code&gt;drop_sub_policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#ottl_condition&#34;&gt;&lt;code&gt;ottl_condition&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on a given boolean OTTL condition (span and span event).&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;drop&lt;/code&gt; &amp;gt; &lt;code&gt;drop_sub_policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#probabilistic&#34;&gt;&lt;code&gt;probabilistic&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples a percentage of traces.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;drop&lt;/code&gt; &amp;gt; &lt;code&gt;drop_sub_policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#rate_limiting&#34;&gt;&lt;code&gt;rate_limiting&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on rate.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;drop&lt;/code&gt; &amp;gt; &lt;code&gt;drop_sub_policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#bytes_limiting&#34;&gt;&lt;code&gt;bytes_limiting&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on the rate of bytes per second.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;drop&lt;/code&gt; &amp;gt; &lt;code&gt;drop_sub_policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#span_count&#34;&gt;&lt;code&gt;span_count&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on the minimum number of spans within a batch.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;drop&lt;/code&gt; &amp;gt; &lt;code&gt;drop_sub_policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#status_code&#34;&gt;&lt;code&gt;status_code&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based upon the status code.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;drop&lt;/code&gt; &amp;gt; &lt;code&gt;drop_sub_policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#string_attribute&#34;&gt;&lt;code&gt;string_attribute&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on string attributes (resource and record) value matches.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;drop&lt;/code&gt; &amp;gt; &lt;code&gt;drop_sub_policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#trace_state&#34;&gt;&lt;code&gt;trace_state&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on TraceState value matches.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#composite&#34;&gt;&lt;code&gt;composite&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on a combination of above samplers, with ordering and rate allocation per sampler.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;composite&lt;/code&gt; &amp;gt; &lt;a href=&#34;#composite_sub_policy&#34;&gt;&lt;code&gt;composite_sub_policy&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;A set of policies underneath a &lt;code&gt;composite&lt;/code&gt; policy type.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;composite&lt;/code&gt; &amp;gt; &lt;code&gt;composite_sub_policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#boolean_attribute&#34;&gt;&lt;code&gt;boolean_attribute&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on a boolean attribute (resource and record).&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;composite&lt;/code&gt; &amp;gt; &lt;code&gt;composite_sub_policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#latency&#34;&gt;&lt;code&gt;latency&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on the duration of the trace.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;composite&lt;/code&gt; &amp;gt; &lt;code&gt;composite_sub_policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#numeric_attribute&#34;&gt;&lt;code&gt;numeric_attribute&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on number attributes (resource and record).&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;composite&lt;/code&gt; &amp;gt; &lt;code&gt;composite_sub_policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#ottl_condition&#34;&gt;&lt;code&gt;ottl_condition&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on a given boolean OTTL condition (span and span event).&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;composite&lt;/code&gt; &amp;gt; &lt;code&gt;composite_sub_policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#probabilistic&#34;&gt;&lt;code&gt;probabilistic&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples a percentage of traces.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;composite&lt;/code&gt; &amp;gt; &lt;code&gt;composite_sub_policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#rate_limiting&#34;&gt;&lt;code&gt;rate_limiting&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on rate.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;composite&lt;/code&gt; &amp;gt; &lt;code&gt;composite_sub_policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#bytes_limiting&#34;&gt;&lt;code&gt;bytes_limiting&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on the rate of bytes per second.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;composite&lt;/code&gt; &amp;gt; &lt;code&gt;composite_sub_policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#span_count&#34;&gt;&lt;code&gt;span_count&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on the minimum number of spans within a batch.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;composite&lt;/code&gt; &amp;gt; &lt;code&gt;composite_sub_policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#status_code&#34;&gt;&lt;code&gt;status_code&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based upon the status code.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;composite&lt;/code&gt; &amp;gt; &lt;code&gt;composite_sub_policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#string_attribute&#34;&gt;&lt;code&gt;string_attribute&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on string attributes (resource and record) value matches.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;policy&lt;/code&gt; &amp;gt; &lt;code&gt;composite&lt;/code&gt; &amp;gt; &lt;code&gt;composite_sub_policy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#trace_state&#34;&gt;&lt;code&gt;trace_state&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;The policy samples based on TraceState value matches.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;



&lt;div data-shared=&#34;reference/components/output-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;output&lt;/code&gt; block configures a set of components to forward resulting telemetry data to.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send logs to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send metrics to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;traces&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send traces to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You must specify the &lt;code&gt;output&lt;/code&gt; block, but all its arguments are optional.
By default, telemetry data is dropped.
Configure the &lt;code&gt;metrics&lt;/code&gt;, &lt;code&gt;logs&lt;/code&gt;, and &lt;code&gt;traces&lt;/code&gt; arguments accordingly to send telemetry data to other components.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;policy&#34;&gt;&lt;code&gt;policy&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;

&lt;p&gt;The &lt;code&gt;policy&lt;/code&gt; block configures a sampling policy used by the component. At least one &lt;code&gt;policy&lt;/code&gt; block is required.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The custom name given to the policy.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;type&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The valid policy type for this policy.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;Supported &lt;code&gt;type&lt;/code&gt; values include:
&lt;code&gt;always_sample&lt;/code&gt;, &lt;code&gt;latency&lt;/code&gt;, &lt;code&gt;numeric_attribute&lt;/code&gt;, &lt;code&gt;probabilistic&lt;/code&gt;, &lt;code&gt;status_code&lt;/code&gt;, &lt;code&gt;string_attribute&lt;/code&gt;,
&lt;code&gt;rate_limiting&lt;/code&gt;, &lt;code&gt;bytes_limiting&lt;/code&gt;, &lt;code&gt;span_count&lt;/code&gt;, &lt;code&gt;trace_state&lt;/code&gt;, &lt;code&gt;boolean_attribute&lt;/code&gt;, &lt;code&gt;ottl_condition&lt;/code&gt;,
&lt;code&gt;trace_flags&lt;/code&gt;, &lt;code&gt;and&lt;/code&gt;, &lt;code&gt;not&lt;/code&gt;, &lt;code&gt;drop&lt;/code&gt;, and &lt;code&gt;composite&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Each policy results in a decision, and the processor evaluates them to make a final decision:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;When there&amp;rsquo;s a &amp;ldquo;drop&amp;rdquo; decision, the trace isn&amp;rsquo;t sampled.&lt;/li&gt;
&lt;li&gt;When there&amp;rsquo;s an &amp;ldquo;inverted not sample&amp;rdquo; decision, the trace isn&amp;rsquo;t sampled. &lt;strong&gt;&lt;em&gt;Deprecated&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;When there&amp;rsquo;s a &amp;ldquo;sample&amp;rdquo; decision, the trace is sampled.&lt;/li&gt;
&lt;li&gt;When there&amp;rsquo;s an &amp;ldquo;inverted sample&amp;rdquo; decision and no &amp;ldquo;not sample&amp;rdquo; decisions, the trace is sampled. &lt;strong&gt;&lt;em&gt;Deprecated&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;In all other cases, the trace isn&amp;rsquo;t sampled.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;An &amp;ldquo;inverted&amp;rdquo; decision is the one made based on the &lt;code&gt;invert_match&lt;/code&gt; attribute, such as the one from the string, numeric or boolean tag policy.
There is an exception to this if the policy is within an and or composite policy, the resulting decision will be either sampled or not sampled.
The &amp;ldquo;inverted&amp;rdquo; decisions have been deprecated, please make use of &lt;code&gt;drop&lt;/code&gt; policy to explicitly not sample select traces.&lt;/p&gt;
&lt;h3 id=&#34;boolean_attribute&#34;&gt;&lt;code&gt;boolean_attribute&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;boolean_attribute&lt;/code&gt; block configures a policy of type &lt;code&gt;boolean_attribute&lt;/code&gt;.
The policy samples based on a boolean attribute (resource and record).&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Attribute key to match against.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;value&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The boolean value, &lt;code&gt;true&lt;/code&gt; or &lt;code&gt;false&lt;/code&gt;, to use when matching against attribute values.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;invert_match&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Indicates that values must not match against attribute values.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;latency&#34;&gt;&lt;code&gt;latency&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;latency&lt;/code&gt; block configures a policy of type &lt;code&gt;latency&lt;/code&gt;.
The policy samples based on the duration of the trace.
The duration is determined by looking at the earliest start time and latest end time, without taking into consideration what happened in between.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;threshold_ms&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Lower latency threshold for sampling, in milliseconds.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;upper_threshold_ms&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Upper latency threshold for sampling, in milliseconds.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;For a trace to be sampled, its latency should be greater than &lt;code&gt;threshold_ms&lt;/code&gt; and lower than or equal to &lt;code&gt;upper_threshold_ms&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;An &lt;code&gt;upper_threshold_ms&lt;/code&gt; of &lt;code&gt;0&lt;/code&gt; results in a policy which samples anything greater than &lt;code&gt;threshold_ms&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;numeric_attribute&#34;&gt;&lt;code&gt;numeric_attribute&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;numeric_attribute&lt;/code&gt; block configures a policy of type &lt;code&gt;numeric_attribute&lt;/code&gt;.
The policy samples based on number attributes (resource and record).&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Tag that the filter is matched against.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;min_value&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The minimum value of the attribute to be considered a match.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_value&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The maximum value of the attribute to be considered a match.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;invert_match&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Indicates that values must not match against attribute values.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;ottl_condition&#34;&gt;&lt;code&gt;ottl_condition&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;ottl_condition&lt;/code&gt; block configures a policy of type &lt;code&gt;ottl_condition&lt;/code&gt;.
The policy samples based on a given boolean 
    &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/pkg/ottl&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;OTTL&lt;/a&gt; condition (span and span event).&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;error_mode&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Error handling if OTTL conditions fail to evaluate.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;span&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;OTTL conditions for spans.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;spanevent&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;OTTL conditions for span events.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The supported values for &lt;code&gt;error_mode&lt;/code&gt; are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ignore&lt;/code&gt;: Ignore errors returned by conditions, log them, and continue on to the next condition. This is the recommended mode.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;silent&lt;/code&gt;: Ignore errors returned by conditions, don&amp;rsquo;t log them, and continue on to the next condition.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;propagate&lt;/code&gt;: Return the error up the pipeline. This results in the payload being dropped from Alloy.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;At least one of &lt;code&gt;span&lt;/code&gt; or &lt;code&gt;spanevent&lt;/code&gt; should be specified. Both &lt;code&gt;span&lt;/code&gt; and &lt;code&gt;spanevent&lt;/code&gt; can also be specified.&lt;/p&gt;
&lt;h3 id=&#34;probabilistic&#34;&gt;&lt;code&gt;probabilistic&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;probabilistic&lt;/code&gt; block configures a policy of type &lt;code&gt;probabilistic&lt;/code&gt;.
The policy samples a percentage of traces.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sampling_percentage&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The percentage rate at which traces are sampled.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;hash_salt&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;See below.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;Use &lt;code&gt;hash_salt&lt;/code&gt; to configure the hashing salts.
This is important in scenarios where multiple layers of collectors have different sampling rates.
If multiple collectors use the same salt with different sampling rates, passing one layer may pass the other even if the collectors have different sampling rates.
Configuring different salts avoids that.&lt;/p&gt;
&lt;h3 id=&#34;rate_limiting&#34;&gt;&lt;code&gt;rate_limiting&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;rate_limiting&lt;/code&gt; block configures a policy of type &lt;code&gt;rate_limiting&lt;/code&gt;.
The policy samples based on rate.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;spans_per_second&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Sets the maximum number of spans that can be processed each second.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;bytes_limiting&#34;&gt;&lt;code&gt;bytes_limiting&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;bytes_limiting&lt;/code&gt; block configures a policy of type &lt;code&gt;bytes_limiting&lt;/code&gt;.
The policy samples based on the rate of bytes per second using a token bucket algorithm.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;bytes_per_second&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Sets the sustained byte throughput limit.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;burst_capacity&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Sets the maximum burst size in bytes. If omitted, it defaults to &lt;code&gt;2 * bytes_per_second&lt;/code&gt; in the upstream policy.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;span_count&#34;&gt;&lt;code&gt;span_count&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;span_count&lt;/code&gt; block configures a policy of type &lt;code&gt;span_count&lt;/code&gt;.
The policy samples based on the minimum number of spans within a batch.
If all traces within the batch have fewer spans than the threshold, the batch isn&amp;rsquo;t sampled.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;min_spans&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Minimum number of spans in a trace.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_spans&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum number of spans in a trace.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;Set &lt;code&gt;max_spans&lt;/code&gt; to &lt;code&gt;0&lt;/code&gt;, if you don&amp;rsquo;t want to limit the policy samples based on the maximum number of spans in a trace.&lt;/p&gt;
&lt;h3 id=&#34;status_code&#34;&gt;&lt;code&gt;status_code&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;status_code&lt;/code&gt; block configures a policy of type &lt;code&gt;status_code&lt;/code&gt;.
The policy samples based upon the status code.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;status_codes&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Holds the configurable settings to create a status code filter sampling policy evaluator.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;status_codes&lt;/code&gt; values must be &lt;code&gt;&amp;quot;OK&amp;quot;&lt;/code&gt;, &lt;code&gt;&amp;quot;ERROR&amp;quot;&lt;/code&gt;, or &lt;code&gt;&amp;quot;UNSET&amp;quot;&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;string_attribute&#34;&gt;&lt;code&gt;string_attribute&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;string_attribute&lt;/code&gt; block configures a policy of type &lt;code&gt;string_attribute&lt;/code&gt;.
The policy samples based on string attributes (resource and record) value matches.
Both exact and regular expression value matches are supported.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Tag that the filter is matched against.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;values&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Set of values or regular expressions to use when matching against attribute values.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled_regex_matching&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Determines whether to match attribute values by regular expression string.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cache_max_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The maximum number of attribute entries of Least Recently Used (LRU) Cache that stores the matched result from the regular expressions defined in &lt;code&gt;values.&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;invert_match&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Indicates that values or regular expressions must not match against attribute values.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;trace_state&#34;&gt;&lt;code&gt;trace_state&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;trace_state&lt;/code&gt; block configures a policy of type &lt;code&gt;trace_state&lt;/code&gt;.
The policy samples based on TraceState value matches.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Tag that the filter is matched against.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;values&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Set of values to use when matching against &lt;code&gt;trace_state&lt;/code&gt; values.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;not&#34;&gt;&lt;code&gt;not&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;not&lt;/code&gt; block configures a policy of type &lt;code&gt;not&lt;/code&gt;.
This policy inverts the decision of a nested &lt;code&gt;not_sub_policy&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;not_sub_policy&#34;&gt;&lt;code&gt;not_sub_policy&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;not_sub_policy&lt;/code&gt; block configures a sampling policy used by the &lt;code&gt;not&lt;/code&gt; block.
Exactly one &lt;code&gt;not_sub_policy&lt;/code&gt; block is required inside a &lt;code&gt;not&lt;/code&gt; block.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The custom name given to the policy.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;type&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The valid policy type for this policy.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;and&#34;&gt;&lt;code&gt;and&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;and&lt;/code&gt; block configures a policy of type &lt;code&gt;and&lt;/code&gt;.
The policy samples based on multiple policies by creating an &lt;code&gt;and&lt;/code&gt; policy.&lt;/p&gt;
&lt;h3 id=&#34;and_sub_policy&#34;&gt;&lt;code&gt;and_sub_policy&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;and_sub_policy&lt;/code&gt; block configures a sampling policy used by the &lt;code&gt;and&lt;/code&gt; block.
At least one &lt;code&gt;and_sub_policy&lt;/code&gt; block is required inside an &lt;code&gt;and&lt;/code&gt; block.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The custom name given to the policy.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;type&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The valid policy type for this policy.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;drop&#34;&gt;&lt;code&gt;drop&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;drop&lt;/code&gt; block configures a policy of type &lt;code&gt;drop&lt;/code&gt;.
This policy drops traces when all &lt;code&gt;drop_sub_policy&lt;/code&gt; blocks match.&lt;/p&gt;
&lt;h3 id=&#34;drop_sub_policy&#34;&gt;&lt;code&gt;drop_sub_policy&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;drop_sub_policy&lt;/code&gt; block configures a sampling policy used by the &lt;code&gt;drop&lt;/code&gt; block.
At least one &lt;code&gt;drop_sub_policy&lt;/code&gt; block is required inside a &lt;code&gt;drop&lt;/code&gt; block.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The custom name given to the policy.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;type&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The valid policy type for this policy.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;composite&#34;&gt;&lt;code&gt;composite&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;composite&lt;/code&gt; block configures a policy of type &lt;code&gt;composite&lt;/code&gt;.
This policy samples based on a combination of the above samplers, with ordering and rate allocation per sampler.
Rate allocation allocates certain percentages of spans per policy order.
For example, if &lt;code&gt;max_total_spans_per_second&lt;/code&gt; is set to 100, then &lt;code&gt;rate_allocation&lt;/code&gt; is set as follows:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;test-composite-policy-1 = 50% of &lt;code&gt;max_total_spans_per_second&lt;/code&gt; = 50 &lt;code&gt;spans_per_second&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;test-composite-policy-2 = 25% of &lt;code&gt;max_total_spans_per_second&lt;/code&gt; = 25 &lt;code&gt;spans_per_second&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;To ensure remaining capacity is filled, use &lt;code&gt;always_sample&lt;/code&gt; as one of the policies.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;composite_sub_policy&#34;&gt;&lt;code&gt;composite_sub_policy&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;composite_sub_policy&lt;/code&gt; block configures a sampling policy used by the &lt;code&gt;composite&lt;/code&gt; block. At least one&lt;code&gt;composite_sub_policy&lt;/code&gt; block is required inside a &lt;code&gt;composite&lt;/code&gt; block.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The custom name given to the policy.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;type&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The valid policy type for this policy.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;The following fields are exported and can be referenced by other components:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&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;code&gt;input&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A value that other components can use to send telemetry data to.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;input&lt;/code&gt; accepts &lt;code&gt;otelcol.Consumer&lt;/code&gt; data for any telemetry signal (metrics, logs, or traces).&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.tail_sampling&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.tail_sampling&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;p&gt;This example batches trace data from Alloy before sending it to [otelcol.exporter.otlphttp][] for further processing.
This example shows an impractical number of policies for the purpose of demonstrating how to set up each type.&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;tracing {
  sampling_fraction = 1
  write_to          = [otelcol.processor.tail_sampling.default.input]
}

otelcol.processor.tail_sampling &amp;#34;default&amp;#34; {
  decision_cache = {
    sampled_cache_size     = 100000,
    non_sampled_cache_size = 100000,
    }
  decision_wait               = &amp;#34;10s&amp;#34;
  num_traces                  = 100
  expected_new_traces_per_sec = 10
  sample_on_first_match       = true
  drop_pending_traces_on_shutdown = true

  policy {
    name = &amp;#34;test-policy-1&amp;#34;
    type = &amp;#34;always_sample&amp;#34;
  }

  policy {
    name = &amp;#34;test-policy-2&amp;#34;
    type = &amp;#34;latency&amp;#34;

    latency {
      threshold_ms = 5000
    }
  }

  policy {
    name = &amp;#34;test-policy-3&amp;#34;
    type = &amp;#34;numeric_attribute&amp;#34;

    numeric_attribute {
      key       = &amp;#34;key1&amp;#34;
      min_value = 50
      max_value = 100
    }
  }

  policy {
    name = &amp;#34;test-policy-4&amp;#34;
    type = &amp;#34;probabilistic&amp;#34;

    probabilistic {
      sampling_percentage = 10
    }
  }

  policy {
    name = &amp;#34;test-policy-5&amp;#34;
    type = &amp;#34;status_code&amp;#34;

    status_code {
      status_codes = [&amp;#34;ERROR&amp;#34;, &amp;#34;UNSET&amp;#34;]
    }
  }

  policy {
    name = &amp;#34;test-policy-6&amp;#34;
    type = &amp;#34;string_attribute&amp;#34;

    string_attribute {
      key    = &amp;#34;key2&amp;#34;
      values = [&amp;#34;value1&amp;#34;, &amp;#34;value2&amp;#34;]
    }
  }

  policy {
    name = &amp;#34;test-policy-7&amp;#34;
    type = &amp;#34;string_attribute&amp;#34;

    string_attribute {
      key                    = &amp;#34;key2&amp;#34;
      values                 = [&amp;#34;value1&amp;#34;, &amp;#34;val*&amp;#34;]
      enabled_regex_matching = true
      cache_max_size         = 10
    }
  }

  policy {
    name = &amp;#34;test-policy-8&amp;#34;
    type = &amp;#34;rate_limiting&amp;#34;

    rate_limiting {
      spans_per_second = 35
    }
  }

  policy {
    name = &amp;#34;test-policy-9&amp;#34;
    type = &amp;#34;bytes_limiting&amp;#34;

    bytes_limiting {
      bytes_per_second = 2048
      burst_capacity   = 4096
    }
  }

  policy {
    name = &amp;#34;test-policy-10&amp;#34;
    type = &amp;#34;string_attribute&amp;#34;

    string_attribute {
      key                    = &amp;#34;http.url&amp;#34;
      values                 = [&amp;#34;/health&amp;#34;, &amp;#34;/metrics&amp;#34;]
      enabled_regex_matching = true
      invert_match           = true
    }
  }

  policy {
    name = &amp;#34;test-policy-11&amp;#34;
    type = &amp;#34;span_count&amp;#34;

    span_count {
      min_spans = 2
    }
  }

  policy {
    name = &amp;#34;test-policy-12&amp;#34;
    type = &amp;#34;trace_state&amp;#34;

    trace_state {
      key    = &amp;#34;key3&amp;#34;
      values = [&amp;#34;value1&amp;#34;, &amp;#34;value2&amp;#34;]
    }
  }

  policy {
    name = &amp;#34;test-policy-13&amp;#34;
    type = &amp;#34;ottl_condition&amp;#34;
    ottl_condition {
      error_mode = &amp;#34;ignore&amp;#34;
      span = [
        &amp;#34;attributes[\&amp;#34;test_attr_key_1\&amp;#34;] == \&amp;#34;test_attr_val_1\&amp;#34;&amp;#34;,
        &amp;#34;attributes[\&amp;#34;test_attr_key_2\&amp;#34;] != \&amp;#34;test_attr_val_1\&amp;#34;&amp;#34;,
      ]
      spanevent = [
        &amp;#34;name != \&amp;#34;test_span_event_name\&amp;#34;&amp;#34;,
        &amp;#34;attributes[\&amp;#34;test_event_attr_key_2\&amp;#34;] != \&amp;#34;test_event_attr_val_1\&amp;#34;&amp;#34;,
      ]
    }
  }

  policy {
    name = &amp;#34;drop-policy-1&amp;#34;
    type = &amp;#34;drop&amp;#34;

    drop {
      drop_sub_policy {
        name = &amp;#34;test-drop-policy-1&amp;#34;
        type = &amp;#34;string_attribute&amp;#34;

        string_attribute {
          key                    = &amp;#34;url.path&amp;#34;
          values                 = [&amp;#34;/health&amp;#34;, &amp;#34;/metrics&amp;#34;]
          enabled_regex_matching = true
        }
      }
    }
  }

  policy {
    name = &amp;#34;and-policy-1&amp;#34;
    type = &amp;#34;and&amp;#34;

    and {
      and_sub_policy {
        name = &amp;#34;test-and-policy-1&amp;#34;
        type = &amp;#34;numeric_attribute&amp;#34;

        numeric_attribute {
          key       = &amp;#34;key1&amp;#34;
          min_value = 50
          max_value = 100
        }
      }

      and_sub_policy {
        name = &amp;#34;test-and-policy-2&amp;#34;
        type = &amp;#34;string_attribute&amp;#34;

        string_attribute {
          key    = &amp;#34;key1&amp;#34;
          values = [&amp;#34;value1&amp;#34;, &amp;#34;value2&amp;#34;]
        }
      }
    }
  }

  policy {
    name = &amp;#34;composite-policy-1&amp;#34;
    type = &amp;#34;composite&amp;#34;

    composite {
      max_total_spans_per_second = 1000
      policy_order               = [&amp;#34;test-composite-policy-1&amp;#34;, &amp;#34;test-composite-policy-2&amp;#34;, &amp;#34;test-composite-policy-3&amp;#34;]

      composite_sub_policy {
        name = &amp;#34;test-composite-policy-1&amp;#34;
        type = &amp;#34;numeric_attribute&amp;#34;

        numeric_attribute {
          key       = &amp;#34;key1&amp;#34;
          min_value = 50
          max_value = 100
        }
      }

      composite_sub_policy {
        name = &amp;#34;test-composite-policy-2&amp;#34;
        type = &amp;#34;string_attribute&amp;#34;

        string_attribute {
          key    = &amp;#34;key1&amp;#34;
          values = [&amp;#34;value1&amp;#34;, &amp;#34;value2&amp;#34;]
        }
      }

      composite_sub_policy {
        name = &amp;#34;test-composite-policy-3&amp;#34;
        type = &amp;#34;always_sample&amp;#34;
      }

      rate_allocation {
        policy  = &amp;#34;test-composite-policy-1&amp;#34;
        percent = 50
      }

      rate_allocation {
        policy  = &amp;#34;test-composite-policy-2&amp;#34;
        percent = 50
      }
    }
  }

  output {
    traces = [otelcol.exporter.otlphttp.production.input]
  }
}

otelcol.exporter.otlphttp &amp;#34;production&amp;#34; {
  client {
    endpoint = sys.env(&amp;#34;&amp;lt;OTLP_SERVER_ENDPOINT&amp;gt;&amp;#34;)
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.tail_sampling&lt;/code&gt; can accept arguments from the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that export &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-exporters&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.tail_sampling&lt;/code&gt; has exports that can be consumed by the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that consume &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-consumers&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolprocessortail_sampling">&lt;code>otelcol.processor.tail_sampling&lt;/code>&lt;/h1>
&lt;p>&lt;code>otelcol.processor.tail_sampling&lt;/code> samples traces based on a set of defined policies.
All spans for a given trace &lt;em>must&lt;/em> be received by the same collector instance for effective sampling decisions.&lt;/p></description></item><item><title>otelcol.processor.transform</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.processor.transform/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.processor.transform/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolprocessortransform&#34;&gt;&lt;code&gt;otelcol.processor.transform&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.transform&lt;/code&gt; accepts telemetry data from other &lt;code&gt;otelcol&lt;/code&gt; components and modifies it using the &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.147.0/pkg/ottl/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;OpenTelemetry Transformation Language (OTTL)&lt;/a&gt;.
OTTL statements consist of &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.147.0/pkg/ottl/ottlfuncs/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;OTTL functions&lt;/a&gt;, which act on paths.
A path is a reference to a telemetry data such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Resource attributes.&lt;/li&gt;
&lt;li&gt;Instrumentation scope name.&lt;/li&gt;
&lt;li&gt;Span attributes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In addition to the &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.147.0/pkg/ottl/ottlfuncs/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;standard OTTL functions&lt;/a&gt;, the processor defines its own functions to help with transformations specific to this processor.&lt;/p&gt;
&lt;p&gt;Metrics-only functions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/processor/transformprocessor#convert_sum_to_gauge&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;convert_sum_to_gauge&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/processor/transformprocessor#convert_gauge_to_sum&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;convert_gauge_to_sum&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/processor/transformprocessor#extract_count_metric&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;extract_count_metric&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/processor/transformprocessor#extract_sum_metric&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;extract_sum_metric&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/processor/transformprocessor#convert_summary_count_val_to_sum&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;convert_summary_count_val_to_sum&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/processor/transformprocessor#convert_summary_quantile_val_to_gauge&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;convert_summary_quantile_val_to_gauge&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/processor/transformprocessor#convert_summary_sum_val_to_sum&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;convert_summary_sum_val_to_sum&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/processor/transformprocessor#copy_metric&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;copy_metric&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/processor/transformprocessor#scale_metric&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;scale_metric&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/processor/transformprocessor#aggregate_on_attributes&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;aggregate_on_attributes&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/processor/transformprocessor#convert_exponential_histogram_to_histogram&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;convert_exponential_histogram_to_histogram&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/processor/transformprocessor#aggregate_on_attribute_value&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;aggregate_on_attribute_value&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/processor/transformprocessor#merge_histogram_buckets&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;merge_histogram_buckets&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Traces-only functions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/processor/transformprocessor#set_semconv_span_name&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;set_semconv_span_name&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.147.0/pkg/ottl/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;OTTL&lt;/a&gt; statements can also contain constructs such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/pkg/ottl#booleans&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Booleans&lt;/a&gt;:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;not true&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;not IsMatch(name, &amp;quot;http_.*&amp;quot;)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/pkg/ottl#boolean-expressions&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Boolean Expressions&lt;/a&gt; consisting of a &lt;code&gt;where&lt;/code&gt; followed by one or more boolean values:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;set(attributes[&amp;quot;whose_fault&amp;quot;], &amp;quot;ours&amp;quot;) where attributes[&amp;quot;http.status&amp;quot;] == 500&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;set(attributes[&amp;quot;whose_fault&amp;quot;], &amp;quot;theirs&amp;quot;) where attributes[&amp;quot;http.status&amp;quot;] == 400 or attributes[&amp;quot;http.status&amp;quot;] == 404&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/pkg/ottl#math-expressions&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Math expressions&lt;/a&gt;:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;1 &#43; 1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;end_time_unix_nano - start_time_unix_nano&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sum([1, 2, 3, 4]) &#43; (10 / 1) - 1&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;There are two ways of inputting strings in Alloy configuration files:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Using quotation marks (&lt;a href=&#34;../../../../get-started/configuration-syntax/expressions/types_and_values/#strings&#34;&gt;normal Alloy syntax strings&lt;/a&gt;).
Characters such as &lt;code&gt;\&lt;/code&gt; and &lt;code&gt;&amp;quot;&lt;/code&gt; must be escaped by preceding them with a &lt;code&gt;\&lt;/code&gt; character.&lt;/li&gt;
&lt;li&gt;Using backticks (&lt;a href=&#34;../../../../get-started/configuration-syntax/expressions/types_and_values/#raw-strings&#34;&gt;raw Alloy syntax strings&lt;/a&gt;).
No characters must be escaped.
However, it&amp;rsquo;s not possible to have backticks inside the string.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For example, the OTTL statement &lt;code&gt;set(description, &amp;quot;Sum&amp;quot;) where type == &amp;quot;Sum&amp;quot;&lt;/code&gt; can be written as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A normal Alloy syntax string: &lt;code&gt;&amp;quot;set(description, \&amp;quot;Sum\&amp;quot;) where type == \&amp;quot;Sum\&amp;quot;&amp;quot;&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;A raw Alloy syntax string: &lt;code&gt;`set(description, &amp;quot;Sum&amp;quot;) where type == &amp;quot;Sum&amp;quot;`&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Raw strings are generally more convenient for writing OTTL statements.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;



&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.processor.transform&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/processor/transformprocessor&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;transform&lt;/code&gt;&lt;/a&gt; processor.
If necessary, bug reports or feature requests will be redirected to the upstream repository.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.processor.transform&lt;/code&gt; components by giving them different labels.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-warning&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Warning&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.processor.transform&lt;/code&gt; allows you to modify all aspects of your telemetry.
Some specific risks are given below, but this isn&amp;rsquo;t an exhaustive list.
It&amp;rsquo;s important to understand your data before using this processor.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector/blob/v0.147.0/docs/standard-warnings.md#unsound-transformations&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Unsound Transformations&lt;/a&gt;: Transformations between metric data types aren&amp;rsquo;t defined in the &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-specification/blob/main//specification/metrics/data-model.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;metrics data model&lt;/a&gt;.
To use these functions, you must understand the incoming data and know that it can be meaningfully converted to a new metric data type or can be used to create new metrics.
&lt;ul&gt;
&lt;li&gt;Although OTTL allows you to use the &lt;code&gt;set&lt;/code&gt; function with &lt;code&gt;metric.data_type&lt;/code&gt;, its implementation in the transform processor is a &lt;a href=&#34;https://en.wikipedia.org/wiki/NOP_%28code%29&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;no-op&lt;/a&gt;.
To modify a data type, you must use a specific function such as &lt;code&gt;convert_gauge_to_sum&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector/blob/v0.147.0/docs/standard-warnings.md#identity-conflict&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Identity Conflict&lt;/a&gt;: Transformation of metrics can potentially affect a metric&amp;rsquo;s identity, leading to an Identity Crisis.
Be especially cautious when transforming a metric name and when reducing or changing existing attributes.
Adding new attributes is safe.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector/blob/v0.147.0/docs/standard-warnings.md#orphaned-telemetry&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Orphaned Telemetry&lt;/a&gt;: The processor allows you to modify &lt;code&gt;span_id&lt;/code&gt;, &lt;code&gt;trace_id&lt;/code&gt;, and &lt;code&gt;parent_span_id&lt;/code&gt; for traces and &lt;code&gt;span_id&lt;/code&gt;, and &lt;code&gt;trace_id&lt;/code&gt; logs.
Modifying these fields could lead to orphaned spans or logs.&lt;/li&gt;
&lt;/ul&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.processor.transform &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  output {
    metrics = [...]
    logs    = [...]
    traces  = [...]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following argument with &lt;code&gt;otelcol.processor.transform&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;error_mode&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How to react to errors if they occur while processing a statement.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;propagate&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The supported values for &lt;code&gt;error_mode&lt;/code&gt; are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ignore&lt;/code&gt;: Ignore errors returned by conditions, log them, and continue on to the next condition.
This is the recommended mode.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;silent&lt;/code&gt;: Ignore errors returned by conditions, don&amp;rsquo;t log them, and continue on to the next condition.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;propagate&lt;/code&gt;: Return the error up the pipeline.
This will result in the payload being dropped from Alloy.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.processor.transform&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 6;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#output\&amp;#34;\u003e\u003ccode\u003eoutput\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures where to send received telemetry data.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#log_statements\&amp;#34;\u003e\u003ccode\u003elog_statements\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eStatements which transform logs.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#metric_statements\&amp;#34;\u003e\u003ccode\u003emetric_statements\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eStatements which transform metrics.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#statements\&amp;#34;\u003e\u003ccode\u003estatements\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eStatements which transform logs, metrics, and traces without specifying a context explicitly.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#trace_statements\&amp;#34;\u003e\u003ccode\u003etrace_statements\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eStatements which transform traces.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures where to send received telemetry data.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#log_statements&#34;&gt;&lt;code&gt;log_statements&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Statements which transform logs.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#metric_statements&#34;&gt;&lt;code&gt;metric_statements&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Statements which transform metrics.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#statements&#34;&gt;&lt;code&gt;statements&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Statements which transform logs, metrics, and traces without specifying a context explicitly.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#trace_statements&#34;&gt;&lt;code&gt;trace_statements&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Statements which transform traces.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;



&lt;div data-shared=&#34;reference/components/output-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;output&lt;/code&gt; block configures a set of components to forward resulting telemetry data to.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send logs to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send metrics to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;traces&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send traces to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You must specify the &lt;code&gt;output&lt;/code&gt; block, but all its arguments are optional.
By default, telemetry data is dropped.
Configure the &lt;code&gt;metrics&lt;/code&gt;, &lt;code&gt;logs&lt;/code&gt;, and &lt;code&gt;traces&lt;/code&gt; arguments accordingly to send telemetry data to other components.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h3 id=&#34;log_statements&#34;&gt;&lt;code&gt;log_statements&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;log_statements&lt;/code&gt; block specifies statements which transform log telemetry signals.
Multiple &lt;code&gt;log_statements&lt;/code&gt; blocks can be specified.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;context&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;OTTL Context to use when interpreting the associated statements.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;statements&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of OTTL statements.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;conditions&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Conditions for the statements to be executed.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;error_mode&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How to react to errors if they occur while processing a statement.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The supported values for &lt;code&gt;context&lt;/code&gt; are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;resource&lt;/code&gt;: Use when interacting only with OTLP resources (for example, resource attributes).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;scope&lt;/code&gt;: Use when interacting only with OTLP instrumentation scope (for example, the name of the instrumentation scope).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;log&lt;/code&gt;: Use when interacting only with OTLP logs.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Refer to [OTTL Context][] for more information about how to use contexts.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;conditions&lt;/code&gt; is a list of multiple &lt;code&gt;where&lt;/code&gt; clauses which will be processed as global conditions for the accompanying set of statements.
The conditions are ORed together, which means only one condition needs to evaluate to true in order for the statements
(including their individual &lt;code&gt;where&lt;/code&gt; clauses) to be executed.&lt;/p&gt;
&lt;p&gt;The allowed values for &lt;code&gt;error_mode&lt;/code&gt; are the same as the ones documented in the &lt;a href=&#34;#arguments&#34;&gt;Arguments&lt;/a&gt; section.
If &lt;code&gt;error_mode&lt;/code&gt; is not specified in &lt;code&gt;log_statements&lt;/code&gt;, the top-level &lt;code&gt;error_mode&lt;/code&gt; is applied.&lt;/p&gt;
&lt;h3 id=&#34;metric_statements&#34;&gt;&lt;code&gt;metric_statements&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;metric_statements&lt;/code&gt; block specifies statements which transform metric telemetry signals.
Multiple &lt;code&gt;metric_statements&lt;/code&gt; blocks can be specified.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;context&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;OTTL Context to use when interpreting the associated statements.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;statements&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of OTTL statements.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;conditions&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Conditions for the statements to be executed.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;error_mode&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How to react to errors if they occur while processing a statement.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The supported values for &lt;code&gt;context&lt;/code&gt; are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;resource&lt;/code&gt;: Use when interacting only with OTLP resources (for example, resource attributes).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;scope&lt;/code&gt;: Use when interacting only with OTLP instrumentation scope (for example, the name of the instrumentation scope).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;metric&lt;/code&gt;: Use when interacting only with individual OTLP metrics.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;datapoint&lt;/code&gt;: Use when interacting only with individual OTLP metric data points.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Refer to [OTTL Context][] for more information about how to use contexts.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;conditions&lt;/code&gt; is a list of multiple &lt;code&gt;where&lt;/code&gt; clauses which will be processed as global conditions for the accompanying set of statements.
The conditions are ORed together, which means only one condition needs to evaluate to true in order for the statements
(including their individual &lt;code&gt;where&lt;/code&gt; clauses) to be executed.&lt;/p&gt;
&lt;p&gt;The allowed values for &lt;code&gt;error_mode&lt;/code&gt; are the same as the ones documented in the &lt;a href=&#34;#arguments&#34;&gt;Arguments&lt;/a&gt; section.
If &lt;code&gt;error_mode&lt;/code&gt; is not specified in &lt;code&gt;metric_statements&lt;/code&gt;, the top-level &lt;code&gt;error_mode&lt;/code&gt; is applied.&lt;/p&gt;
&lt;h3 id=&#34;statements&#34;&gt;&lt;code&gt;statements&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;statements&lt;/code&gt; block specifies statements which transform logs, metrics, or traces telemetry signals.
There is no &lt;code&gt;context&lt;/code&gt; configuration argument - the context will be inferred from the statement.
This inference is based on the path names, functions, and enums present in the statements.
At least one context must be capable of parsing all statements.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;statements&lt;/code&gt; block can replace the &lt;code&gt;log_statements&lt;/code&gt;, &lt;code&gt;metric_statements&lt;/code&gt;, and &lt;code&gt;trace_statements&lt;/code&gt; blocks.
It can also be used alongside them.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;log&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of OTTL statements which transform logs.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of OTTL statements which transform metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;trace&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of OTTL statements which transform traces.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The inference happens automatically because path names are prefixed with the context name.
In the following example, the inferred context value is &lt;code&gt;datapoint&lt;/code&gt;, as it&amp;rsquo;s the only context that supports parsing both datapoint and metric paths:&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;statements {
    metric = [`set(metric.description, &amp;#34;test passed&amp;#34;) where datapoint.attributes[&amp;#34;test&amp;#34;] == &amp;#34;pass&amp;#34;`]
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;In the following example, the inferred context is &lt;code&gt;metric&lt;/code&gt;, as &lt;code&gt;metric&lt;/code&gt; is the context capable of parsing both metric and resource data:&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;statements {
    metric = [
        `resource.attributes[&amp;#34;test&amp;#34;], &amp;#34;passed&amp;#34;`,
        `set(metric.description, &amp;#34;test passed&amp;#34;)`,
    ]
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The primary benefit of context inference is that it enhances the efficiency of statement processing by linking them to the most suitable context.
This optimization ensures that data transformations are both accurate and performant,
leveraging the hierarchical structure of contexts to avoid unnecessary iterations and improve overall processing efficiency.
All of this happens automatically, leaving you to write OTTL statements without worrying about contexts.&lt;/p&gt;
&lt;h3 id=&#34;trace_statements&#34;&gt;&lt;code&gt;trace_statements&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;trace_statements&lt;/code&gt; block specifies statements which transform trace telemetry signals.
Multiple &lt;code&gt;trace_statements&lt;/code&gt; blocks can be specified.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;context&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;OTTL Context to use when interpreting the associated statements.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;statements&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of OTTL statements.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;conditions&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Conditions for the statements to be executed.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;error_mode&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How to react to errors if they occur while processing a statement.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The supported values for &lt;code&gt;context&lt;/code&gt; are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;resource&lt;/code&gt;: Use when interacting only with OTLP resources (for example, resource attributes).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;scope&lt;/code&gt;: Use when interacting only with OTLP instrumentation scope (for example, the name of the instrumentation scope).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;span&lt;/code&gt;: Use when interacting only with OTLP spans.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;spanevent&lt;/code&gt;: Use when interacting only with OTLP span events.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Refer to [OTTL Context][] for more information about how to use contexts.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;conditions&lt;/code&gt; is a list of multiple &lt;code&gt;where&lt;/code&gt; clauses which will be processed as global conditions for the accompanying set of statements.
The conditions are ORed together, which means only one condition needs to evaluate to true in order for the statements
(including their individual &lt;code&gt;where&lt;/code&gt; clauses) to be executed.&lt;/p&gt;
&lt;p&gt;The allowed values for &lt;code&gt;error_mode&lt;/code&gt; are the same as the ones documented in the &lt;a href=&#34;#arguments&#34;&gt;Arguments&lt;/a&gt; section.
If &lt;code&gt;error_mode&lt;/code&gt; is not specified in &lt;code&gt;trace_statements&lt;/code&gt;, the top-level &lt;code&gt;error_mode&lt;/code&gt; is applied.&lt;/p&gt;
&lt;h3 id=&#34;ottl-context&#34;&gt;OTTL Context&lt;/h3&gt;
&lt;p&gt;Each context allows the transformation of its type of telemetry.
For example, statements associated with a &lt;code&gt;resource&lt;/code&gt; context will be able to transform the resource&amp;rsquo;s &lt;code&gt;attributes&lt;/code&gt; and &lt;code&gt;dropped_attributes_count&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Each type of &lt;code&gt;context&lt;/code&gt; defines its own paths and enums specific to that context.
Refer to the OpenTelemetry documentation for a list of paths and enums for each context:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.147.0/pkg/ottl/contexts/ottlresource/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;resource&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.147.0/pkg/ottl/contexts/ottlscope/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;scope&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.147.0/pkg/ottl/contexts/ottlspan/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;span&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.147.0/pkg/ottl/contexts/ottlspanevent/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;spanevent&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.147.0/pkg/ottl/contexts/ottllog/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;log&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.147.0/pkg/ottl/contexts/ottlmetric/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.147.0/pkg/ottl/contexts/ottldatapoint/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;datapoint&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Contexts &lt;strong&gt;NEVER&lt;/strong&gt; supply access to individual items &amp;ldquo;lower&amp;rdquo; in the protobuf definition.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;This means statements associated to a &lt;code&gt;resource&lt;/code&gt; &lt;strong&gt;WILL NOT&lt;/strong&gt; be able to access the underlying instrumentation scopes.&lt;/li&gt;
&lt;li&gt;This means statements associated to a &lt;code&gt;scope&lt;/code&gt; &lt;strong&gt;WILL NOT&lt;/strong&gt; be able to access the underlying telemetry slices (spans, metrics, or logs).&lt;/li&gt;
&lt;li&gt;Similarly, statements associated to a &lt;code&gt;metric&lt;/code&gt; &lt;strong&gt;WILL NOT&lt;/strong&gt; be able to access individual datapoints, but can access the entire datapoints slice.&lt;/li&gt;
&lt;li&gt;Similarly, statements associated to a &lt;code&gt;span&lt;/code&gt; &lt;strong&gt;WILL NOT&lt;/strong&gt; be able to access individual SpanEvents, but can access the entire SpanEvents slice.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For practical purposes, this means that a context can&amp;rsquo;t make decisions on its telemetry based on telemetry &amp;ldquo;lower&amp;rdquo; in the structure.
For example, &lt;strong&gt;the following context statement isn&amp;rsquo;t possible&lt;/strong&gt; because it attempts to use individual datapoint attributes in the condition of a statement associated to a &lt;code&gt;metric&lt;/code&gt;:&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;metric_statements {
  context = &amp;#34;metric&amp;#34;
  statements = [
    &amp;#34;set(description, \&amp;#34;test passed\&amp;#34;) where datapoints.attributes[\&amp;#34;test\&amp;#34;] == \&amp;#34;pass\&amp;#34;&amp;#34;,
  ]
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Context &lt;strong&gt;ALWAYS&lt;/strong&gt; supply access to the items &amp;ldquo;higher&amp;rdquo; in the protobuf definition that are associated to the telemetry being transformed.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;This means that statements associated to a &lt;code&gt;datapoint&lt;/code&gt; have access to a datapoint&amp;rsquo;s metric, instrumentation scope, and resource.&lt;/li&gt;
&lt;li&gt;This means that statements associated to a &lt;code&gt;spanevent&lt;/code&gt; have access to a spanevent&amp;rsquo;s span, instrumentation scope, and resource.&lt;/li&gt;
&lt;li&gt;This means that statements associated to a &lt;code&gt;span&lt;/code&gt;/&lt;code&gt;metric&lt;/code&gt;/&lt;code&gt;log&lt;/code&gt; have access to the telemetry&amp;rsquo;s instrumentation scope, and resource.&lt;/li&gt;
&lt;li&gt;This means that statements associated to a &lt;code&gt;scope&lt;/code&gt; have access to the scope&amp;rsquo;s resource.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For example, &lt;strong&gt;the following context statement is possible&lt;/strong&gt; because &lt;code&gt;datapoint&lt;/code&gt; statements can access the datapoint&amp;rsquo;s metric.&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;metric_statements {
  context = &amp;#34;datapoint&amp;#34;
  statements = [
    &amp;#34;set(metric.description, \&amp;#34;test passed\&amp;#34;) where attributes[\&amp;#34;test\&amp;#34;] == \&amp;#34;pass\&amp;#34;&amp;#34;,
  ]
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The protobuf definitions for OTLP signals are maintained on GitHub:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-proto/blob/v1.0.0/opentelemetry/proto/trace/v1/trace.proto&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;traces&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-proto/blob/v1.0.0/opentelemetry/proto/metrics/v1/metrics.proto&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;metrics&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-proto/blob/v1.0.0/opentelemetry/proto/logs/v1/logs.proto&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;logs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Whenever possible, associate your statements to the context which the statement intens to transform.
The contexts are nested, and the higher-level contexts don&amp;rsquo;t have to iterate through any of the contexts at a lower level.
For example, although you can modify resource attributes associated to a span using the &lt;code&gt;span&lt;/code&gt; context, it&amp;rsquo;s more efficient to use the &lt;code&gt;resource&lt;/code&gt; context.&lt;/p&gt;
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;The following fields are exported and can be referenced by other components:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&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;code&gt;input&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A value that other components can use to send telemetry data to.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;input&lt;/code&gt; accepts &lt;code&gt;otelcol.Consumer&lt;/code&gt; data for any telemetry signal (metrics, logs, or traces).&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.transform&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.transform&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;debug-metrics&#34;&gt;Debug metrics&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.transform&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug metrics.&lt;/p&gt;
&lt;h2 id=&#34;examples&#34;&gt;Examples&lt;/h2&gt;
&lt;h3 id=&#34;perform-a-transformation-if-an-attribute-doesnt-exist&#34;&gt;Perform a transformation if an attribute doesn&amp;rsquo;t exist&lt;/h3&gt;
&lt;p&gt;This example sets the attribute &lt;code&gt;test&lt;/code&gt; to &lt;code&gt;pass&lt;/code&gt; if the attribute &lt;code&gt;test&lt;/code&gt; doesn&amp;rsquo;t exist.&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;otelcol.processor.transform &amp;#34;default&amp;#34; {
  error_mode = &amp;#34;ignore&amp;#34;

  trace_statements {
    context = &amp;#34;span&amp;#34;
    statements = [
      // Accessing a map with a key that doesn&amp;#39;t exist will return nil.
      `set(attributes[&amp;#34;test&amp;#34;], &amp;#34;pass&amp;#34;) where attributes[&amp;#34;test&amp;#34;] == nil`,
    ]
  }

  output {
    metrics = [otelcol.exporter.otlphttp.default.input]
    logs    = [otelcol.exporter.otlphttp.default.input]
    traces  = [otelcol.exporter.otlphttp.default.input]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;rename-a-resource-attribute&#34;&gt;Rename a resource attribute&lt;/h3&gt;
&lt;p&gt;The are two ways to rename an attribute key.
One way is to set a new attribute and delete the old one:&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;otelcol.processor.transform &amp;#34;default&amp;#34; {
  error_mode = &amp;#34;ignore&amp;#34;

  trace_statements {
    context = &amp;#34;resource&amp;#34;
    statements = [
      `set(attributes[&amp;#34;namespace&amp;#34;], attributes[&amp;#34;k8s.namespace.name&amp;#34;])`,
      `delete_key(attributes, &amp;#34;k8s.namespace.name&amp;#34;)`,
    ]
  }

  output {
    metrics = [otelcol.exporter.otlphttp.default.input]
    logs    = [otelcol.exporter.otlphttp.default.input]
    traces  = [otelcol.exporter.otlphttp.default.input]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Another way is to update the key using regular expressions:&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;otelcol.processor.transform &amp;#34;default&amp;#34; {
  error_mode = &amp;#34;ignore&amp;#34;

  trace_statements {
    context = &amp;#34;resource&amp;#34;
    statements = [
     `replace_all_patterns(attributes, &amp;#34;key&amp;#34;, &amp;#34;k8s\\.namespace\\.name&amp;#34;, &amp;#34;namespace&amp;#34;)`,
    ]
  }

  output {
    metrics = [otelcol.exporter.otlphttp.default.input]
    logs    = [otelcol.exporter.otlphttp.default.input]
    traces  = [otelcol.exporter.otlphttp.default.input]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;create-an-attribute-from-the-contents-of-a-log-body&#34;&gt;Create an attribute from the contents of a log body&lt;/h3&gt;
&lt;p&gt;This example sets the attribute &lt;code&gt;body&lt;/code&gt; to the value of the log body:&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;otelcol.processor.transform &amp;#34;default&amp;#34; {
  error_mode = &amp;#34;ignore&amp;#34;

  log_statements {
    context = &amp;#34;log&amp;#34;
    statements = [
      `set(attributes[&amp;#34;body&amp;#34;], body)`,
    ]
  }

  output {
    metrics = [otelcol.exporter.otlphttp.default.input]
    logs    = [otelcol.exporter.otlphttp.default.input]
    traces  = [otelcol.exporter.otlphttp.default.input]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;combine-two-attributes&#34;&gt;Combine two attributes&lt;/h3&gt;
&lt;p&gt;This example sets the attribute &lt;code&gt;test&lt;/code&gt; to the value of attributes &lt;code&gt;service.name&lt;/code&gt; and &lt;code&gt;service.version&lt;/code&gt; combined.&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;otelcol.processor.transform &amp;#34;default&amp;#34; {
  error_mode = &amp;#34;ignore&amp;#34;

  trace_statements {
    context = &amp;#34;resource&amp;#34;
    statements = [
      // The Concat function combines any number of strings, separated by a delimiter.
      `set(attributes[&amp;#34;test&amp;#34;], Concat([attributes[&amp;#34;service.name&amp;#34;], attributes[&amp;#34;service.version&amp;#34;]], &amp;#34; &amp;#34;))`,
    ]
  }

  output {
    metrics = [otelcol.exporter.otlphttp.default.input]
    logs    = [otelcol.exporter.otlphttp.default.input]
    traces  = [otelcol.exporter.otlphttp.default.input]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;parsing-json-logs&#34;&gt;Parsing JSON logs&lt;/h3&gt;
&lt;p&gt;Given the following JSON body:&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;JSON&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-json&#34;&gt;{
  &amp;#34;name&amp;#34;: &amp;#34;log&amp;#34;,
  &amp;#34;attr1&amp;#34;: &amp;#34;example value 1&amp;#34;,
  &amp;#34;attr2&amp;#34;: &amp;#34;example value 2&amp;#34;,
  &amp;#34;nested&amp;#34;: {
    &amp;#34;attr3&amp;#34;: &amp;#34;example value 3&amp;#34;
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;You can add specific fields as attributes on the log:&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;otelcol.processor.transform &amp;#34;default&amp;#34; {
  error_mode = &amp;#34;ignore&amp;#34;

  log_statements {
    context = &amp;#34;log&amp;#34;

    statements = [
      // Parse body as JSON and merge the resulting map with the cache map, ignoring non-json bodies.
      // cache is a field exposed by OTTL that is a temporary storage place for complex operations.
      `merge_maps(cache, ParseJSON(body), &amp;#34;upsert&amp;#34;) where IsMatch(body, &amp;#34;^\\{&amp;#34;)`,

      // Set attributes using the values merged into cache.
      // If the attribute doesn&amp;#39;t exist in cache then nothing happens.
      `set(attributes[&amp;#34;attr1&amp;#34;], cache[&amp;#34;attr1&amp;#34;])`,
      `set(attributes[&amp;#34;attr2&amp;#34;], cache[&amp;#34;attr2&amp;#34;])`,

      // To access nested maps you can chain index ([]) operations.
      // If nested or attr3 do no exist in cache then nothing happens.
      `set(attributes[&amp;#34;nested.attr3&amp;#34;], cache[&amp;#34;nested&amp;#34;][&amp;#34;attr3&amp;#34;])`,
    ]
  }

  output {
    metrics = [otelcol.exporter.otlphttp.default.input]
    logs    = [otelcol.exporter.otlphttp.default.input]
    traces  = [otelcol.exporter.otlphttp.default.input]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;various-transformations-of-attributes-and-status-codes&#34;&gt;Various transformations of attributes and status codes&lt;/h3&gt;
&lt;p&gt;The example takes advantage of context efficiency by grouping transformations with the context which it intends to transform.&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;otelcol.receiver.otlp &amp;#34;default&amp;#34; {
  http {}
  grpc {}

  output {
    metrics = [otelcol.processor.transform.default.input]
    logs    = [otelcol.processor.transform.default.input]
    traces  = [otelcol.processor.transform.default.input]
  }
}

otelcol.processor.transform &amp;#34;default&amp;#34; {
  error_mode = &amp;#34;ignore&amp;#34;

  trace_statements {
    context = &amp;#34;resource&amp;#34;
    statements = [
      `keep_keys(attributes, [&amp;#34;service.name&amp;#34;, &amp;#34;service.namespace&amp;#34;, &amp;#34;cloud.region&amp;#34;, &amp;#34;process.command_line&amp;#34;])`,
      `replace_pattern(attributes[&amp;#34;process.command_line&amp;#34;], &amp;#34;password\\=[^\\s]*(\\s?)&amp;#34;, &amp;#34;password=***&amp;#34;)`,
      `limit(attributes, 100, [])`,
      `truncate_all(attributes, 4096)`,
    ]
  }

  trace_statements {
    context = &amp;#34;span&amp;#34;
    statements = [
      `set(status.code, 1) where attributes[&amp;#34;http.path&amp;#34;] == &amp;#34;/health&amp;#34;`,
      `set(name, attributes[&amp;#34;http.route&amp;#34;])`,
      `replace_match(attributes[&amp;#34;http.target&amp;#34;], &amp;#34;/user/*/list/*&amp;#34;, &amp;#34;/user/{userId}/list/{listId}&amp;#34;)`,
      `limit(attributes, 100, [])`,
      `truncate_all(attributes, 4096)`,
    ]
  }

  metric_statements {
    context = &amp;#34;resource&amp;#34;
    statements = [
      `keep_keys(attributes, [&amp;#34;host.name&amp;#34;])`,
      `truncate_all(attributes, 4096)`,
    ]
  }

  metric_statements {
    context = &amp;#34;metric&amp;#34;
    statements = [
      `set(description, &amp;#34;Sum&amp;#34;) where type == &amp;#34;Sum&amp;#34;`,
      `convert_sum_to_gauge() where name == &amp;#34;system.processes.count&amp;#34;`,
      `convert_gauge_to_sum(&amp;#34;cumulative&amp;#34;, false) where name == &amp;#34;prometheus_metric&amp;#34;`,
      `aggregate_on_attributes(&amp;#34;sum&amp;#34;) where name == &amp;#34;system.memory.usage&amp;#34;`,
    ]
  }

  metric_statements {
    context = &amp;#34;datapoint&amp;#34;
    statements = [
      `limit(attributes, 100, [&amp;#34;host.name&amp;#34;])`,
      `truncate_all(attributes, 4096)`,
    ]
  }

  log_statements {
    context = &amp;#34;resource&amp;#34;
    statements = [
      `keep_keys(attributes, [&amp;#34;service.name&amp;#34;, &amp;#34;service.namespace&amp;#34;, &amp;#34;cloud.region&amp;#34;])`,
    ]
  }

  log_statements {
    context = &amp;#34;log&amp;#34;
    statements = [
      `set(severity_text, &amp;#34;FAIL&amp;#34;) where body == &amp;#34;request failed&amp;#34;`,
      `replace_all_matches(attributes, &amp;#34;/user/*/list/*&amp;#34;, &amp;#34;/user/{userId}/list/{listId}&amp;#34;)`,
      `replace_all_patterns(attributes, &amp;#34;value&amp;#34;, &amp;#34;/account/\\d{4}&amp;#34;, &amp;#34;/account/{accountId}&amp;#34;)`,
      `set(body, attributes[&amp;#34;http.route&amp;#34;])`,
    ]
  }

  output {
    metrics = [otelcol.exporter.otlphttp.default.input]
    logs    = [otelcol.exporter.otlphttp.default.input]
    traces  = [otelcol.exporter.otlphttp.default.input]
  }
}

otelcol.exporter.otlphttp &amp;#34;default&amp;#34; {
  client {
    endpoint = sys.env(&amp;#34;OTLP_ENDPOINT&amp;#34;)
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;using-conditions&#34;&gt;Using conditions&lt;/h3&gt;
&lt;p&gt;This example only runs the statements if the conditions are met:&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;otelcol.processor.transform &amp;#34;default&amp;#34; {
  error_mode = &amp;#34;ignore&amp;#34;

  metric_statements {
    context = &amp;#34;metric&amp;#34;
    statements = [
      `set(metric.description, &amp;#34;Sum&amp;#34;)`,
    ]
    conditions = [
      `metric.type == METRIC_DATA_TYPE_SUM`,
    ]
  }

  log_statements {
    context = &amp;#34;log&amp;#34;
    statements = [
      `set(log.body, log.attributes[&amp;#34;http.route&amp;#34;])`,
    ]
    conditions = [
      `IsMap(log.body) and log.body[&amp;#34;object&amp;#34;] != nil`,
    ]
  }

  output {
    metrics = [otelcol.exporter.otlphttp.default.input]
    logs    = [otelcol.exporter.otlphttp.default.input]
    traces  = [otelcol.exporter.otlphttp.default.input]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.transform&lt;/code&gt; can accept arguments from the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that export &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-exporters&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;otelcol.processor.transform&lt;/code&gt; has exports that can be consumed by the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that consume &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-consumers&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolprocessortransform">&lt;code>otelcol.processor.transform&lt;/code>&lt;/h1>
&lt;p>&lt;code>otelcol.processor.transform&lt;/code> accepts telemetry data from other &lt;code>otelcol&lt;/code> components and modifies it using the &lt;a href="https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.147.0/pkg/ottl/README.md" target="_blank" rel="noopener noreferrer">OpenTelemetry Transformation Language (OTTL)&lt;/a>.
OTTL statements consist of &lt;a href="https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.147.0/pkg/ottl/ottlfuncs/README.md" target="_blank" rel="noopener noreferrer">OTTL functions&lt;/a>, which act on paths.
A path is a reference to a telemetry data such as:&lt;/p></description></item><item><title>otelcol.receiver.awscloudwatch</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.receiver.awscloudwatch/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.receiver.awscloudwatch/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolreceiverawscloudwatch&#34;&gt;&lt;code&gt;otelcol.receiver.awscloudwatch&lt;/code&gt;&lt;/h1&gt;


&lt;div data-shared=&#34;stability/experimental.md&#34;&gt;
            &lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;EXPERIMENTAL&lt;/strong&gt;: This is an &lt;a href=&#34;/docs/release-life-cycle/&#34;&gt;experimental&lt;/a&gt; component.
Experimental components are subject to frequent breaking changes, and may be removed with no equivalent replacement.
To enable and use an experimental component, you must set the &lt;code&gt;stability.level&lt;/code&gt; 
    &lt;a href=&#34;/docs/alloy/v1.15/reference/cli/run/&#34;&gt;flag&lt;/a&gt; to &lt;code&gt;experimental&lt;/code&gt;.&lt;/p&gt;&lt;/blockquote&gt;
&lt;/div&gt;

        
&lt;p&gt;&lt;code&gt;otelcol.receiver.awscloudwatch&lt;/code&gt; receives logs from Amazon CloudWatch and forwards them to other &lt;code&gt;otelcol.*&lt;/code&gt; components.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.receiver.awscloudwatch&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/receiver/awscloudwatchreceiver&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;awscloudwatch&lt;/code&gt;&lt;/a&gt; receiver.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.receiver.awscloudwatch&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.receiver.awscloudwatch &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  region = &amp;#34;us-west-2&amp;#34;

  output {
    logs = [...]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.receiver.awscloudwatch&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;region&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;AWS region to collect logs from.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;imds_endpoint&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Custom EC2 IMDS endpoint to use.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;profile&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;AWS credentials profile to use.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;storage&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;capsule(otelcol.Handler)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Handler from an &lt;code&gt;otelcol.storage&lt;/code&gt; component to use for persisting state.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If &lt;code&gt;imds_endpoint&lt;/code&gt; isn&amp;rsquo;t specified, and the environment variable &lt;code&gt;AWS_EC2_METADATA_SERVICE_ENDPOINT&lt;/code&gt; has a value, it will be used as the IMDS endpoint.&lt;/p&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.receiver.awscloudwatch&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 3;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#output\&amp;#34;\u003e\u003ccode\u003eoutput\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures where to send received telemetry data.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#logs\&amp;#34;\u003e\u003ccode\u003elogs\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the log collection settings.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures where to send received telemetry data.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#logs&#34;&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the log collection settings.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;



&lt;div data-shared=&#34;reference/components/output-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;output&lt;/code&gt; block configures a set of components to forward resulting telemetry data to.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send logs to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send metrics to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;traces&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send traces to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You must specify the &lt;code&gt;output&lt;/code&gt; block, but all its arguments are optional.
By default, telemetry data is dropped.
Configure the &lt;code&gt;metrics&lt;/code&gt;, &lt;code&gt;logs&lt;/code&gt;, and &lt;code&gt;traces&lt;/code&gt; arguments accordingly to send telemetry data to other components.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h3 id=&#34;logs&#34;&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;logs&lt;/code&gt; block configures how logs are collected from CloudWatch.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_events_per_request&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum number of events to process per request to CloudWatch.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1000&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;poll_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How frequently to poll for new log entries.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;1m&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;start_from&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Timestamp in RFC3339 format where to start reading logs.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;code&gt;logs&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#logs--groups&#34;&gt;groups&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures which log groups to collect from.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;logs--groups&#34;&gt;&lt;code&gt;logs&lt;/code&gt; &amp;gt; &lt;code&gt;groups&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;The &lt;code&gt;groups&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#logs--groups--autodiscover&#34;&gt;autodiscover&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures automatic discovery of log groups.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#logs--groups--named&#34;&gt;named&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures specific log groups to collect from.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The blocks &lt;code&gt;autodiscover&lt;/code&gt; or &lt;code&gt;named&lt;/code&gt; are mutually exclusive.&lt;/p&gt;
&lt;h4 id=&#34;logs--groups--autodiscover&#34;&gt;&lt;code&gt;logs&lt;/code&gt; &amp;gt; &lt;code&gt;groups&lt;/code&gt; &amp;gt; &lt;code&gt;autodiscover&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;The &lt;code&gt;autodiscover&lt;/code&gt; block configures automatic discovery of log groups.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;limit&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum number of log groups to discover.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;50&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;prefix&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Prefix to filter log groups by.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;code&gt;autodiscover&lt;/code&gt; block supports the following blocks:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#logs--groups--autodiscover--streams&#34;&gt;streams&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures log streams filtering.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;logs--groups--autodiscover--streams&#34;&gt;&lt;code&gt;logs&lt;/code&gt; &amp;gt; &lt;code&gt;groups&lt;/code&gt; &amp;gt; &lt;code&gt;autodiscover&lt;/code&gt; &amp;gt; &lt;code&gt;streams&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;The &lt;code&gt;streams&lt;/code&gt; block configures filtering of log streams for the autodiscovered log groups.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;names&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of exact stream names to collect.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;prefixes&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of prefixes to filter streams by.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;logs--groups--named&#34;&gt;&lt;code&gt;logs&lt;/code&gt; &amp;gt; &lt;code&gt;groups&lt;/code&gt; &amp;gt; &lt;code&gt;named&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;The &lt;code&gt;named&lt;/code&gt; block explicitly configures specific log groups to collect from. Multiple &lt;code&gt;named&lt;/code&gt; blocks can be specified.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;group_name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Name of the CloudWatch log group.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;names&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of exact stream names to collect.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;prefixes&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of prefixes to filter streams by.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.awscloudwatch&lt;/code&gt; doesn&amp;rsquo;t export any fields.&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.awscloudwatch&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.awscloudwatch&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;p&gt;The following example collects logs from specific EKS cluster log groups and forwards them through a batch processor:&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;otelcol.receiver.awscloudwatch &amp;#34;default&amp;#34; {
  region = &amp;#34;us-west-2&amp;#34;

  logs {
    poll_interval = &amp;#34;3m&amp;#34;
    max_events_per_request = 5000

    groups {
      named {
        group_name = &amp;#34;/aws/eks/dev-cluster/cluster&amp;#34;
        names = [&amp;#34;api-gateway&amp;#34;]
      }
      named {
        group_name = &amp;#34;/aws/eks/prod-cluster/cluster&amp;#34;
        prefixes = [&amp;#34;app-&amp;#34;, &amp;#34;service-&amp;#34;]
      }
    }
  }

  output {
    logs = [otelcol.processor.batch.default.input]
  }
}

otelcol.processor.batch &amp;#34;default&amp;#34; {
  output {
    logs = [otelcol.exporter.otlphttp.default.input]
  }
}

otelcol.exporter.otlphttp &amp;#34;default&amp;#34; {
  client {
    endpoint = env(&amp;#34;&amp;lt;OTLP_ENDPOINT&amp;gt;&amp;#34;)
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.awscloudwatch&lt;/code&gt; can accept arguments from the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that export &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-exporters&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolreceiverawscloudwatch">&lt;code>otelcol.receiver.awscloudwatch&lt;/code>&lt;/h1>
&lt;div data-shared="stability/experimental.md">
&lt;blockquote>
&lt;p>&lt;strong>EXPERIMENTAL&lt;/strong>: This is an &lt;a href="/docs/release-life-cycle/">experimental&lt;/a> component.
Experimental components are subject to frequent breaking changes, and may be removed with no equivalent replacement.
To enable and use an experimental component, you must set the &lt;code>stability.level&lt;/code>
&lt;a href="/docs/alloy/v1.15/reference/cli/run/">flag&lt;/a> to &lt;code>experimental&lt;/code>.&lt;/p></description></item><item><title>otelcol.receiver.awsecscontainermetrics</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.receiver.awsecscontainermetrics/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.receiver.awsecscontainermetrics/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolreceiverawsecscontainermetrics&#34;&gt;&lt;code&gt;otelcol.receiver.awsecscontainermetrics&lt;/code&gt;&lt;/h1&gt;


&lt;div data-shared=&#34;stability/experimental.md&#34;&gt;
            &lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;EXPERIMENTAL&lt;/strong&gt;: This is an &lt;a href=&#34;/docs/release-life-cycle/&#34;&gt;experimental&lt;/a&gt; component.
Experimental components are subject to frequent breaking changes, and may be removed with no equivalent replacement.
To enable and use an experimental component, you must set the &lt;code&gt;stability.level&lt;/code&gt; 
    &lt;a href=&#34;/docs/alloy/v1.15/reference/cli/run/&#34;&gt;flag&lt;/a&gt; to &lt;code&gt;experimental&lt;/code&gt;.&lt;/p&gt;&lt;/blockquote&gt;
&lt;/div&gt;

        
&lt;p&gt;&lt;code&gt;otelcol.receiver.awsecscontainermetrics&lt;/code&gt; reads AWS ECS task- and container-level metadata, and resource usage metrics such as CPU, memory, network, and disk, and forwards them to other &lt;code&gt;otelcol.*&lt;/code&gt; components.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.receiver.awsecscontainermetrics&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/receiver/awsecscontainermetricsreceiver&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;awsecscontainermetrics&lt;/code&gt;&lt;/a&gt; receiver.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;This receiver supports ECS Fargate and ECS on EC2. It uses &lt;a href=&#34;https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-metadata-endpoint-v4.html&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;ECS Task Metadata Endpoint V4&lt;/a&gt; which is automatically available within the task&amp;rsquo;s containers. Therefore, you should run the Alloy collector using this receiver as a sidecar within the task you want to monitor. Refer to the upstream &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/receiver/awsecscontainermetricsreceiver&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;awsecscontainermetrics&lt;/code&gt;&lt;/a&gt; receiver documentation for more details.&lt;/p&gt;
&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.receiver.awsecscontainermetrics&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.receiver.awsecscontainermetrics &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  output {
    metrics = [...]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.receiver.awsecscontainermetrics&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;collection_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How frequently to collect and emit metrics.&lt;/td&gt;
              &lt;td&gt;&amp;ldquo;20s&amp;rdquo;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.receiver.awsecscontainermetrics&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 2;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#output\&amp;#34;\u003e\u003ccode\u003eoutput\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures where to send received telemetry data.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures where to send received telemetry data.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;



&lt;div data-shared=&#34;reference/components/output-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;output&lt;/code&gt; block configures a set of components to forward resulting telemetry data to.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send logs to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send metrics to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;traces&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send traces to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You must specify the &lt;code&gt;output&lt;/code&gt; block, but all its arguments are optional.
By default, telemetry data is dropped.
Configure the &lt;code&gt;metrics&lt;/code&gt;, &lt;code&gt;logs&lt;/code&gt;, and &lt;code&gt;traces&lt;/code&gt; arguments accordingly to send telemetry data to other components.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.awsecscontainermetrics&lt;/code&gt; doesn&amp;rsquo;t export any fields.&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.awsecscontainermetrics&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.awsecscontainermetrics&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;p&gt;The following example collects eight task-level metrics from the 52 metrics available in an ECS task and forwards them to a filter processor.&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;otelcol.receiver.awsecscontainermetrics &amp;#34;default&amp;#34; {
  collection_interval = &amp;#34;60s&amp;#34;

  output {
    metrics = [otelcol.processor.filter.default.input]
  }
}

otelcol.processor.filter &amp;#34;default&amp;#34; {
  error_mode = &amp;#34;ignore&amp;#34;

  metrics {
    metric = [
      string.join([
        `metric.name != &amp;#34;ecs.task.memory.reserved&amp;#34;`,
        `metric.name != &amp;#34;ecs.task.memory.utilized&amp;#34;`,
        `metric.name != &amp;#34;ecs.task.cpu.reserved&amp;#34;`,
        `metric.name != &amp;#34;ecs.task.cpu.utilized&amp;#34;`,
        `metric.name != &amp;#34;ecs.task.network.rate.rx&amp;#34;`,
        `metric.name != &amp;#34;ecs.task.network.rate.tx&amp;#34;`,
        `metric.name != &amp;#34;ecs.task.storage.read_bytes&amp;#34;`,
        `metric.name != &amp;#34;ecs.task.storage.write_bytes&amp;#34;`,
      ], &amp;#34; and &amp;#34;),
    ]
  }

  output {
    metrics = [otelcol.exporter.otlphttp.default.input]
  }
}

otelcol.exporter.otlphttp &amp;#34;default&amp;#34; {
  client {
    endpoint = env(&amp;#34;&amp;lt;OTLP_ENDPOINT&amp;gt;&amp;#34;)
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.awsecscontainermetrics&lt;/code&gt; can accept arguments from the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that export &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-exporters&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolreceiverawsecscontainermetrics">&lt;code>otelcol.receiver.awsecscontainermetrics&lt;/code>&lt;/h1>
&lt;div data-shared="stability/experimental.md">
&lt;blockquote>
&lt;p>&lt;strong>EXPERIMENTAL&lt;/strong>: This is an &lt;a href="/docs/release-life-cycle/">experimental&lt;/a> component.
Experimental components are subject to frequent breaking changes, and may be removed with no equivalent replacement.
To enable and use an experimental component, you must set the &lt;code>stability.level&lt;/code>
&lt;a href="/docs/alloy/v1.15/reference/cli/run/">flag&lt;/a> to &lt;code>experimental&lt;/code>.&lt;/p></description></item><item><title>otelcol.receiver.awss3</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.receiver.awss3/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.receiver.awss3/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolreceiverawss3&#34;&gt;&lt;code&gt;otelcol.receiver.awss3&lt;/code&gt;&lt;/h1&gt;


&lt;div data-shared=&#34;stability/experimental.md&#34;&gt;
            &lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;EXPERIMENTAL&lt;/strong&gt;: This is an &lt;a href=&#34;/docs/release-life-cycle/&#34;&gt;experimental&lt;/a&gt; component.
Experimental components are subject to frequent breaking changes, and may be removed with no equivalent replacement.
To enable and use an experimental component, you must set the &lt;code&gt;stability.level&lt;/code&gt; 
    &lt;a href=&#34;/docs/alloy/v1.15/reference/cli/run/&#34;&gt;flag&lt;/a&gt; to &lt;code&gt;experimental&lt;/code&gt;.&lt;/p&gt;&lt;/blockquote&gt;
&lt;/div&gt;

        
&lt;p&gt;&lt;code&gt;otelcol.receiver.awss3&lt;/code&gt; receives telemetry stored in S3 by the &lt;a href=&#34;./otelcol.exporter.awss3.md&#34;&gt;AWS S3 Exporter&lt;/a&gt;.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-warning&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Warning&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.receiver.awss3&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/receiver/awss3receiver&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;awss3&lt;/code&gt;&lt;/a&gt; receiver.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;The receiver has two modes of operation:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Time Range Mode&lt;/strong&gt; - Specify start and end to fetch data from a specific time range.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SQS Message Mode&lt;/strong&gt; - Subscribe to SQS messages to process objects as they arrive.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The receiver supports the following encodings:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;otlp_json&lt;/code&gt; (OpenTelemetry Protocol format represented as JSON) with a suffix of &lt;code&gt;.json&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;otlp_proto&lt;/code&gt; (OpenTelemetry Protocol format represented as Protocol Buffers) with a suffix of &lt;code&gt;.binpb&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Currently, &lt;code&gt;otelcol.receiver.awss3&lt;/code&gt; receiver doesn&amp;rsquo;t support encoding extensions.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.receiver.awss3&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.receiver.awss3 &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  start_time = &amp;#34;...&amp;#34;
  end_time = &amp;#34;...&amp;#34;

  s3downloader {
    s3_bucket = &amp;#34;...&amp;#34;
    s3_prefix = &amp;#34;...&amp;#34;
  }

  output {
    logs = [...]
    metrics = [...]
    trace = [...]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.receiver.awss3&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;start_time&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The time at which to start retrieving data.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;Required if fetching by time.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;end_time&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The time at which to stop retrieving data.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;Required if fetching by time.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;code&gt;start_time&lt;/code&gt; and &lt;code&gt;end_time&lt;/code&gt; fields use one of the following time formats: RFC3339, &lt;code&gt;YYYY-MM-DD HH:MM&lt;/code&gt;, or &lt;code&gt;YYYY-MM-DD&lt;/code&gt;. When using &lt;code&gt;YYYY-MM-DD&lt;/code&gt;, the time defaults to &lt;code&gt;00:00&lt;/code&gt;.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Time-based configuration (&lt;code&gt;start_time&lt;/code&gt; and &lt;code&gt;end_time&lt;/code&gt; arguments) can&amp;rsquo;t be combined together with &lt;a href=&#34;#sqs&#34;&gt;&lt;code&gt;sqs&lt;/code&gt;&lt;/a&gt; block.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;Refer to the upstream receiver &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/receiver/awss3receiver#configuration&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;documentation&lt;/a&gt; for more details.&lt;/p&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.receiver.awss3&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 3;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#s3downloader\&amp;#34;\u003e\u003ccode\u003es3downloader\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures S3 downloader.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#sqs\&amp;#34;\u003e\u003ccode\u003esqs\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures SQS queue configuration for receiving object change notification.\u003c/td\u003e\n              \u003ctd\u003eRequired if fetching by SQS notification.\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#output\&amp;#34;\u003e\u003ccode\u003eoutput\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures where to send received telemetry data.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#s3downloader&#34;&gt;&lt;code&gt;s3downloader&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures S3 downloader.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#sqs&#34;&gt;&lt;code&gt;sqs&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures SQS queue configuration for receiving object change notification.&lt;/td&gt;
              &lt;td&gt;Required if fetching by SQS notification.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures where to send received telemetry data.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;s3downloader&#34;&gt;&lt;code&gt;s3downloader&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;

&lt;p&gt;The &lt;code&gt;s3downloader&lt;/code&gt; block contains AWS S3 downloader related configuration to control things like bucket, prefix, batching, connections, retries, etc.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;s3_bucket&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;S3 bucket.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;s3_prefix&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Prefix for the S3 key (root directory inside bucket).&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;endpoint_partition_id&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Partition id to use if &lt;code&gt;endpoint&lt;/code&gt; is specified.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;aws&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Overrides the endpoint used by the exporter instead of constructing it from &lt;code&gt;region&lt;/code&gt; and &lt;code&gt;s3_bucket&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;file_prefix&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Prefix used to filter files for download.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&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;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;AWS region.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;us-east-1&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;s3_force_path_style&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;When enabled, forces the request to use &lt;a href=&#34;http://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;path-style addressing&lt;/a&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;s3_partition_format&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Format for the partition key. See &lt;a href=&#34;https://www.man7.org/linux/man-pages/man3/strftime.3.html&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;strftime&lt;/a&gt; for format specification.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;year=%Y/month=%m/day=%d/hour=%H/minute=%M&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;s3_partition_timezone&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;IANA timezone name applied when formatting the partition key.&lt;/td&gt;
              &lt;td&gt;Local time&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;sqs&#34;&gt;&lt;code&gt;sqs&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;sqs&lt;/code&gt; block holds SQS queue configuration for receiving object change notifications.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;queue_url&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The URL of the SQS queue that receives S3 bucket notifications.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&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;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;AWS region of the SQS queue.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Custom endpoint for the SQS service.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_number_of_messages&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum number of messages to retrieve in a single SQS request.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;wait_time_seconds&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Wait time in seconds for long polling SQS requests.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;20&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;

&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;You must configure your S3 bucket to send event notifications to the SQS queue.
Time-based configuration (&lt;code&gt;start_time&lt;/code&gt;/&lt;code&gt;end_time&lt;/code&gt;) and SQS configuration can&amp;rsquo;t be used together.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h3 id=&#34;output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;



&lt;div data-shared=&#34;reference/components/output-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;output&lt;/code&gt; block configures a set of components to forward resulting telemetry data to.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send logs to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send metrics to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;traces&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send traces to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You must specify the &lt;code&gt;output&lt;/code&gt; block, but all its arguments are optional.
By default, telemetry data is dropped.
Configure the &lt;code&gt;metrics&lt;/code&gt;, &lt;code&gt;logs&lt;/code&gt;, and &lt;code&gt;traces&lt;/code&gt; arguments accordingly to send telemetry data to other components.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.awss3&lt;/code&gt; doesn&amp;rsquo;t export any fields.&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.awss3&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.awss3&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;p&gt;This example forwards received traces through a batch processor before finally sending it to an OTLP-capable endpoint:&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;// Time range mode:
otelcol.receiver.awss3 &amp;#34;default&amp;#34; {
  start_time = &amp;#34;2024-01-01 01:00&amp;#34;
  end_time = &amp;#34;2024-01-02&amp;#34;

  s3downloader {
    region = &amp;#34;us-west-1&amp;#34;
    s3_bucket = &amp;#34;mybucket&amp;#34;
    s3_prefix = &amp;#34;trace&amp;#34;
    s3_partition = &amp;#34;minute&amp;#34;
  }

  output {
    traces = [otelcol.processor.batch.default.input]
  }
}

// SQS message mode:
otelcol.receiver.awss3 &amp;#34;sqs_traces&amp;#34; {
  s3downloader {
    region = &amp;#34;us-east-1&amp;#34;
    s3_bucket = &amp;#34;mybucket&amp;#34;
    s3_prefix = &amp;#34;mytrace&amp;#34;
  }

  sqs {
    queue_url = &amp;#34;https://sqs.us-east-1.amazonaws.com/123456789012/test-queue&amp;#34;
    region = &amp;#34;us-east-1&amp;#34;
  }

  output {
    traces = [otelcol.processor.batch.default.input]
  }
}

otelcol.processor.batch &amp;#34;default&amp;#34; {
  output {
    metrics = [otelcol.exporter.otlphttp.default.input]
    logs    = [otelcol.exporter.otlphttp.default.input]
    traces  = [otelcol.exporter.otlphttp.default.input]
  }
}

otelcol.exporter.otlphttp &amp;#34;default&amp;#34; {
  client {
    endpoint = sys.env(&amp;#34;&amp;lt;OTLP_ENDPOINT&amp;gt;&amp;#34;)
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.awss3&lt;/code&gt; can accept arguments from the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that export &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-exporters&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolreceiverawss3">&lt;code>otelcol.receiver.awss3&lt;/code>&lt;/h1>
&lt;div data-shared="stability/experimental.md">
&lt;blockquote>
&lt;p>&lt;strong>EXPERIMENTAL&lt;/strong>: This is an &lt;a href="/docs/release-life-cycle/">experimental&lt;/a> component.
Experimental components are subject to frequent breaking changes, and may be removed with no equivalent replacement.
To enable and use an experimental component, you must set the &lt;code>stability.level&lt;/code>
&lt;a href="/docs/alloy/v1.15/reference/cli/run/">flag&lt;/a> to &lt;code>experimental&lt;/code>.&lt;/p></description></item><item><title>otelcol.receiver.cloudflare</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.receiver.cloudflare/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.receiver.cloudflare/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolreceivercloudflare&#34;&gt;&lt;code&gt;otelcol.receiver.cloudflare&lt;/code&gt;&lt;/h1&gt;


&lt;div data-shared=&#34;stability/experimental.md&#34;&gt;
            &lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;EXPERIMENTAL&lt;/strong&gt;: This is an &lt;a href=&#34;/docs/release-life-cycle/&#34;&gt;experimental&lt;/a&gt; component.
Experimental components are subject to frequent breaking changes, and may be removed with no equivalent replacement.
To enable and use an experimental component, you must set the &lt;code&gt;stability.level&lt;/code&gt; 
    &lt;a href=&#34;/docs/alloy/v1.15/reference/cli/run/&#34;&gt;flag&lt;/a&gt; to &lt;code&gt;experimental&lt;/code&gt;.&lt;/p&gt;&lt;/blockquote&gt;
&lt;/div&gt;

        
&lt;p&gt;&lt;code&gt;otelcol.receiver.cloudflare&lt;/code&gt; receives logs sent by Cloudflare &lt;a href=&#34;https://developers.cloudflare.com/logs/logpush/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;LogPush&lt;/a&gt; jobs.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.receiver.cloudflare&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/receiver/cloudflarereceiver&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;cloudflare&lt;/code&gt;&lt;/a&gt; receiver.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.receiver.cloudflare&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.receiver.cloudflare &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  endpoint = &amp;#34;&amp;lt;HOST&amp;gt;:&amp;lt;PORT&amp;gt;&amp;#34;

  output {
    logs = [...]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.receiver.cloudflare&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The &lt;code&gt;&amp;lt;HOST:PORT&amp;gt;&lt;/code&gt; endpoint address on which the receiver awaits requests from Cloudflare.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;secret&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;If this value is set, the receiver expects to see it in any valid requests under the &lt;code&gt;X-CF-Secret&lt;/code&gt; header.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;attributes&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;map[string]string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Sets log attributes from message fields. Only string, boolean, integer, or float fields can be mapped.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;delimiter&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The separator to join nested fields in the log message when setting attributes.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;.&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;timestamp_field&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Log field name that contains timestamp.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;EdgeStartTimestamp&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;timestamp_format&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;One of &lt;code&gt;unix&lt;/code&gt;, &lt;code&gt;unixnano&lt;/code&gt;, or &lt;code&gt;rfc3339&lt;/code&gt;, matching how your LogPush job encodes the timestamp field.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;rfc3339&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;When the &lt;code&gt;attributes&lt;/code&gt; configuration is empty, the receiver will automatically ingest all fields from the log messages as attributes, using the original field names as attribute names.&lt;/p&gt;
&lt;p&gt;Refer to the upstream receiver &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/cloudflarereceiver#configuration&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;documentation&lt;/a&gt; for more details.&lt;/p&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.receiver.cloudflare&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 2;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#output\&amp;#34;\u003e\u003ccode\u003eoutput\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures where to send received telemetry data.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#tls\&amp;#34;\u003e\u003ccode\u003etls\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eCustom server TLS configuration.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures where to send received telemetry data.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Custom server TLS configuration.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;



&lt;div data-shared=&#34;reference/components/output-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;output&lt;/code&gt; block configures a set of components to forward resulting telemetry data to.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send logs to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send metrics to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;traces&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send traces to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You must specify the &lt;code&gt;output&lt;/code&gt; block, but all its arguments are optional.
By default, telemetry data is dropped.
Configure the &lt;code&gt;metrics&lt;/code&gt;, &lt;code&gt;logs&lt;/code&gt;, and &lt;code&gt;traces&lt;/code&gt; arguments accordingly to send telemetry data to other components.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;tls&lt;/code&gt; block configures TLS settings used for a server.
If the &lt;code&gt;tls&lt;/code&gt; block isn&amp;rsquo;t provided, TLS won&amp;rsquo;t be used for connections to the server.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-tls-server-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ca_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the CA file.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ca_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;CA PEM-encoded text to validate the server with.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cert_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS certificate.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cert_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Certificate PEM-encoded text for client authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cipher_suites&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of TLS cipher suites that the TLS transport can use.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;client_ca_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS cert to use by the server to verify a client certificate.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;curve_preferences&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Set of elliptic curves to use in a handshake.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_system_ca_certs_pool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to load the system certificate authorities pool alongside the certificate authority.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS certificate key.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;secret&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Key PEM-encoded text for client authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum acceptable TLS version for connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;TLS 1.3&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;min_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Minimum acceptable TLS version for connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;TLS 1.2&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;reload_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The duration after which the certificate is reloaded.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If &lt;code&gt;reload_interval&lt;/code&gt; is set to &lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;, the certificate never reloaded.&lt;/p&gt;
&lt;p&gt;The following pairs of arguments are mutually exclusive and can&amp;rsquo;t both be set simultaneously:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ca_pem&lt;/code&gt; and &lt;code&gt;ca_file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cert_pem&lt;/code&gt; and &lt;code&gt;cert_file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;key_pem&lt;/code&gt; and &lt;code&gt;key_file&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If &lt;code&gt;cipher_suites&lt;/code&gt; is left blank, a safe default list is used.
Refer to the &lt;a href=&#34;https://go.dev/src/crypto/tls/cipher_suites.go&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Go Cipher Suites documentation&lt;/a&gt; for a list of supported cipher suites.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;client_ca_file&lt;/code&gt; sets the &lt;code&gt;ClientCA&lt;/code&gt; and &lt;code&gt;ClientAuth&lt;/code&gt; to &lt;code&gt;RequireAndVerifyClientCert&lt;/code&gt; in the &lt;code&gt;TLSConfig&lt;/code&gt;.
Refer to the &lt;a href=&#34;https://godoc.org/crypto/tls#Config&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Go TLS documentation&lt;/a&gt; for more information.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;curve_preferences&lt;/code&gt; argument determines the set of elliptic curves to prefer during a handshake in preference order.
If not provided, a default list is used.
The set of elliptic curves available are &lt;code&gt;X25519&lt;/code&gt;, &lt;code&gt;P521&lt;/code&gt;, &lt;code&gt;P256&lt;/code&gt;, and &lt;code&gt;P384&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.cloudflare&lt;/code&gt; doesn&amp;rsquo;t export any fields.&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.cloudflare&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.cloudflare&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;p&gt;The following example receives logs from Cloudflare and forwards them through a batch processor:&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;otelcol.receiver.cloudflare &amp;#34;default&amp;#34; {
  endpoint = &amp;#34;&amp;lt;HOST&amp;gt;:&amp;lt;PORT&amp;gt;&amp;#34;
  secret = &amp;#34;1234567890abcdef1234567890abcdef&amp;#34;
  timestamp_field = &amp;#34;EdgeStartTimestamp&amp;#34;
  timestamp_format = &amp;#34;rfc3339&amp;#34;
  attributes = {
    ClientIP = &amp;#34;http_request.client_ip&amp;#34;,
    ClientRequestURI = &amp;#34;http_request.uri&amp;#34;,
  }

  tls {
    cert_file = &amp;#34;/path/to/cert.pem&amp;#34;
    key_file = &amp;#34;/path/to/key.pem&amp;#34;
  }

  output {
    logs = [otelcol.processor.batch.default.input]
  }
}

otelcol.processor.batch &amp;#34;default&amp;#34; {
  output {
    logs = [otelcol.exporter.otlphttp.default.input]
  }
}

otelcol.exporter.otlphttp &amp;#34;default&amp;#34; {
  client {
    endpoint = env(&amp;#34;&amp;lt;OTLP_ENDPOINT&amp;gt;&amp;#34;)
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Replace the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;&lt;code&gt;&amp;lt;HOST&amp;gt;&lt;/code&gt;&lt;/em&gt;: The hostname or IP address where the receiver listens for Cloudflare LogPush requests.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;code&gt;&amp;lt;PORT&amp;gt;&lt;/code&gt;&lt;/em&gt;: The port number where the receiver listens for Cloudflare LogPush requests.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;code&gt;&amp;lt;OTLP_ENDPOINT&amp;gt;&lt;/code&gt;&lt;/em&gt;: The OTLP endpoint URL for your observability backend.&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.cloudflare&lt;/code&gt; can accept arguments from the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that export &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-exporters&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolreceivercloudflare">&lt;code>otelcol.receiver.cloudflare&lt;/code>&lt;/h1>
&lt;div data-shared="stability/experimental.md">
&lt;blockquote>
&lt;p>&lt;strong>EXPERIMENTAL&lt;/strong>: This is an &lt;a href="/docs/release-life-cycle/">experimental&lt;/a> component.
Experimental components are subject to frequent breaking changes, and may be removed with no equivalent replacement.
To enable and use an experimental component, you must set the &lt;code>stability.level&lt;/code>
&lt;a href="/docs/alloy/v1.15/reference/cli/run/">flag&lt;/a> to &lt;code>experimental&lt;/code>.&lt;/p></description></item><item><title>otelcol.receiver.datadog</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.receiver.datadog/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.receiver.datadog/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolreceiverdatadog&#34;&gt;&lt;code&gt;otelcol.receiver.datadog&lt;/code&gt;&lt;/h1&gt;


&lt;div data-shared=&#34;stability/experimental.md&#34;&gt;
            &lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;EXPERIMENTAL&lt;/strong&gt;: This is an &lt;a href=&#34;/docs/release-life-cycle/&#34;&gt;experimental&lt;/a&gt; component.
Experimental components are subject to frequent breaking changes, and may be removed with no equivalent replacement.
To enable and use an experimental component, you must set the &lt;code&gt;stability.level&lt;/code&gt; 
    &lt;a href=&#34;/docs/alloy/v1.15/reference/cli/run/&#34;&gt;flag&lt;/a&gt; to &lt;code&gt;experimental&lt;/code&gt;.&lt;/p&gt;&lt;/blockquote&gt;
&lt;/div&gt;

        
&lt;p&gt;&lt;code&gt;otelcol.receiver.datadog&lt;/code&gt; accepts Datadog metrics and traces over the network and forwards it to other &lt;code&gt;otelcol.*&lt;/code&gt; components.&lt;/p&gt;
&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.receiver.datadog&lt;/code&gt; components by giving them different labels.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.receiver.datadog&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/receiver/datadogreceiver&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;datadog&lt;/code&gt;&lt;/a&gt; receiver.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.receiver.datadog &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  output {
    metrics = [...]
    traces  = [...]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.receiver.datadog&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;capsule(otelcol.Handler)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Handler from an &lt;code&gt;otelcol.auth&lt;/code&gt; component to use for authenticating requests.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;compression_algorithms&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of compression algorithms the server can accept.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[&amp;quot;&amp;quot;, &amp;quot;gzip&amp;quot;, &amp;quot;zstd&amp;quot;, &amp;quot;zlib&amp;quot;, &amp;quot;snappy&amp;quot;, &amp;quot;deflate&amp;quot;, &amp;quot;lz4&amp;quot;]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;host:port&lt;/code&gt; to listen for traffic on.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;localhost:8126&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_metadata&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Propagate incoming connection metadata to downstream consumers.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;keep_alives_enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether or not HTTP keep-alives are enabled&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_request_body_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum request body size the server will allow.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;20MiB&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;read_timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read timeout for requests of the HTTP server.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;60s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;trace_id_cache_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Cache size for mapping 64-bit to 128-bit trace IDs.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;By default, &lt;code&gt;otelcol.receiver.datadog&lt;/code&gt; listens for HTTP connections on &lt;code&gt;localhost&lt;/code&gt;.
To expose the HTTP server to other machines on your network, configure &lt;code&gt;endpoint&lt;/code&gt; with the IP address to listen on, or &lt;code&gt;0.0.0.0:8126&lt;/code&gt; to listen on all network interfaces.&lt;/p&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.receiver.datadog&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 8;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#output\&amp;#34;\u003e\u003ccode\u003eoutput\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures where to send received telemetry data.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#cors\&amp;#34;\u003e\u003ccode\u003ecors\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures CORS for the HTTP server.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#intake\&amp;#34;\u003e\u003ccode\u003eintake\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the \u003ccode\u003e/intake\u003c/code\u003e endpoint behavior.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eintake\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#proxy\&amp;#34;\u003e\u003ccode\u003eproxy\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the proxy for the \u003ccode\u003e/intake\u003c/code\u003e endpoint.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eintake\u003c/code\u003e \u0026gt; \u003ccode\u003eproxy\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#api\&amp;#34;\u003e\u003ccode\u003eapi\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the Datadog API connection for the intake proxy.\u003c/td\u003e\n              \u003ctd\u003econditional\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#tls\&amp;#34;\u003e\u003ccode\u003etls\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TLS for the HTTP server.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003etls\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#tpm\&amp;#34;\u003e\u003ccode\u003etpm\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TPM settings for the TLS \u003ccode\u003ekey_file\u003c/code\u003e.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures where to send received telemetry data.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#cors&#34;&gt;&lt;code&gt;cors&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures CORS for the HTTP server.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#intake&#34;&gt;&lt;code&gt;intake&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the &lt;code&gt;/intake&lt;/code&gt; endpoint behavior.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;intake&lt;/code&gt; &amp;gt; &lt;a href=&#34;#proxy&#34;&gt;&lt;code&gt;proxy&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the proxy for the &lt;code&gt;/intake&lt;/code&gt; endpoint.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;intake&lt;/code&gt; &amp;gt; &lt;code&gt;proxy&lt;/code&gt; &amp;gt; &lt;a href=&#34;#api&#34;&gt;&lt;code&gt;api&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the Datadog API connection for the intake proxy.&lt;/td&gt;
              &lt;td&gt;conditional&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TLS for the HTTP server.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;tls&lt;/code&gt; &amp;gt; &lt;a href=&#34;#tpm&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TPM settings for the TLS &lt;code&gt;key_file&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;



&lt;div data-shared=&#34;reference/components/output-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;output&lt;/code&gt; block configures a set of components to forward resulting telemetry data to.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send logs to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send metrics to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;traces&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send traces to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You must specify the &lt;code&gt;output&lt;/code&gt; block, but all its arguments are optional.
By default, telemetry data is dropped.
Configure the &lt;code&gt;metrics&lt;/code&gt;, &lt;code&gt;logs&lt;/code&gt;, and &lt;code&gt;traces&lt;/code&gt; arguments accordingly to send telemetry data to other components.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;cors&#34;&gt;&lt;code&gt;cors&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;cors&lt;/code&gt; block configures CORS settings for an HTTP server.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;allowed_origins&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Allowed values for the &lt;code&gt;Origin&lt;/code&gt; header.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;allowed_headers&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Accepted headers from CORS requests.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[&amp;quot;X-Requested-With&amp;quot;]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_age&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Configures the &lt;code&gt;Access-Control-Max-Age&lt;/code&gt; response header.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;code&gt;allowed_headers&lt;/code&gt; argument specifies which headers are acceptable from a CORS request.
The following headers are always implicitly allowed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Accept&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Accept-Language&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Content-Type&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Content-Language&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If &lt;code&gt;allowed_headers&lt;/code&gt; includes &lt;code&gt;&amp;quot;*&amp;quot;&lt;/code&gt;, all headers are permitted.&lt;/p&gt;
&lt;h3 id=&#34;intake&#34;&gt;&lt;code&gt;intake&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;intake&lt;/code&gt; block configures how the &lt;code&gt;/intake&lt;/code&gt; endpoint behaves.
The Datadog Agent uses this endpoint to submit host tags and other metadata.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;behavior&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How the &lt;code&gt;/intake&lt;/code&gt; endpoint behaves: &lt;code&gt;&amp;quot;disable&amp;quot;&lt;/code&gt; or &lt;code&gt;&amp;quot;proxy&amp;quot;&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;Set &lt;code&gt;behavior&lt;/code&gt; to &lt;code&gt;&amp;quot;proxy&amp;quot;&lt;/code&gt; to forward &lt;code&gt;/intake&lt;/code&gt; requests to Datadog&amp;rsquo;s API.
Proxying requires a nested &lt;code&gt;proxy { api { ... } }&lt;/code&gt; block with a Datadog API key.
When set to &lt;code&gt;&amp;quot;disable&amp;quot;&lt;/code&gt;, the endpoint returns an error for any incoming request.&lt;/p&gt;
&lt;h3 id=&#34;proxy&#34;&gt;&lt;code&gt;proxy&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;proxy&lt;/code&gt; block configures how the &lt;code&gt;/intake&lt;/code&gt; proxy operates.
It&amp;rsquo;s only used when &lt;code&gt;behavior&lt;/code&gt; is set to &lt;code&gt;&amp;quot;proxy&amp;quot;&lt;/code&gt;.
If &lt;code&gt;behavior&lt;/code&gt; isn&amp;rsquo;t &lt;code&gt;&amp;quot;proxy&amp;quot;&lt;/code&gt;, this block is ignored.&lt;/p&gt;
&lt;p&gt;This block has no arguments and is configured with the nested [&lt;code&gt;api&lt;/code&gt;][api] block.&lt;/p&gt;
&lt;h3 id=&#34;api&#34;&gt;&lt;code&gt;api&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;api&lt;/code&gt; block configures the Datadog API connection used by the intake proxy.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;secret&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Datadog API key.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;site&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Datadog site to send data to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;datadoghq.com&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fail_on_invalid_key&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Exit on startup if the API key is invalid.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h3 id=&#34;tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;tls&lt;/code&gt; block configures TLS settings used for a server.
If the &lt;code&gt;tls&lt;/code&gt; block isn&amp;rsquo;t provided, TLS won&amp;rsquo;t be used for connections to the server.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-tls-server-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ca_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the CA file.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ca_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;CA PEM-encoded text to validate the server with.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cert_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS certificate.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cert_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Certificate PEM-encoded text for client authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cipher_suites&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of TLS cipher suites that the TLS transport can use.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;client_ca_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS cert to use by the server to verify a client certificate.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;curve_preferences&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Set of elliptic curves to use in a handshake.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_system_ca_certs_pool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to load the system certificate authorities pool alongside the certificate authority.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS certificate key.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;secret&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Key PEM-encoded text for client authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum acceptable TLS version for connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;TLS 1.3&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;min_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Minimum acceptable TLS version for connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;TLS 1.2&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;reload_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The duration after which the certificate is reloaded.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If &lt;code&gt;reload_interval&lt;/code&gt; is set to &lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;, the certificate never reloaded.&lt;/p&gt;
&lt;p&gt;The following pairs of arguments are mutually exclusive and can&amp;rsquo;t both be set simultaneously:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ca_pem&lt;/code&gt; and &lt;code&gt;ca_file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cert_pem&lt;/code&gt; and &lt;code&gt;cert_file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;key_pem&lt;/code&gt; and &lt;code&gt;key_file&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If &lt;code&gt;cipher_suites&lt;/code&gt; is left blank, a safe default list is used.
Refer to the &lt;a href=&#34;https://go.dev/src/crypto/tls/cipher_suites.go&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Go Cipher Suites documentation&lt;/a&gt; for a list of supported cipher suites.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;client_ca_file&lt;/code&gt; sets the &lt;code&gt;ClientCA&lt;/code&gt; and &lt;code&gt;ClientAuth&lt;/code&gt; to &lt;code&gt;RequireAndVerifyClientCert&lt;/code&gt; in the &lt;code&gt;TLSConfig&lt;/code&gt;.
Refer to the &lt;a href=&#34;https://godoc.org/crypto/tls#Config&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Go TLS documentation&lt;/a&gt; for more information.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;curve_preferences&lt;/code&gt; argument determines the set of elliptic curves to prefer during a handshake in preference order.
If not provided, a default list is used.
The set of elliptic curves available are &lt;code&gt;X25519&lt;/code&gt;, &lt;code&gt;P521&lt;/code&gt;, &lt;code&gt;P256&lt;/code&gt;, and &lt;code&gt;P384&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;tpm&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;tpm&lt;/code&gt; block configures retrieving the TLS &lt;code&gt;key_file&lt;/code&gt; from a trusted device.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-tls-tpm-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The authorization value used to authenticate the TPM device.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Load the &lt;code&gt;tls.key_file&lt;/code&gt; from TPM.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;owner_auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The owner authorization value used to authenticate the TPM device.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;path&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TPM device or Unix domain socket.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;a href=&#34;https://trustedcomputinggroup.org/resource/trusted-platform-module-tpm-summary/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;trusted platform module&lt;/a&gt; (TPM) configuration can be used for loading TLS key from TPM. Currently only TSS2 format is supported.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;path&lt;/code&gt; attribute is not supported on Windows.&lt;/p&gt;
&lt;p&gt;In the following example, the private key &lt;code&gt;my-tss2-key.key&lt;/code&gt; in TSS2 format is loaded from the TPM device &lt;code&gt;/dev/tmprm0&lt;/code&gt;:&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;otelcol.example.component &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
    ...
    tls {
        ...
        key_file = &amp;#34;my-tss2-key.key&amp;#34;
        tpm {
            enabled = true
            path = &amp;#34;/dev/tpmrm0&amp;#34;
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

        
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.datadog&lt;/code&gt; doesn&amp;rsquo;t export any fields.&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.datadog&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.datadog&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;p&gt;This example forwards received telemetry through a batch processor before finally sending it to an OTLP-capable endpoint:&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;otelcol.receiver.datadog &amp;#34;default&amp;#34; {
  output {
    metrics = [otelcol.processor.batch.default.input]
    traces  = [otelcol.processor.batch.default.input]
  }
}

otelcol.processor.batch &amp;#34;default&amp;#34; {
  output {
    metrics = [otelcol.exporter.otlphttp.default.input]
    traces  = [otelcol.exporter.otlphttp.default.input]
  }
}

otelcol.exporter.otlphttp &amp;#34;default&amp;#34; {
  client {
    endpoint = sys.env(&amp;#34;OTLP_ENDPOINT&amp;#34;)
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;proxy-intake-requests-to-datadog&#34;&gt;Proxy &lt;code&gt;/intake&lt;/code&gt; requests to Datadog&lt;/h2&gt;
&lt;p&gt;You can configure the receiver to forward &lt;code&gt;/intake&lt;/code&gt; requests (host tags and metadata) to Datadog&amp;rsquo;s API while processing metrics and traces locally:&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;otelcol.receiver.datadog &amp;#34;default&amp;#34; {
  intake {
    behavior = &amp;#34;proxy&amp;#34;
    proxy {
      api {
        key  = sys.env(&amp;#34;DD_API_KEY&amp;#34;)
        site = &amp;#34;datadoghq.eu&amp;#34;
      }
    }
  }

  output {
    metrics = [otelcol.processor.batch.default.input]
    traces  = [otelcol.processor.batch.default.input]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;enable-authentication&#34;&gt;Enable authentication&lt;/h2&gt;
&lt;p&gt;You can create a &lt;code&gt;otelcol.receiver.datadog&lt;/code&gt; component that requires authentication for requests.
This is useful for limiting who can push data to the server.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Not all OpenTelemetry Collector authentication plugins support receiver authentication.
Refer to the 
    &lt;a href=&#34;/docs/alloy/v1.15/reference/components/otelcol/&#34;&gt;documentation&lt;/a&gt; for each &lt;code&gt;otelcol.auth.*&lt;/code&gt; component to determine its compatibility.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&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;otelcol.receiver.datadog &amp;#34;default&amp;#34; {
  output {
    metrics = [otelcol.processor.batch.default.input]
    traces  = [otelcol.processor.batch.default.input]
  }
  auth = otelcol.auth.basic.creds.handler
}

otelcol.auth.basic &amp;#34;creds&amp;#34; {
    username = sys.env(&amp;#34;&amp;lt;USERNAME&amp;gt;&amp;#34;)
    password = sys.env(&amp;#34;&amp;lt;PASSWORD&amp;gt;&amp;#34;)
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.datadog&lt;/code&gt; can accept arguments from the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that export &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-exporters&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolreceiverdatadog">&lt;code>otelcol.receiver.datadog&lt;/code>&lt;/h1>
&lt;div data-shared="stability/experimental.md">
&lt;blockquote>
&lt;p>&lt;strong>EXPERIMENTAL&lt;/strong>: This is an &lt;a href="/docs/release-life-cycle/">experimental&lt;/a> component.
Experimental components are subject to frequent breaking changes, and may be removed with no equivalent replacement.
To enable and use an experimental component, you must set the &lt;code>stability.level&lt;/code>
&lt;a href="/docs/alloy/v1.15/reference/cli/run/">flag&lt;/a> to &lt;code>experimental&lt;/code>.&lt;/p></description></item><item><title>otelcol.receiver.faro</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.receiver.faro/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.receiver.faro/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolreceiverfaro&#34;&gt;&lt;code&gt;otelcol.receiver.faro&lt;/code&gt;&lt;/h1&gt;


&lt;div data-shared=&#34;stability/experimental.md&#34;&gt;
            &lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;EXPERIMENTAL&lt;/strong&gt;: This is an &lt;a href=&#34;/docs/release-life-cycle/&#34;&gt;experimental&lt;/a&gt; component.
Experimental components are subject to frequent breaking changes, and may be removed with no equivalent replacement.
To enable and use an experimental component, you must set the &lt;code&gt;stability.level&lt;/code&gt; 
    &lt;a href=&#34;/docs/alloy/v1.15/reference/cli/run/&#34;&gt;flag&lt;/a&gt; to &lt;code&gt;experimental&lt;/code&gt;.&lt;/p&gt;&lt;/blockquote&gt;
&lt;/div&gt;

        
&lt;p&gt;&lt;code&gt;otelcol.receiver.faro&lt;/code&gt; accepts telemetry data from the &lt;a href=&#34;https://github.com/grafana/faro-web-sdk&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Grafana Faro Web SDK&lt;/a&gt; and forwards it to other &lt;code&gt;otelcol.*&lt;/code&gt; components.&lt;/p&gt;
&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.receiver.faro&lt;/code&gt; components by giving them different labels.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-faro-component-note.md&#34;&gt;
            

&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;This component is necessary for &lt;a href=&#34;/products/cloud/frontend-observability-for-real-user-monitoring/&#34;&gt;Grafana Cloud Frontend Observability&lt;/a&gt; to work.
For more information, refer to the &lt;a href=&#34;/docs/alloy/latest/collect/choose-component/#frontend-telemetry&#34;&gt;Choose a component&lt;/a&gt; guide.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.receiver.faro&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/receiver/faroreceiver&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;faro&lt;/code&gt;&lt;/a&gt; receiver.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.receiver.faro &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  output {
    logs   = [...]
    traces = [...]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.receiver.faro&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;capsule(otelcol.Handler)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Handler from an &lt;code&gt;otelcol.auth&lt;/code&gt; component to use for authenticating requests.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;compression_algorithms&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of compression algorithms the server can accept.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[&amp;quot;&amp;quot;, &amp;quot;gzip&amp;quot;, &amp;quot;zstd&amp;quot;, &amp;quot;zlib&amp;quot;, &amp;quot;snappy&amp;quot;, &amp;quot;deflate&amp;quot;, &amp;quot;lz4&amp;quot;]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;host:port&lt;/code&gt; to listen for traffic on.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;localhost:8080&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_metadata&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Propagate incoming connection metadata to downstream consumers.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;keep_alives_enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether or not HTTP keep-alives are enabled&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_request_body_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum request body size the server will allow.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;20MiB&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;By default, &lt;code&gt;otelcol.receiver.faro&lt;/code&gt; listens for HTTP connections on &lt;code&gt;localhost&lt;/code&gt;.
To expose the HTTP server to other machines on your network, configure &lt;code&gt;endpoint&lt;/code&gt; with the IP address to listen on, or &lt;code&gt;0.0.0.0:8080&lt;/code&gt; to listen on all network interfaces.&lt;/p&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.receiver.faro&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 5;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#output\&amp;#34;\u003e\u003ccode\u003eoutput\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures where to send received telemetry data.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#cors\&amp;#34;\u003e\u003ccode\u003ecors\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures CORS for the HTTP server.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#tls\&amp;#34;\u003e\u003ccode\u003etls\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TLS for the HTTP server.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003etls\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#tpm\&amp;#34;\u003e\u003ccode\u003etpm\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TPM settings for the TLS \u003ccode\u003ekey_file\u003c/code\u003e.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures where to send received telemetry data.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#cors&#34;&gt;&lt;code&gt;cors&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures CORS for the HTTP server.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TLS for the HTTP server.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;tls&lt;/code&gt; &amp;gt; &lt;a href=&#34;#tpm&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TPM settings for the TLS &lt;code&gt;key_file&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;



&lt;div data-shared=&#34;reference/components/output-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;output&lt;/code&gt; block configures a set of components to forward resulting telemetry data to.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send logs to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send metrics to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;traces&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send traces to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You must specify the &lt;code&gt;output&lt;/code&gt; block, but all its arguments are optional.
By default, telemetry data is dropped.
Configure the &lt;code&gt;metrics&lt;/code&gt;, &lt;code&gt;logs&lt;/code&gt;, and &lt;code&gt;traces&lt;/code&gt; arguments accordingly to send telemetry data to other components.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;cors&#34;&gt;&lt;code&gt;cors&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;cors&lt;/code&gt; block configures CORS settings for an HTTP server.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;allowed_origins&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Allowed values for the &lt;code&gt;Origin&lt;/code&gt; header.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;allowed_headers&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Accepted headers from CORS requests.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[&amp;quot;X-Requested-With&amp;quot;]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_age&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Configures the &lt;code&gt;Access-Control-Max-Age&lt;/code&gt; response header.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;code&gt;allowed_headers&lt;/code&gt; argument specifies which headers are acceptable from a CORS request.
The following headers are always implicitly allowed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Accept&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Accept-Language&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Content-Type&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Content-Language&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If &lt;code&gt;allowed_headers&lt;/code&gt; includes &lt;code&gt;&amp;quot;*&amp;quot;&lt;/code&gt;, all headers are permitted.&lt;/p&gt;
&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h3 id=&#34;tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;tls&lt;/code&gt; block configures TLS settings used for a server.
If the &lt;code&gt;tls&lt;/code&gt; block isn&amp;rsquo;t provided, TLS won&amp;rsquo;t be used for connections to the server.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-tls-server-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ca_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the CA file.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ca_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;CA PEM-encoded text to validate the server with.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cert_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS certificate.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cert_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Certificate PEM-encoded text for client authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cipher_suites&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of TLS cipher suites that the TLS transport can use.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;client_ca_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS cert to use by the server to verify a client certificate.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;curve_preferences&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Set of elliptic curves to use in a handshake.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_system_ca_certs_pool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to load the system certificate authorities pool alongside the certificate authority.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS certificate key.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;secret&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Key PEM-encoded text for client authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum acceptable TLS version for connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;TLS 1.3&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;min_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Minimum acceptable TLS version for connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;TLS 1.2&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;reload_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The duration after which the certificate is reloaded.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If &lt;code&gt;reload_interval&lt;/code&gt; is set to &lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;, the certificate never reloaded.&lt;/p&gt;
&lt;p&gt;The following pairs of arguments are mutually exclusive and can&amp;rsquo;t both be set simultaneously:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ca_pem&lt;/code&gt; and &lt;code&gt;ca_file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cert_pem&lt;/code&gt; and &lt;code&gt;cert_file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;key_pem&lt;/code&gt; and &lt;code&gt;key_file&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If &lt;code&gt;cipher_suites&lt;/code&gt; is left blank, a safe default list is used.
Refer to the &lt;a href=&#34;https://go.dev/src/crypto/tls/cipher_suites.go&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Go Cipher Suites documentation&lt;/a&gt; for a list of supported cipher suites.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;client_ca_file&lt;/code&gt; sets the &lt;code&gt;ClientCA&lt;/code&gt; and &lt;code&gt;ClientAuth&lt;/code&gt; to &lt;code&gt;RequireAndVerifyClientCert&lt;/code&gt; in the &lt;code&gt;TLSConfig&lt;/code&gt;.
Refer to the &lt;a href=&#34;https://godoc.org/crypto/tls#Config&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Go TLS documentation&lt;/a&gt; for more information.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;curve_preferences&lt;/code&gt; argument determines the set of elliptic curves to prefer during a handshake in preference order.
If not provided, a default list is used.
The set of elliptic curves available are &lt;code&gt;X25519&lt;/code&gt;, &lt;code&gt;P521&lt;/code&gt;, &lt;code&gt;P256&lt;/code&gt;, and &lt;code&gt;P384&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;tpm&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;tpm&lt;/code&gt; block configures retrieving the TLS &lt;code&gt;key_file&lt;/code&gt; from a trusted device.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-tls-tpm-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The authorization value used to authenticate the TPM device.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Load the &lt;code&gt;tls.key_file&lt;/code&gt; from TPM.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;owner_auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The owner authorization value used to authenticate the TPM device.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;path&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TPM device or Unix domain socket.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;a href=&#34;https://trustedcomputinggroup.org/resource/trusted-platform-module-tpm-summary/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;trusted platform module&lt;/a&gt; (TPM) configuration can be used for loading TLS key from TPM. Currently only TSS2 format is supported.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;path&lt;/code&gt; attribute is not supported on Windows.&lt;/p&gt;
&lt;p&gt;In the following example, the private key &lt;code&gt;my-tss2-key.key&lt;/code&gt; in TSS2 format is loaded from the TPM device &lt;code&gt;/dev/tmprm0&lt;/code&gt;:&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;otelcol.example.component &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
    ...
    tls {
        ...
        key_file = &amp;#34;my-tss2-key.key&amp;#34;
        tpm {
            enabled = true
            path = &amp;#34;/dev/tpmrm0&amp;#34;
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

        
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.faro&lt;/code&gt; doesn&amp;rsquo;t export any fields.&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.faro&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.faro&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;examples&#34;&gt;Examples&lt;/h2&gt;
&lt;p&gt;This example forwards received telemetry through a batch processor before finally sending it to an OTLP-capable endpoint:&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;otelcol.receiver.faro &amp;#34;default&amp;#34; {
  output {
    logs   = [otelcol.processor.batch.default.input]
    traces = [otelcol.processor.batch.default.input]
  }
}

otelcol.processor.batch &amp;#34;default&amp;#34; {
  output {
    logs   = [otelcol.exporter.faro.default.input]
    traces = [otelcol.exporter.faro.default.input]
  }
}

otelcol.exporter.faro &amp;#34;default&amp;#34; {
  client {
    endpoint = &amp;#34;&amp;lt;FARO_COLLECTOR_ADDRESS&amp;gt;&amp;#34;
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Replace the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;&lt;code&gt;&amp;lt;FARO_COLLECTOR_ADDRESS&amp;gt;&lt;/code&gt;&lt;/em&gt;: The address of the Faro-compatible server to send data to.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;enable-tls&#34;&gt;Enable TLS&lt;/h3&gt;
&lt;p&gt;You can configure &lt;code&gt;otelcol.receiver.faro&lt;/code&gt; to use TLS for added security:&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;otelcol.receiver.faro &amp;#34;default&amp;#34; {
  endpoint = &amp;#34;localhost:8443&amp;#34;
  
  tls {
    cert_file = &amp;#34;/path/to/cert.pem&amp;#34;
    key_file  = &amp;#34;/path/to/key.pem&amp;#34;
  }
  
  output {
    logs   = [otelcol.processor.batch.default.input]
    traces = [otelcol.processor.batch.default.input]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;enable-authentication&#34;&gt;Enable authentication&lt;/h3&gt;
&lt;p&gt;You can create a &lt;code&gt;otelcol.receiver.faro&lt;/code&gt; component that requires authentication for requests.
This is useful for limiting who can push data to the server.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Not all OpenTelemetry Collector authentication plugins support receiver authentication.
Refer to the 
    &lt;a href=&#34;/docs/alloy/v1.15/reference/components/otelcol/&#34;&gt;documentation&lt;/a&gt; for each &lt;code&gt;otelcol.auth.*&lt;/code&gt; component to determine its compatibility.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&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;otelcol.receiver.faro &amp;#34;default&amp;#34; {
  auth     = otelcol.auth.basic.creds.handler
  
  output {
    logs   = [otelcol.processor.batch.default.input]
    traces = [otelcol.processor.batch.default.input]
  }
}

otelcol.auth.basic &amp;#34;creds&amp;#34; {
  username = sys.env(&amp;#34;FARO_USERNAME&amp;#34;)
  password = sys.env(&amp;#34;FARO_PASSWORD&amp;#34;)
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;configure-cors&#34;&gt;Configure CORS&lt;/h3&gt;
&lt;p&gt;You can configure CORS settings to allow web applications to send telemetry data from browsers:&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;otelcol.receiver.faro &amp;#34;default&amp;#34; {
  cors {
    allowed_origins = [&amp;#34;https://my-webapp.example.com&amp;#34;, &amp;#34;https://staging.example.com&amp;#34;]
    allowed_headers = [&amp;#34;Content-Type&amp;#34;, &amp;#34;X-Custom-Header&amp;#34;]
    max_age         = 3600
  }
  
  output {
    logs   = [otelcol.processor.batch.default.input]
    traces = [otelcol.processor.batch.default.input]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.faro&lt;/code&gt; can accept arguments from the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that export &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-exporters&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolreceiverfaro">&lt;code>otelcol.receiver.faro&lt;/code>&lt;/h1>
&lt;div data-shared="stability/experimental.md">
&lt;blockquote>
&lt;p>&lt;strong>EXPERIMENTAL&lt;/strong>: This is an &lt;a href="/docs/release-life-cycle/">experimental&lt;/a> component.
Experimental components are subject to frequent breaking changes, and may be removed with no equivalent replacement.
To enable and use an experimental component, you must set the &lt;code>stability.level&lt;/code>
&lt;a href="/docs/alloy/v1.15/reference/cli/run/">flag&lt;/a> to &lt;code>experimental&lt;/code>.&lt;/p></description></item><item><title>otelcol.receiver.file_stats</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.receiver.file_stats/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.receiver.file_stats/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolreceiverfile_stats&#34;&gt;&lt;code&gt;otelcol.receiver.file_stats&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.file_stats&lt;/code&gt; collects metrics from files and folders specified with a glob pattern.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.receiver.file_stats&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/receiver/filestatsreceiver&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;filestats&lt;/code&gt;&lt;/a&gt; receiver.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;Multiple &lt;code&gt;otelcol.receiver.file_stats&lt;/code&gt; components can be specified by giving them different labels.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-warning&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Warning&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.receiver.file_stats&lt;/code&gt; only works on macOS, Linux, and Windows.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.receiver.file_stats &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  include = &amp;#34;GLOB_PATTERN&amp;#34;

  output {
    metrics = [...]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.receiver.file_stats&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Glob path for paths to collect stats from.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;collection_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How often to collect statistics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;1m&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;initial_delay&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Initial time to wait before collecting statistics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;1s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Timeout for a collection; &lt;code&gt;0s&lt;/code&gt; means no timeout.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;include&lt;/code&gt; is a glob pattern that specifies which paths (files and folders) to collect stats from.
A &lt;code&gt;*&lt;/code&gt; character matches entries in a directory, while &lt;code&gt;**&lt;/code&gt; includes subdirectories.
For example, &lt;code&gt;/var/log/**/*.log&lt;/code&gt; matches all files and directories ending in &lt;code&gt;.log&lt;/code&gt; recursively inside &lt;code&gt;/var/log&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;timeout&lt;/code&gt; argument controls the timeout for each collection specified by the &lt;code&gt;collection_interval&lt;/code&gt;.
The timeout applies to the entire collection process across all paths matched by the &lt;code&gt;include&lt;/code&gt; argument.&lt;/p&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.receiver.file_stats&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 15;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#output\&amp;#34;\u003e\u003ccode\u003eoutput\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures where to send received telemetry data.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#metrics\&amp;#34;\u003e\u003ccode\u003emetrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures which metrics will be sent to downstream components.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003emetrics\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#fileatime\&amp;#34;\u003e\u003ccode\u003efile.atime\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the \u003ccode\u003efile.atime\u003c/code\u003e metric.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003emetrics\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#filecount\&amp;#34;\u003e\u003ccode\u003efile.count\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the \u003ccode\u003efile.count\u003c/code\u003e metric.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003emetrics\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#filectime\&amp;#34;\u003e\u003ccode\u003efile.ctime\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the \u003ccode\u003efile.ctime\u003c/code\u003e metric.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003emetrics\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#filemtime\&amp;#34;\u003e\u003ccode\u003efile.mtime\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the \u003ccode\u003efile.mtime\u003c/code\u003e metric.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003emetrics\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#filesize\&amp;#34;\u003e\u003ccode\u003efile.size\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the \u003ccode\u003efile.size\u003c/code\u003e metric.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#resource_attributes\&amp;#34;\u003e\u003ccode\u003eresource_attributes\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures resource attributes for metrics sent to downstream components.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eresource_attributes\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#filename\&amp;#34;\u003e\u003ccode\u003efile.name\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the \u003ccode\u003efile.name\u003c/code\u003e resource attribute.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eresource_attributes\u003c/code\u003e \u0026gt; \u003ccode\u003efile.name\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#metrics_exclude\&amp;#34;\u003e\u003ccode\u003emetrics_exclude\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eMetrics to exclude the \u003ccode\u003efile.name\u003c/code\u003e resource attribute from.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eresource_attributes\u003c/code\u003e \u0026gt; \u003ccode\u003efile.name\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#metrics_include\&amp;#34;\u003e\u003ccode\u003emetrics_include\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eMetrics to include the \u003ccode\u003efile.name\u003c/code\u003e resource attribute in.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eresource_attributes\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#filepath\&amp;#34;\u003e\u003ccode\u003efile.path\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the \u003ccode\u003efile.path\u003c/code\u003e resource attribute.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eresource_attributes\u003c/code\u003e \u0026gt; \u003ccode\u003efile.path\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#metrics_exclude\&amp;#34;\u003e\u003ccode\u003emetrics_exclude\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eMetrics to exclude the \u003ccode\u003efile.path\u003c/code\u003e resource attribute from.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eresource_attributes\u003c/code\u003e \u0026gt; \u003ccode\u003efile.path\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#metrics_include\&amp;#34;\u003e\u003ccode\u003emetrics_include\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eMetrics to include the \u003ccode\u003efile.path\u003c/code\u003e resource attribute in.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures where to send received telemetry data.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#metrics&#34;&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures which metrics will be sent to downstream components.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics&lt;/code&gt; &amp;gt; &lt;a href=&#34;#fileatime&#34;&gt;&lt;code&gt;file.atime&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the &lt;code&gt;file.atime&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics&lt;/code&gt; &amp;gt; &lt;a href=&#34;#filecount&#34;&gt;&lt;code&gt;file.count&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the &lt;code&gt;file.count&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics&lt;/code&gt; &amp;gt; &lt;a href=&#34;#filectime&#34;&gt;&lt;code&gt;file.ctime&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the &lt;code&gt;file.ctime&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics&lt;/code&gt; &amp;gt; &lt;a href=&#34;#filemtime&#34;&gt;&lt;code&gt;file.mtime&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the &lt;code&gt;file.mtime&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics&lt;/code&gt; &amp;gt; &lt;a href=&#34;#filesize&#34;&gt;&lt;code&gt;file.size&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the &lt;code&gt;file.size&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#resource_attributes&#34;&gt;&lt;code&gt;resource_attributes&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures resource attributes for metrics sent to downstream components.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;resource_attributes&lt;/code&gt; &amp;gt; &lt;a href=&#34;#filename&#34;&gt;&lt;code&gt;file.name&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the &lt;code&gt;file.name&lt;/code&gt; resource attribute.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;resource_attributes&lt;/code&gt; &amp;gt; &lt;code&gt;file.name&lt;/code&gt; &amp;gt; &lt;a href=&#34;#metrics_exclude&#34;&gt;&lt;code&gt;metrics_exclude&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Metrics to exclude the &lt;code&gt;file.name&lt;/code&gt; resource attribute from.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;resource_attributes&lt;/code&gt; &amp;gt; &lt;code&gt;file.name&lt;/code&gt; &amp;gt; &lt;a href=&#34;#metrics_include&#34;&gt;&lt;code&gt;metrics_include&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Metrics to include the &lt;code&gt;file.name&lt;/code&gt; resource attribute in.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;resource_attributes&lt;/code&gt; &amp;gt; &lt;a href=&#34;#filepath&#34;&gt;&lt;code&gt;file.path&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the &lt;code&gt;file.path&lt;/code&gt; resource attribute.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;resource_attributes&lt;/code&gt; &amp;gt; &lt;code&gt;file.path&lt;/code&gt; &amp;gt; &lt;a href=&#34;#metrics_exclude&#34;&gt;&lt;code&gt;metrics_exclude&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Metrics to exclude the &lt;code&gt;file.path&lt;/code&gt; resource attribute from.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;resource_attributes&lt;/code&gt; &amp;gt; &lt;code&gt;file.path&lt;/code&gt; &amp;gt; &lt;a href=&#34;#metrics_include&#34;&gt;&lt;code&gt;metrics_include&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Metrics to include the &lt;code&gt;file.path&lt;/code&gt; resource attribute in.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;



&lt;div data-shared=&#34;reference/components/output-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;output&lt;/code&gt; block configures a set of components to forward resulting telemetry data to.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send logs to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send metrics to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;traces&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send traces to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You must specify the &lt;code&gt;output&lt;/code&gt; block, but all its arguments are optional.
By default, telemetry data is dropped.
Configure the &lt;code&gt;metrics&lt;/code&gt;, &lt;code&gt;logs&lt;/code&gt;, and &lt;code&gt;traces&lt;/code&gt; arguments accordingly to send telemetry data to other components.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h3 id=&#34;metrics&#34;&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;metrics&lt;/code&gt; block configures the set of metrics that will be sent to downstream components.
It accepts no arguments, but contains other blocks for individual metrics:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The [&lt;code&gt;file.atime&lt;/code&gt;][file.atime] block&lt;/li&gt;
&lt;li&gt;The [&lt;code&gt;file.count&lt;/code&gt;][file.count] block&lt;/li&gt;
&lt;li&gt;The [&lt;code&gt;file.ctime&lt;/code&gt;][file.ctime] block&lt;/li&gt;
&lt;li&gt;The [&lt;code&gt;file.mtime&lt;/code&gt;][file.mtime] block&lt;/li&gt;
&lt;li&gt;The [&lt;code&gt;file.size&lt;/code&gt;][file.size] block&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Refer to the documentation of individual metric blocks for whether that metric is enabled by default.&lt;/p&gt;
&lt;h3 id=&#34;fileatime&#34;&gt;&lt;code&gt;file.atime&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;file.atime&lt;/code&gt; block configures the &lt;code&gt;file.atime&lt;/code&gt; metric.
&lt;code&gt;file.atime&lt;/code&gt; tracks the elapsed time since the last access of the file or folder in Unix seconds since the epoch.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to collect the &lt;code&gt;file.atime&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;filecount&#34;&gt;&lt;code&gt;file.count&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;file.count&lt;/code&gt; block configures the &lt;code&gt;file.count&lt;/code&gt; metric.
&lt;code&gt;file.count&lt;/code&gt; tracks the number of files and folders in the specified glob pattern.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to collect the &lt;code&gt;file.count&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;filectime&#34;&gt;&lt;code&gt;file.ctime&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;file.ctime&lt;/code&gt; block configures the &lt;code&gt;file.ctime&lt;/code&gt; metric.
&lt;code&gt;file.ctime&lt;/code&gt; tracks the elapsed time since the last change of the file or folder in Unix seconds since the epoch.
Changes include permissions, ownership, and timestamps.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to collect the &lt;code&gt;file.ctime&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;filemtime&#34;&gt;&lt;code&gt;file.mtime&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;file.mtime&lt;/code&gt; block configures the &lt;code&gt;file.mtime&lt;/code&gt; metric.
&lt;code&gt;file.mtime&lt;/code&gt; tracks the elapsed time since the last modification of the file or folder in Unix seconds since the epoch.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to collect the &lt;code&gt;file.mtime&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;filesize&#34;&gt;&lt;code&gt;file.size&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;file.size&lt;/code&gt; block configures the &lt;code&gt;file.size&lt;/code&gt; metric.
&lt;code&gt;file.size&lt;/code&gt; tracks the size of the file or folder in bytes.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to collect the &lt;code&gt;file.size&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;resource_attributes&#34;&gt;&lt;code&gt;resource_attributes&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;resource_attributes&lt;/code&gt; block configures resource attributes for metrics sent to downstream components.
It accepts no arguments, but contains other blocks for configuring individual resource attributes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The [&lt;code&gt;file.name&lt;/code&gt;][file.name] block&lt;/li&gt;
&lt;li&gt;The [&lt;code&gt;file.path&lt;/code&gt;][file.path] block&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Refer to the documentation of individual resource attribute blocks for whether that resource attribute is enabled by default.&lt;/p&gt;
&lt;h3 id=&#34;filename&#34;&gt;&lt;code&gt;file.name&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;file.name&lt;/code&gt; block configures the &lt;code&gt;file.name&lt;/code&gt; resource attribute.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to include the &lt;code&gt;file.name&lt;/code&gt; resource attribute.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;When &lt;code&gt;enabled&lt;/code&gt; is true, the &lt;code&gt;file.name&lt;/code&gt; attribute is included in all metrics.&lt;/p&gt;
&lt;p&gt;The children blocks &lt;code&gt;metrics_include&lt;/code&gt; and &lt;code&gt;metrics_exclude&lt;/code&gt; can be used to further filter which metrics are given the &lt;code&gt;file.name&lt;/code&gt; attribute.
If a given metric matches all the &lt;code&gt;metrics_include&lt;/code&gt; blocks and none of the &lt;code&gt;metrics_exclude&lt;/code&gt; blocks, the &lt;code&gt;file.name&lt;/code&gt; attribute is added.&lt;/p&gt;
&lt;h3 id=&#34;metrics_exclude&#34;&gt;&lt;code&gt;metrics_exclude&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;metrics_exclude&lt;/code&gt; block configures a filter for excluding metrics.
The &lt;code&gt;metrics_exclude&lt;/code&gt; block may be specified multiple times.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;strict&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The exact name of the metric to exclude.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes*&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;regexp&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A regular expression for the metrics to exclude.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes*&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;Exactly one of &lt;code&gt;strict&lt;/code&gt; or &lt;code&gt;regexp&lt;/code&gt; must be specified.&lt;/p&gt;
&lt;h3 id=&#34;metrics_include&#34;&gt;&lt;code&gt;metrics_include&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;metrics_include&lt;/code&gt; block configures a filter for matching metrics.
The &lt;code&gt;metrics_include&lt;/code&gt; block may be specified multiple times.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;strict&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The exact name of the metric to include.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes*&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;regexp&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A regular expression for the metrics to include.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes*&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;Exactly one of &lt;code&gt;strict&lt;/code&gt; or &lt;code&gt;regexp&lt;/code&gt; must be specified.&lt;/p&gt;
&lt;h3 id=&#34;filepath&#34;&gt;&lt;code&gt;file.path&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;file.path&lt;/code&gt; block configures the &lt;code&gt;file.path&lt;/code&gt; resource attribute.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to include the &lt;code&gt;file.path&lt;/code&gt; resource attribute.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;When &lt;code&gt;enabled&lt;/code&gt; is true, the &lt;code&gt;file.path&lt;/code&gt; attribute is included in all metrics.
The children blocks &lt;code&gt;metrics_include&lt;/code&gt; and &lt;code&gt;metrics_exclude&lt;/code&gt; can be used to further filter which metrics are given the &lt;code&gt;file.path&lt;/code&gt; attribute.
If a given metric matches all the &lt;code&gt;metrics_include&lt;/code&gt; blocks and none of the &lt;code&gt;metrics_exclude&lt;/code&gt; blocks, the &lt;code&gt;file.path&lt;/code&gt; attribute is added.&lt;/p&gt;
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.file_stats&lt;/code&gt; doesn&amp;rsquo;t export any fields.&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.file_stats&lt;/code&gt; is reported as unhealthy when:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It&amp;rsquo;s given an invalid configuration.&lt;/li&gt;
&lt;li&gt;It runs on an unsupported operating system.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.file_stats&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;p&gt;This example forwards file stats of files and folders with the &lt;code&gt;.log&lt;/code&gt; extension in &lt;code&gt;/var/log&lt;/code&gt; through a batch processor before finally sending it to an OTLP-capable endpoint:&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;otelcol.receiver.file_stats &amp;#34;default&amp;#34; {
  include = &amp;#34;/var/log/**/*.log&amp;#34;

  output {
    metrics = [otelcol.processor.batch.default.input]
  }
}

otelcol.processor.batch &amp;#34;default&amp;#34; {
  output {
    metrics = [otelcol.exporter.otlphttp.default.input]
  }
}

otelcol.exporter.otlphttp &amp;#34;default&amp;#34; {
  client {
    endpoint = sys.env(&amp;#34;OTLP_ENDPOINT&amp;#34;)
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.file_stats&lt;/code&gt; can accept arguments from the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that export &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-exporters&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolreceiverfile_stats">&lt;code>otelcol.receiver.file_stats&lt;/code>&lt;/h1>
&lt;p>&lt;code>otelcol.receiver.file_stats&lt;/code> collects metrics from files and folders specified with a glob pattern.&lt;/p>
&lt;div class="admonition admonition-note">&lt;blockquote>&lt;p class="title text-uppercase">Note&lt;/p>&lt;p>&lt;code>otelcol.receiver.file_stats&lt;/code> is a wrapper over the upstream OpenTelemetry Collector &lt;a href="https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/receiver/filestatsreceiver" target="_blank" rel="noopener noreferrer">&lt;code>filestats&lt;/code>&lt;/a> receiver.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p></description></item><item><title>otelcol.receiver.filelog</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.receiver.filelog/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.receiver.filelog/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolreceiverfilelog&#34;&gt;&lt;code&gt;otelcol.receiver.filelog&lt;/code&gt;&lt;/h1&gt;


&lt;div data-shared=&#34;stability/public_preview.md&#34;&gt;
            &lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Public preview&lt;/strong&gt;: This is a &lt;a href=&#34;/docs/release-life-cycle/&#34;&gt;public preview&lt;/a&gt; component.
Public preview components are subject to breaking changes, and may be replaced with equivalent functionality that cover the same use case.
To enable and use a public preview component, you must set the &lt;code&gt;stability.level&lt;/code&gt; 
    &lt;a href=&#34;/docs/alloy/v1.15/reference/cli/run/&#34;&gt;flag&lt;/a&gt; to &lt;code&gt;public-preview&lt;/code&gt; or below.&lt;/p&gt;&lt;/blockquote&gt;
&lt;/div&gt;

        
&lt;p&gt;&lt;code&gt;otelcol.receiver.filelog&lt;/code&gt; reads log entries from files and forwards them to other &lt;code&gt;otelcol.*&lt;/code&gt; components.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.receiver.filelog&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/receiver/filelogreceiver&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;filelog&lt;/code&gt;&lt;/a&gt; receiver.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.receiver.filelog&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.receiver.filelog &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  include = [...]
  output {
    logs    = [...]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.receiver.filelog&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of glob patterns to include files.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;acquire_fs_lock&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to acquire a file system lock while reading the file (Unix only).&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;attributes&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;map(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A map of attributes to add to each log entry.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;{}&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;compression&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The compression type used for the log file.&lt;/td&gt;
              &lt;td&gt;``&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;delete_after_read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to delete the file after reading.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;encoding&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The encoding of the log file.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;utf-8&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;exclude_older_than&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Exclude files with a modification time older than the specified duration.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;exclude&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of glob patterns to exclude files that would be included by the &lt;code&gt;include&lt;/code&gt; patterns.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fingerprint_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;units.Base2Bytes&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The size of the fingerprint used to detect file changes.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1KiB&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;force_flush_period&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The period after which logs are flushed even if the buffer isn&amp;rsquo;t full.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;500ms&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_file_name_resolved&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to include the resolved filename in the log entry.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_file_name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to include the filename in the log entry.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_file_owner_group_name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to include the file owner&amp;rsquo;s group name in the log entry.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_file_owner_name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to include the file owner&amp;rsquo;s name in the log entry.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_file_path_resolved&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to include the resolved file path in the log entry.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_file_path&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to include the file path in the log entry.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_file_record_number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to include the file record number in the log entry.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_batches&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The maximum number of batches to process concurrently.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_concurrent_files&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The maximum number of files to read concurrently.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_log_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;units.Base2Bytes&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The maximum size of a log entry.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1MiB&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;operators&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(map(string))&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of operators used to parse the log entries.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;poll_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The interval at which the file is polled for new entries.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;200ms&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;preserve_leading_whitespaces&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Preserves leading whitespace in messages when set to &lt;code&gt;true&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;preserve_trailing_whitespaces&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Preserves trailing whitespace in messages when set to &lt;code&gt;true&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;resource&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;map(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A map of resource attributes to associate with each log entry.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;{}&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;start_at&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The position to start reading the file from.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;end&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;storage&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;capsule(otelcol.Handler)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Handler from an &lt;code&gt;otelcol.storage&lt;/code&gt; component to use for persisting state.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;encoding&lt;/code&gt; must be one of &lt;code&gt;utf-8&lt;/code&gt;, &lt;code&gt;utf8-raw&lt;/code&gt;, &lt;code&gt;utf-16le&lt;/code&gt;, &lt;code&gt;utf-16be&lt;/code&gt;, &lt;code&gt;ascii&lt;/code&gt;, &lt;code&gt;big5&lt;/code&gt;, or &lt;code&gt;nop&lt;/code&gt;.
Refer to the upstream receiver &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.147.0/receiver/filelogreceiver/README.md#supported-encodings&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;documentation&lt;/a&gt; for more details.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;start_at&lt;/code&gt; must be one of &lt;code&gt;beginning&lt;/code&gt; or &lt;code&gt;end&lt;/code&gt;. The &lt;code&gt;header&lt;/code&gt; block may only be used if &lt;code&gt;start_at&lt;/code&gt; is &lt;code&gt;beginning&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;compression&lt;/code&gt; must be either &lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;, &lt;code&gt;gzip&lt;/code&gt;, or &lt;code&gt;auto&lt;/code&gt;. &lt;code&gt;auto&lt;/code&gt; automatically detects file compression type and ingests data.
Currently, only gzip compressed files are auto detected. This allows for mix of compressed and uncompressed files to be ingested with the same filelogreceiver.&lt;/p&gt;
&lt;p&gt;To persist state between restarts of the Alloy process, set the &lt;code&gt;storage&lt;/code&gt; attribute to the &lt;code&gt;handler&lt;/code&gt; exported from an &lt;code&gt;otelcol.storage.*&lt;/code&gt; component.&lt;/p&gt;
&lt;h3 id=&#34;operators&#34;&gt;&lt;code&gt;operators&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;operators&lt;/code&gt; list is a list of stanza &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.147.0/pkg/stanza/docs/operators/README.md#what-operators-are-available&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;operators&lt;/a&gt; that transform the log entries after they have been read.&lt;/p&gt;
&lt;p&gt;For example, if container logs are being collected you may want to utilize the stanza &lt;code&gt;container&lt;/code&gt; parser operator to add relevant attributes to the log entries.&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;otelcol.receiver.filelog &amp;#34;default&amp;#34; {
    ...
    operators = [
      {
        type = &amp;#34;container&amp;#34;
      }
    ]
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.receiver.filelog&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 7;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#output\&amp;#34;\u003e\u003ccode\u003eoutput\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures where to send received telemetry data.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#header\&amp;#34;\u003e\u003ccode\u003eheader\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures rules for parsing a log header line\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#multiline\&amp;#34;\u003e\u003ccode\u003emultiline\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures rules for multiline parsing of log messages\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#ordering_criteria\&amp;#34;\u003e\u003ccode\u003eordering_criteria\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the order in which log files are processed.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eordering_criteria\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#sort_by\&amp;#34;\u003e\u003ccode\u003esort_by\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the fields to sort by within the ordering criteria.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#retry_on_failure\&amp;#34;\u003e\u003ccode\u003eretry_on_failure\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the retry behavior when the receiver encounters an error downstream in the pipeline.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures where to send received telemetry data.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#header&#34;&gt;&lt;code&gt;header&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures rules for parsing a log header line&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#multiline&#34;&gt;&lt;code&gt;multiline&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures rules for multiline parsing of log messages&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#ordering_criteria&#34;&gt;&lt;code&gt;ordering_criteria&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the order in which log files are processed.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ordering_criteria&lt;/code&gt; &amp;gt; &lt;a href=&#34;#sort_by&#34;&gt;&lt;code&gt;sort_by&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the fields to sort by within the ordering criteria.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#retry_on_failure&#34;&gt;&lt;code&gt;retry_on_failure&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the retry behavior when the receiver encounters an error downstream in the pipeline.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;



&lt;div data-shared=&#34;reference/components/output-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;output&lt;/code&gt; block configures a set of components to forward resulting telemetry data to.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send logs to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send metrics to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;traces&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send traces to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You must specify the &lt;code&gt;output&lt;/code&gt; block, but all its arguments are optional.
By default, telemetry data is dropped.
Configure the &lt;code&gt;metrics&lt;/code&gt;, &lt;code&gt;logs&lt;/code&gt;, and &lt;code&gt;traces&lt;/code&gt; arguments accordingly to send telemetry data to other components.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h3 id=&#34;header&#34;&gt;&lt;code&gt;header&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;header&lt;/code&gt; block configures logic for parsing a log header line into additional attributes added to each log entry.
It may only be used when &lt;code&gt;start_at&lt;/code&gt; is set to &lt;code&gt;beginning&lt;/code&gt;.
The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metadata_operators&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;lists(map(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of operators used to parse metadata from the header.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;pattern&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A regular expression that matches the header line.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If a &lt;code&gt;header&lt;/code&gt; block isn&amp;rsquo;t set, no log lines will be treated as header metadata.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;metadata_operators&lt;/code&gt; list is a list of stanza &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.147.0/pkg/stanza/docs/operators/README.md#what-operators-are-available&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;operators&lt;/a&gt; that parses metadata from the header.
Any attributes created from the embedded operators pipeline will be applied to all log entries in the file.&lt;/p&gt;
&lt;p&gt;For example, you might use a &lt;code&gt;regex_parser&lt;/code&gt; to process a header line that has been identified by the &lt;code&gt;pattern&lt;/code&gt; expression.
The following example shows a fictitious header line, and then the &lt;code&gt;header&lt;/code&gt; block that would parse an &lt;code&gt;environment&lt;/code&gt; attribute from it.&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;text&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-text&#34;&gt;HEADER_IDENTIFIER env=&amp;#34;production&amp;#34;
...&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&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;otelcol.receiver.filelog &amp;#34;default&amp;#34; {
    ...
    header {
      pattern = &amp;#39;^HEADER_IDENTIFIER .*$&amp;#39;
      metadata_operators = [
        {
          type = &amp;#34;regex_parser&amp;#34;
          regex = &amp;#39;env=&amp;#34;(?P&amp;lt;environment&amp;gt;.&amp;#43;)&amp;#34;&amp;#39;
        }
      ]
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;multiline&#34;&gt;&lt;code&gt;multiline&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;multiline&lt;/code&gt; block configures logic for splitting incoming log entries.
The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;line_end_pattern&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A regular expression that matches the end of a log entry.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes*&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;line_start_pattern&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A regular expression that matches the beginning of a log entry.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes*&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;omit_pattern&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Omit the start/end pattern from the split log entries.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;A &lt;code&gt;multiline&lt;/code&gt; block must contain either &lt;code&gt;line_start_pattern&lt;/code&gt; or &lt;code&gt;line_end_pattern&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;If a &lt;code&gt;multiline&lt;/code&gt; block isn&amp;rsquo;t set, log entries won&amp;rsquo;t be split.&lt;/p&gt;
&lt;h3 id=&#34;ordering_criteria&#34;&gt;&lt;code&gt;ordering_criteria&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;ordering_criteria&lt;/code&gt; block configures the order in which log files discovered will be processed.
The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;group_by&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A named capture group from the &lt;code&gt;regex&lt;/code&gt; attribute used for grouping pre-sort.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;regex&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A regular expression to capture elements of log files to use in ordering calculations.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;top_n&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The number of top log files to track when using file ordering.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;sort_by&#34;&gt;&lt;code&gt;sort_by&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;sort_by&lt;/code&gt; repeatable block configures the way the fields parsed in the &lt;code&gt;ordering_criteria&lt;/code&gt; block will be applied to sort the discovered log files.
The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sort_type&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The type of sorting to apply.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ascending&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to sort in ascending order.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;layout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The layout of the timestamp to be parsed from a named &lt;code&gt;regex&lt;/code&gt; capture group.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;location&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The location of the timestamp.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;UTC&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;regex_key&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The named capture group from the &lt;code&gt;regex&lt;/code&gt; attribute to use for sorting.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;sort_type&lt;/code&gt; must be one of &lt;code&gt;numeric&lt;/code&gt;, &lt;code&gt;lexicographic&lt;/code&gt;, &lt;code&gt;timestamp&lt;/code&gt;, or &lt;code&gt;mtime&lt;/code&gt;.
When using &lt;code&gt;numeric&lt;/code&gt;, &lt;code&gt;lexicographic&lt;/code&gt;, or &lt;code&gt;timestamp&lt;/code&gt; &lt;code&gt;sort_type&lt;/code&gt;, a named capture group defined in the &lt;code&gt;regex&lt;/code&gt; attribute in &lt;code&gt;ordering_criteria&lt;/code&gt; must be provided in &lt;code&gt;regex_key&lt;/code&gt;.
When using &lt;code&gt;mtime&lt;/code&gt; &lt;code&gt;sort_type&lt;/code&gt;, the file&amp;rsquo;s modified time will be used to sort.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;location&lt;/code&gt; and &lt;code&gt;layout&lt;/code&gt; arguments are only applicable when &lt;code&gt;sort_type&lt;/code&gt; is &lt;code&gt;timestamp&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;location&lt;/code&gt; argument specifies a Time Zone identifier. The available locations depend on the local IANA Time Zone database.
Refer to the &lt;a href=&#34;https://en.wikipedia.org/wiki/List_of_tz_database_time_zones&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;list of tz database time zones&lt;/a&gt; in Wikipedia for a non-comprehensive list.&lt;/p&gt;
&lt;h3 id=&#34;retry_on_failure&#34;&gt;&lt;code&gt;retry_on_failure&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;retry_on_failure&lt;/code&gt; block configures the retry behavior when the receiver encounters an error downstream in the pipeline.
A backoff algorithm is used to delay the retry upon subsequent failures.
The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;If set to &lt;code&gt;true&lt;/code&gt; and an error occurs, the receiver will pause reading the log files and resend the current batch of logs.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;initial_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The time to wait after first failure to retry.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;1s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_elapsed_time&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The maximum age of a message before the data is discarded.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;5m&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The maximum time to wait after applying backoff logic.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;30s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If &lt;code&gt;max_elapsed_time&lt;/code&gt; is set to &lt;code&gt;0&lt;/code&gt; data is never discarded.&lt;/p&gt;
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.filelog&lt;/code&gt; doesn&amp;rsquo;t export any fields.&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.filelog&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-metrics&#34;&gt;Debug metrics&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.filelog&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug metrics.&lt;/p&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;p&gt;This example reads log entries using the &lt;code&gt;otelcol.receiver.filelog&lt;/code&gt; receiver and they&amp;rsquo;re logged by a &lt;code&gt;otelcol.exporter.debug&lt;/code&gt; component.
It expects the logs to start with an ISO8601 compatible timestamp and parses it from the log using the &lt;code&gt;regex_parser&lt;/code&gt; operator.&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;otelcol.receiver.filelog &amp;#34;default&amp;#34; {
  include = [&amp;#34;/var/log/*.log&amp;#34;]
  operators = [{
    type = &amp;#34;regex_parser&amp;#34;,
    regex = &amp;#34;^(?P&amp;lt;timestamp&amp;gt;\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3,6}Z)&amp;#34;,
    timestamp = {
      parse_from = &amp;#34;attributes.timestamp&amp;#34;,
      layout = &amp;#34;%Y-%m-%dT%H:%M:%S.%fZ&amp;#34;,
      location = &amp;#34;UTC&amp;#34;,
    },
  }]
  output {
      logs = [otelcol.exporter.debug.default.input]
  }
}

otelcol.exporter.debug &amp;#34;default&amp;#34; {}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.filelog&lt;/code&gt; can accept arguments from the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that export &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-exporters&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolreceiverfilelog">&lt;code>otelcol.receiver.filelog&lt;/code>&lt;/h1>
&lt;div data-shared="stability/public_preview.md">
&lt;blockquote>
&lt;p>&lt;strong>Public preview&lt;/strong>: This is a &lt;a href="/docs/release-life-cycle/">public preview&lt;/a> component.
Public preview components are subject to breaking changes, and may be replaced with equivalent functionality that cover the same use case.
To enable and use a public preview component, you must set the &lt;code>stability.level&lt;/code>
&lt;a href="/docs/alloy/v1.15/reference/cli/run/">flag&lt;/a> to &lt;code>public-preview&lt;/code> or below.&lt;/p></description></item><item><title>otelcol.receiver.fluentforward</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.receiver.fluentforward/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.receiver.fluentforward/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolreceiverfluentforward&#34;&gt;&lt;code&gt;otelcol.receiver.fluentforward&lt;/code&gt;&lt;/h1&gt;


&lt;div data-shared=&#34;stability/experimental.md&#34;&gt;
            &lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;EXPERIMENTAL&lt;/strong&gt;: This is an &lt;a href=&#34;/docs/release-life-cycle/&#34;&gt;experimental&lt;/a&gt; component.
Experimental components are subject to frequent breaking changes, and may be removed with no equivalent replacement.
To enable and use an experimental component, you must set the &lt;code&gt;stability.level&lt;/code&gt; 
    &lt;a href=&#34;/docs/alloy/v1.15/reference/cli/run/&#34;&gt;flag&lt;/a&gt; to &lt;code&gt;experimental&lt;/code&gt;.&lt;/p&gt;&lt;/blockquote&gt;
&lt;/div&gt;

        
&lt;p&gt;&lt;code&gt;otelcol.receiver.fluentforward&lt;/code&gt; accepts log messages over a TCP connection via the &lt;a href=&#34;https://github.com/fluent/fluentd/wiki/Forward-Protocol-Specification-v1&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Fluent Forward Protocol&lt;/a&gt; and forwards them as logs to other &lt;code&gt;otelcol.*&lt;/code&gt; components.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.receiver.fluentforward&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/receiver/fluentforwardreceiver&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;fluentforward&lt;/code&gt;&lt;/a&gt; receiver.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.receiver.fluentforward&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.receiver.fluentforward &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  endpoint = &amp;#34;&amp;lt;IP_ADDRESS:PORT&amp;gt;&amp;#34;

  output {
    logs    = [...]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.receiver.fluentforward&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The &lt;code&gt;&amp;lt;HOST:PORT&amp;gt;&lt;/code&gt; or &lt;code&gt;unix://&amp;lt;path to socket&amp;gt;&lt;/code&gt; address to listen to for logs messages.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.receiver.fluentforward&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 2;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#output\&amp;#34;\u003e\u003ccode\u003eoutput\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures where to send received telemetry data.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures where to send received telemetry data.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;



&lt;div data-shared=&#34;reference/components/output-block-logs.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;output&lt;/code&gt; block configures a set of components to forward resulting telemetry data to.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send logs to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You must specify the &lt;code&gt;output&lt;/code&gt; block, but all its arguments are optional.
By default, telemetry data is dropped.
Configure the &lt;code&gt;logs&lt;/code&gt; argument accordingly to send telemetry data to other components, .&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.fluentforward&lt;/code&gt; doesn&amp;rsquo;t export any fields.&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.fluentforward&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.fluentforward&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;debug-metrics&#34;&gt;Debug metrics&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.fluentforward&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug metrics.&lt;/p&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;p&gt;This example receives log messages using Fluent Forward Protocol on TCP port 8006 and logs them.&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;otelcol.receiver.fluentforward &amp;#34;default&amp;#34; {
    endpoint = &amp;#34;localhost:8006&amp;#34;
    output {
        logs = [otelcol.exporter.debug.default.input]
    }
}

otelcol.exporter.debug &amp;#34;default&amp;#34; {}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.fluentforward&lt;/code&gt; can accept arguments from the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that export &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-exporters&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolreceiverfluentforward">&lt;code>otelcol.receiver.fluentforward&lt;/code>&lt;/h1>
&lt;div data-shared="stability/experimental.md">
&lt;blockquote>
&lt;p>&lt;strong>EXPERIMENTAL&lt;/strong>: This is an &lt;a href="/docs/release-life-cycle/">experimental&lt;/a> component.
Experimental components are subject to frequent breaking changes, and may be removed with no equivalent replacement.
To enable and use an experimental component, you must set the &lt;code>stability.level&lt;/code>
&lt;a href="/docs/alloy/v1.15/reference/cli/run/">flag&lt;/a> to &lt;code>experimental&lt;/code>.&lt;/p></description></item><item><title>otelcol.receiver.googlecloudpubsub</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.receiver.googlecloudpubsub/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.receiver.googlecloudpubsub/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolreceivergooglecloudpubsub&#34;&gt;&lt;code&gt;otelcol.receiver.googlecloudpubsub&lt;/code&gt;&lt;/h1&gt;


&lt;div data-shared=&#34;stability/community.md&#34;&gt;
            &lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Community&lt;/strong&gt;: This component is developed, maintained, and supported by the Alloy user community.
Grafana doesn&amp;rsquo;t offer commercial support for this component.
To enable and use community components, you must set the &lt;code&gt;--feature.community-components.enabled&lt;/code&gt; 
    &lt;a href=&#34;/docs/alloy/v1.15/reference/cli/run/&#34;&gt;flag&lt;/a&gt; to &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Refer to &lt;a href=&#34;../../../../get-started/components/community-components/&#34;&gt;Community components&lt;/a&gt; for more information.&lt;/p&gt;&lt;/blockquote&gt;
&lt;/div&gt;

        
&lt;p&gt;&lt;code&gt;otelcol.receiver.googlecloudpubsub&lt;/code&gt; receives OpenTelemetry signals from a Google Cloud Pub/Sub subscription and forwards them to other &lt;code&gt;otelcol.*&lt;/code&gt; components for processing or export.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.receiver.googlecloudpubsub&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/receiver/googlecloudpubsubreceiver&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;googlecloudpubsub&lt;/code&gt;&lt;/a&gt; receiver.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.receiver.googlecloudpubsub&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.receiver.googlecloudpubsub &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  subscription = &amp;#34;projects/&amp;lt;PROJECT-ID&amp;gt;/subscriptions/&amp;lt;SUBSCRIPTION-NAME&amp;gt;&amp;#34;

  output {
    logs = [...]
    metrics = [...]
    trace = [...]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.receiver.googlecloudpubsub&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;subscription&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The subscription name to receive OTLP data from. The subscription name should be a fully qualified resource name, for example: &lt;code&gt;projects/otel-project/subscriptions/otlp&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;compression&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The compression used on data received from the subscription. Only &lt;code&gt;gzip&lt;/code&gt; is supported. This is only used when no content-encoding attribute is present.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;encoding&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The encoding used to receive data from the subscription. This can either be &lt;code&gt;otlp_proto_trace&lt;/code&gt;, &lt;code&gt;otlp_proto_metric&lt;/code&gt;, &lt;code&gt;otlp_proto_log&lt;/code&gt; or an encoding extension. This is only used when no media type attribute is present.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Override the default Pub/Sub endpoint. This is useful when connecting to the Pub/Sub emulator instance or switching between &lt;a href=&#34;https://cloud.google.com/pubsub/docs/reference/service_apis_overview#service_endpoints&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;global and regional service endpoints&lt;/a&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ignore_encoding_error&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Ignore errors when the configured encoder fails to decode Pub/Sub messages. Ignoring the error causes the receiver to drop the message.&lt;/td&gt;
              &lt;td&gt;false&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;insecure&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Allows performing insecure SSL connections and transfers. This is useful when connecting to a local emulator instance. Only has effect if you set &lt;code&gt;endpoint&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;false&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;project&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The Google Cloud Project project identifier.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;Duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Timeout for calls to the Pub/Sub API.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;12s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.receiver.googlecloudpubsub&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 2;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#output\&amp;#34;\u003e\u003ccode\u003eoutput\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures where to send received telemetry data.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures where to send received telemetry data.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;



&lt;div data-shared=&#34;reference/components/output-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;output&lt;/code&gt; block configures a set of components to forward resulting telemetry data to.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send logs to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send metrics to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;traces&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send traces to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You must specify the &lt;code&gt;output&lt;/code&gt; block, but all its arguments are optional.
By default, telemetry data is dropped.
Configure the &lt;code&gt;metrics&lt;/code&gt;, &lt;code&gt;logs&lt;/code&gt;, and &lt;code&gt;traces&lt;/code&gt; arguments accordingly to send telemetry data to other components.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.googlecloudpubsub&lt;/code&gt; doesn&amp;rsquo;t export any fields.&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.googlecloudpubsub&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.googlecloudpubsub&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;p&gt;The following example collects signals from Google Cloud Pub/Sub subscription and forwards logs through a batch processor:&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;otelcol.receiver.googlecloudpubsub &amp;#34;default&amp;#34; {
  subscription = &amp;#34;projects/my-gcp-project/subscriptions/my-pubsub-subscription&amp;#34;

  output {
    logs = [otelcol.processor.batch.default.input]
  }
}

otelcol.processor.batch &amp;#34;default&amp;#34; {
  output {
    logs = [otelcol.exporter.otlphttp.default.input]
  }
}

otelcol.exporter.otlphttp &amp;#34;default&amp;#34; {
  client {
    endpoint = env(&amp;#34;&amp;lt;OTLP_ENDPOINT&amp;gt;&amp;#34;)
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.googlecloudpubsub&lt;/code&gt; can accept arguments from the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that export &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-exporters&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.googlecloudpubsub&lt;/code&gt; has exports that can be consumed by the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that consume &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-consumers&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolreceivergooglecloudpubsub">&lt;code>otelcol.receiver.googlecloudpubsub&lt;/code>&lt;/h1>
&lt;div data-shared="stability/community.md">
&lt;blockquote>
&lt;p>&lt;strong>Community&lt;/strong>: This component is developed, maintained, and supported by the Alloy user community.
Grafana doesn&amp;rsquo;t offer commercial support for this component.
To enable and use community components, you must set the &lt;code>--feature.community-components.enabled&lt;/code>
&lt;a href="/docs/alloy/v1.15/reference/cli/run/">flag&lt;/a> to &lt;code>true&lt;/code>.&lt;/p></description></item><item><title>otelcol.receiver.influxdb</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.receiver.influxdb/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.receiver.influxdb/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolreceiverinfluxdb&#34;&gt;&lt;code&gt;otelcol.receiver.influxdb&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.influxdb&lt;/code&gt; receives InfluxDB metrics, converts them into OpenTelemetry (OTEL) format, and forwards them to other &lt;code&gt;otelcol.*&lt;/code&gt; components over the network.&lt;/p&gt;
&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.receiver.influxdb&lt;/code&gt; components by giving them different labels.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.receiver.influxdb&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/receiver/influxdbreceiver&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;influxdb&lt;/code&gt;&lt;/a&gt; receiver.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.receiver.influxdb &amp;#34;influxdb_metrics&amp;#34; {
  endpoint = &amp;#34;localhost:8086&amp;#34;  // InfluxDB metrics ingestion endpoint

  output {
    metrics = [...]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.receiver.influxdb&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;capsule(otelcol.Handler)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Handler from an &lt;code&gt;otelcol.auth&lt;/code&gt; component to use for authenticating requests.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;compression_algorithms&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of compression algorithms the server can accept.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[&amp;quot;&amp;quot;, &amp;quot;gzip&amp;quot;, &amp;quot;zstd&amp;quot;, &amp;quot;zlib&amp;quot;, &amp;quot;snappy&amp;quot;, &amp;quot;deflate&amp;quot;, &amp;quot;lz4&amp;quot;]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;host:port&lt;/code&gt; to listen for traffic on.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;localhost:8086&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_metadata&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Propagate incoming connection metadata to downstream consumers.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;keep_alives_enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether or not HTTP keep-alives are enabled&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_request_body_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum request body size the server will allow.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;20MiB&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;By default, &lt;code&gt;otelcol.receiver.influxdb&lt;/code&gt; listens for HTTP connections on &lt;code&gt;localhost&lt;/code&gt;.
To expose the HTTP server to other machines on your network, configure &lt;code&gt;endpoint&lt;/code&gt; with the IP address to listen on, or &lt;code&gt;0.0.0.0:8086&lt;/code&gt; to listen on all network interfaces.&lt;/p&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.receiver.influxdb&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 5;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#output\&amp;#34;\u003e\u003ccode\u003eoutput\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures where to send received metrics.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#cors\&amp;#34;\u003e\u003ccode\u003ecors\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures CORS for the HTTP server.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#tls\&amp;#34;\u003e\u003ccode\u003etls\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TLS for the HTTP server.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003etls\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#tpm\&amp;#34;\u003e\u003ccode\u003etpm\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TPM settings for the TLS \u003ccode\u003ekey_file\u003c/code\u003e.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures where to send received metrics.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#cors&#34;&gt;&lt;code&gt;cors&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures CORS for the HTTP server.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TLS for the HTTP server.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;tls&lt;/code&gt; &amp;gt; &lt;a href=&#34;#tpm&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TPM settings for the TLS &lt;code&gt;key_file&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;



&lt;div data-shared=&#34;reference/components/output-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;output&lt;/code&gt; block configures a set of components to forward resulting telemetry data to.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send logs to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send metrics to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;traces&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send traces to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You must specify the &lt;code&gt;output&lt;/code&gt; block, but all its arguments are optional.
By default, telemetry data is dropped.
Configure the &lt;code&gt;metrics&lt;/code&gt;, &lt;code&gt;logs&lt;/code&gt;, and &lt;code&gt;traces&lt;/code&gt; arguments accordingly to send telemetry data to other components.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;cors&#34;&gt;&lt;code&gt;cors&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;cors&lt;/code&gt; block configures CORS settings for an HTTP server.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;allowed_origins&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Allowed values for the &lt;code&gt;Origin&lt;/code&gt; header.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;allowed_headers&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Accepted headers from CORS requests.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[&amp;quot;X-Requested-With&amp;quot;]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_age&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Configures the &lt;code&gt;Access-Control-Max-Age&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;code&gt;allowed_headers&lt;/code&gt; argument specifies which headers are acceptable from a
CORS request. The following headers are always implicitly allowed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Accept&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Accept-Language&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Content-Type&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Content-Language&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If &lt;code&gt;allowed_headers&lt;/code&gt; includes &lt;code&gt;&amp;quot;*&amp;quot;&lt;/code&gt;, all headers are permitted.&lt;/p&gt;
&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h3 id=&#34;tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;tls&lt;/code&gt; block configures TLS settings used for a server.
If the &lt;code&gt;tls&lt;/code&gt; block isn&amp;rsquo;t provided, TLS won&amp;rsquo;t be used for connections to the server.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-tls-server-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ca_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the CA file.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ca_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;CA PEM-encoded text to validate the server with.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cert_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS certificate.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cert_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Certificate PEM-encoded text for client authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cipher_suites&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of TLS cipher suites that the TLS transport can use.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;client_ca_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS cert to use by the server to verify a client certificate.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;curve_preferences&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Set of elliptic curves to use in a handshake.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_system_ca_certs_pool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to load the system certificate authorities pool alongside the certificate authority.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS certificate key.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;secret&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Key PEM-encoded text for client authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum acceptable TLS version for connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;TLS 1.3&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;min_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Minimum acceptable TLS version for connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;TLS 1.2&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;reload_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The duration after which the certificate is reloaded.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If &lt;code&gt;reload_interval&lt;/code&gt; is set to &lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;, the certificate never reloaded.&lt;/p&gt;
&lt;p&gt;The following pairs of arguments are mutually exclusive and can&amp;rsquo;t both be set simultaneously:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ca_pem&lt;/code&gt; and &lt;code&gt;ca_file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cert_pem&lt;/code&gt; and &lt;code&gt;cert_file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;key_pem&lt;/code&gt; and &lt;code&gt;key_file&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If &lt;code&gt;cipher_suites&lt;/code&gt; is left blank, a safe default list is used.
Refer to the &lt;a href=&#34;https://go.dev/src/crypto/tls/cipher_suites.go&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Go Cipher Suites documentation&lt;/a&gt; for a list of supported cipher suites.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;client_ca_file&lt;/code&gt; sets the &lt;code&gt;ClientCA&lt;/code&gt; and &lt;code&gt;ClientAuth&lt;/code&gt; to &lt;code&gt;RequireAndVerifyClientCert&lt;/code&gt; in the &lt;code&gt;TLSConfig&lt;/code&gt;.
Refer to the &lt;a href=&#34;https://godoc.org/crypto/tls#Config&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Go TLS documentation&lt;/a&gt; for more information.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;curve_preferences&lt;/code&gt; argument determines the set of elliptic curves to prefer during a handshake in preference order.
If not provided, a default list is used.
The set of elliptic curves available are &lt;code&gt;X25519&lt;/code&gt;, &lt;code&gt;P521&lt;/code&gt;, &lt;code&gt;P256&lt;/code&gt;, and &lt;code&gt;P384&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;tpm&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;tpm&lt;/code&gt; block configures retrieving the TLS &lt;code&gt;key_file&lt;/code&gt; from a trusted device.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-tls-tpm-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The authorization value used to authenticate the TPM device.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Load the &lt;code&gt;tls.key_file&lt;/code&gt; from TPM.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;owner_auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The owner authorization value used to authenticate the TPM device.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;path&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TPM device or Unix domain socket.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;a href=&#34;https://trustedcomputinggroup.org/resource/trusted-platform-module-tpm-summary/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;trusted platform module&lt;/a&gt; (TPM) configuration can be used for loading TLS key from TPM. Currently only TSS2 format is supported.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;path&lt;/code&gt; attribute is not supported on Windows.&lt;/p&gt;
&lt;p&gt;In the following example, the private key &lt;code&gt;my-tss2-key.key&lt;/code&gt; in TSS2 format is loaded from the TPM device &lt;code&gt;/dev/tmprm0&lt;/code&gt;:&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;otelcol.example.component &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
    ...
    tls {
        ...
        key_file = &amp;#34;my-tss2-key.key&amp;#34;
        tpm {
            enabled = true
            path = &amp;#34;/dev/tpmrm0&amp;#34;
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

        
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.influxdb&lt;/code&gt; doesn&amp;rsquo;t export any fields.&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.influxdb&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.influxdb&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;p&gt;This example forwards received telemetry through a batch processor before finally sending it to an OTLP-capable endpoint:&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;otelcol.receiver.influxdb &amp;#34;influxdb_metrics&amp;#34; {
  output {
    metrics = [otelcol.processor.batch.default.input]
  }
}

otelcol.processor.batch &amp;#34;default&amp;#34; {
  output {
    metrics = [otelcol.exporter.otlphttp.default.input]
  }
}

otelcol.exporter.otlphttp &amp;#34;default&amp;#34; {
  client {
    endpoint = sys.env(&amp;#34;&amp;lt;OTLP_ENDPOINT&amp;gt;&amp;#34;)
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;This example forwards received telemetry to Prometheus Remote Write (Mimir):&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;otelcol.receiver.influxdb &amp;#34;influxdb_metrics&amp;#34; {
  output {
    metrics = [otelcol.exporter.prometheus.influx_output.input]  // Forward metrics to Prometheus exporter
  }
}

otelcol.exporter.prometheus &amp;#34;influx_output&amp;#34; {
  forward_to = [prometheus.remote_write.mimir.receiver]  // Forward metrics to Prometheus remote write (Mimir)
}

prometheus.remote_write &amp;#34;mimir&amp;#34; {
  endpoint {
    url = &amp;#34;https://prometheus-xxx.grafana.net/api/prom/push&amp;#34;

    basic_auth {
      username = &amp;#34;xxxxx&amp;#34;
      password = &amp;#34;xxxx==&amp;#34;
    }
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;enable-authentication&#34;&gt;Enable authentication&lt;/h2&gt;
&lt;p&gt;You can create a &lt;code&gt;otelcol.receiver.influxdb&lt;/code&gt; component that requires authentication for requests.
This is useful for limiting who can push data to the server.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Not all OpenTelemetry Collector authentication plugins support receiver authentication.
Refer to the 
    &lt;a href=&#34;/docs/alloy/v1.15/reference/components/otelcol/&#34;&gt;documentation&lt;/a&gt; for each &lt;code&gt;otelcol.auth.*&lt;/code&gt; component to determine its compatibility.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&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;otelcol.receiver.influxdb &amp;#34;influxdb_metrics&amp;#34; {
  output {
    metrics = [...]
  }
  auth = otelcol.auth.basic.creds.handler
}

otelcol.auth.basic &amp;#34;creds&amp;#34; {
    username = sys.env(&amp;#34;&amp;lt;USERNAME&amp;gt;&amp;#34;)
    password = sys.env(&amp;#34;&amp;lt;PASSWORD&amp;gt;&amp;#34;)
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.influxdb&lt;/code&gt; can accept arguments from the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that export &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-exporters&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolreceiverinfluxdb">&lt;code>otelcol.receiver.influxdb&lt;/code>&lt;/h1>
&lt;p>&lt;code>otelcol.receiver.influxdb&lt;/code> receives InfluxDB metrics, converts them into OpenTelemetry (OTEL) format, and forwards them to other &lt;code>otelcol.*&lt;/code> components over the network.&lt;/p>
&lt;p>You can specify multiple &lt;code>otelcol.receiver.influxdb&lt;/code> components by giving them different labels.&lt;/p></description></item><item><title>otelcol.receiver.jaeger</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.receiver.jaeger/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.receiver.jaeger/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolreceiverjaeger&#34;&gt;&lt;code&gt;otelcol.receiver.jaeger&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.jaeger&lt;/code&gt; accepts Jaeger-formatted data over the network and forwards it to other &lt;code&gt;otelcol.*&lt;/code&gt; components.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.receiver.jaeger&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/receiver/jaegerreceiver&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;jaeger&lt;/code&gt;&lt;/a&gt; receiver.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.receiver.jaeger&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.receiver.jaeger &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  protocols {
    grpc {}
    thrift_http {}
    thrift_binary {}
    thrift_compact {}
  }

  output {
    metrics = [...]
    logs    = [...]
    traces  = [...]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;otelcol.receiver.jaeger&lt;/code&gt; component doesn&amp;rsquo;t support any arguments. You can configure this component with blocks.&lt;/p&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.receiver.jaeger&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 15;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#output\&amp;#34;\u003e\u003ccode\u003eoutput\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures where to send received telemetry data.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#protocols\&amp;#34;\u003e\u003ccode\u003eprotocols\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the protocols the component can accept traffic over.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eprotocols\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#grpc\&amp;#34;\u003e\u003ccode\u003egrpc\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures a Jaeger gRPC server to receive traces.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eprotocols\u003c/code\u003e \u0026gt; \u003ccode\u003egrpc\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#tls\&amp;#34;\u003e\u003ccode\u003etls\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TLS for the gRPC server.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eprotocols\u003c/code\u003e \u0026gt; \u003ccode\u003egrpc\u003c/code\u003e \u0026gt; \u003ccode\u003etls\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#tpm\&amp;#34;\u003e\u003ccode\u003etpm\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TPM settings for the TLS \u003ccode\u003ekey_file\u003c/code\u003e.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eprotocols\u003c/code\u003e \u0026gt; \u003ccode\u003egrpc\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#keepalive\&amp;#34;\u003e\u003ccode\u003ekeepalive\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures keepalive settings for the configured server.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eprotocols\u003c/code\u003e \u0026gt; \u003ccode\u003egrpc\u003c/code\u003e \u0026gt; \u003ccode\u003ekeepalive\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#server_parameters\&amp;#34;\u003e\u003ccode\u003eserver_parameters\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eServer parameters used to configure keepalive settings.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eprotocols\u003c/code\u003e \u0026gt; \u003ccode\u003egrpc\u003c/code\u003e \u0026gt; \u003ccode\u003ekeepalive\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#enforcement_policy\&amp;#34;\u003e\u003ccode\u003eenforcement_policy\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eEnforcement policy for keepalive settings.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eprotocols\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#thrift_http\&amp;#34;\u003e\u003ccode\u003ethrift_http\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures a Thrift HTTP server to receive traces.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eprotocols\u003c/code\u003e \u0026gt; \u003ccode\u003ethrift_http\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#cors\&amp;#34;\u003e\u003ccode\u003ecors\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures CORS for the Thrift HTTP server.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eprotocols\u003c/code\u003e \u0026gt; \u003ccode\u003ethrift_http\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#tls\&amp;#34;\u003e\u003ccode\u003etls\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TLS for the Thrift HTTP server.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eprotocols\u003c/code\u003e \u0026gt; \u003ccode\u003ethrift_http\u003c/code\u003e \u0026gt; \u003ccode\u003etls\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#tpm\&amp;#34;\u003e\u003ccode\u003etpm\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TPM settings for the TLS \u003ccode\u003ekey_file\u003c/code\u003e.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eprotocols\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#thrift_binary\&amp;#34;\u003e\u003ccode\u003ethrift_binary\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures a Thrift binary UDP server to receive traces.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eprotocols\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#thrift_compact\&amp;#34;\u003e\u003ccode\u003ethrift_compact\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures a Thrift compact UDP server to receive traces.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures where to send received telemetry data.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#protocols&#34;&gt;&lt;code&gt;protocols&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the protocols the component can accept traffic over.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;protocols&lt;/code&gt; &amp;gt; &lt;a href=&#34;#grpc&#34;&gt;&lt;code&gt;grpc&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures a Jaeger gRPC server to receive traces.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;protocols&lt;/code&gt; &amp;gt; &lt;code&gt;grpc&lt;/code&gt; &amp;gt; &lt;a href=&#34;#tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TLS for the gRPC server.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;protocols&lt;/code&gt; &amp;gt; &lt;code&gt;grpc&lt;/code&gt; &amp;gt; &lt;code&gt;tls&lt;/code&gt; &amp;gt; &lt;a href=&#34;#tpm&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TPM settings for the TLS &lt;code&gt;key_file&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;protocols&lt;/code&gt; &amp;gt; &lt;code&gt;grpc&lt;/code&gt; &amp;gt; &lt;a href=&#34;#keepalive&#34;&gt;&lt;code&gt;keepalive&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures keepalive settings for the configured server.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;protocols&lt;/code&gt; &amp;gt; &lt;code&gt;grpc&lt;/code&gt; &amp;gt; &lt;code&gt;keepalive&lt;/code&gt; &amp;gt; &lt;a href=&#34;#server_parameters&#34;&gt;&lt;code&gt;server_parameters&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Server parameters used to configure keepalive settings.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;protocols&lt;/code&gt; &amp;gt; &lt;code&gt;grpc&lt;/code&gt; &amp;gt; &lt;code&gt;keepalive&lt;/code&gt; &amp;gt; &lt;a href=&#34;#enforcement_policy&#34;&gt;&lt;code&gt;enforcement_policy&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enforcement policy for keepalive settings.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;protocols&lt;/code&gt; &amp;gt; &lt;a href=&#34;#thrift_http&#34;&gt;&lt;code&gt;thrift_http&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures a Thrift HTTP server to receive traces.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;protocols&lt;/code&gt; &amp;gt; &lt;code&gt;thrift_http&lt;/code&gt; &amp;gt; &lt;a href=&#34;#cors&#34;&gt;&lt;code&gt;cors&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures CORS for the Thrift HTTP server.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;protocols&lt;/code&gt; &amp;gt; &lt;code&gt;thrift_http&lt;/code&gt; &amp;gt; &lt;a href=&#34;#tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TLS for the Thrift HTTP server.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;protocols&lt;/code&gt; &amp;gt; &lt;code&gt;thrift_http&lt;/code&gt; &amp;gt; &lt;code&gt;tls&lt;/code&gt; &amp;gt; &lt;a href=&#34;#tpm&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TPM settings for the TLS &lt;code&gt;key_file&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;protocols&lt;/code&gt; &amp;gt; &lt;a href=&#34;#thrift_binary&#34;&gt;&lt;code&gt;thrift_binary&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures a Thrift binary UDP server to receive traces.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;protocols&lt;/code&gt; &amp;gt; &lt;a href=&#34;#thrift_compact&#34;&gt;&lt;code&gt;thrift_compact&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures a Thrift compact UDP server to receive traces.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;



&lt;div data-shared=&#34;reference/components/output-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;output&lt;/code&gt; block configures a set of components to forward resulting telemetry data to.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send logs to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send metrics to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;traces&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send traces to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You must specify the &lt;code&gt;output&lt;/code&gt; block, but all its arguments are optional.
By default, telemetry data is dropped.
Configure the &lt;code&gt;metrics&lt;/code&gt;, &lt;code&gt;logs&lt;/code&gt;, and &lt;code&gt;traces&lt;/code&gt; arguments accordingly to send telemetry data to other components.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;protocols&#34;&gt;&lt;code&gt;protocols&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;

&lt;p&gt;The &lt;code&gt;protocols&lt;/code&gt; block defines a set of protocols used to accept traces over the network.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;protocols&lt;/code&gt; doesn&amp;rsquo;t support any arguments and is configured fully through inner blocks.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.jeager&lt;/code&gt; requires at least one protocol block (&lt;code&gt;grpc&lt;/code&gt;, &lt;code&gt;thrift_http&lt;/code&gt;, &lt;code&gt;thrift_binary&lt;/code&gt;, or &lt;code&gt;thrift_compact&lt;/code&gt;).&lt;/p&gt;
&lt;h3 id=&#34;grpc&#34;&gt;&lt;code&gt;grpc&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;grpc&lt;/code&gt; block configures a gRPC server which can accept Jaeger traces.
If the &lt;code&gt;grpc&lt;/code&gt; block isn&amp;rsquo;t provided, a gRPC server isn&amp;rsquo;t started.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;capsule(otelcol.Handler)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Handler from an &lt;code&gt;otelcol.auth&lt;/code&gt; component to use for authenticating requests.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;host:port&lt;/code&gt; to listen for traffic on.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0.0.0.0:14250&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_metadata&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Propagate incoming connection metadata to downstream consumers.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_concurrent_streams&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Limit the number of concurrent streaming RPC calls.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_recv_msg_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum size of messages the server will accept.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;4MiB&lt;/code&gt;&amp;quot;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;read_buffer_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Size of the read buffer the gRPC server will use for reading from clients.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;512KiB&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;transport&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Transport to use for the gRPC server.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;tcp&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;write_buffer_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Size of the write buffer the gRPC server will use for writing to clients.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;tls&lt;/code&gt; block configures TLS settings used for a server.
If the &lt;code&gt;tls&lt;/code&gt; block isn&amp;rsquo;t provided, TLS isn&amp;rsquo;t used for connections to the server.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-tls-server-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ca_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the CA file.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ca_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;CA PEM-encoded text to validate the server with.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cert_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS certificate.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cert_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Certificate PEM-encoded text for client authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cipher_suites&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of TLS cipher suites that the TLS transport can use.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;client_ca_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS cert to use by the server to verify a client certificate.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;curve_preferences&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Set of elliptic curves to use in a handshake.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_system_ca_certs_pool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to load the system certificate authorities pool alongside the certificate authority.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS certificate key.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;secret&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Key PEM-encoded text for client authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum acceptable TLS version for connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;TLS 1.3&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;min_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Minimum acceptable TLS version for connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;TLS 1.2&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;reload_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The duration after which the certificate is reloaded.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If &lt;code&gt;reload_interval&lt;/code&gt; is set to &lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;, the certificate never reloaded.&lt;/p&gt;
&lt;p&gt;The following pairs of arguments are mutually exclusive and can&amp;rsquo;t both be set simultaneously:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ca_pem&lt;/code&gt; and &lt;code&gt;ca_file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cert_pem&lt;/code&gt; and &lt;code&gt;cert_file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;key_pem&lt;/code&gt; and &lt;code&gt;key_file&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If &lt;code&gt;cipher_suites&lt;/code&gt; is left blank, a safe default list is used.
Refer to the &lt;a href=&#34;https://go.dev/src/crypto/tls/cipher_suites.go&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Go Cipher Suites documentation&lt;/a&gt; for a list of supported cipher suites.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;client_ca_file&lt;/code&gt; sets the &lt;code&gt;ClientCA&lt;/code&gt; and &lt;code&gt;ClientAuth&lt;/code&gt; to &lt;code&gt;RequireAndVerifyClientCert&lt;/code&gt; in the &lt;code&gt;TLSConfig&lt;/code&gt;.
Refer to the &lt;a href=&#34;https://godoc.org/crypto/tls#Config&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Go TLS documentation&lt;/a&gt; for more information.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;curve_preferences&lt;/code&gt; argument determines the set of elliptic curves to prefer during a handshake in preference order.
If not provided, a default list is used.
The set of elliptic curves available are &lt;code&gt;X25519&lt;/code&gt;, &lt;code&gt;P521&lt;/code&gt;, &lt;code&gt;P256&lt;/code&gt;, and &lt;code&gt;P384&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;tpm&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;tpm&lt;/code&gt; block configures retrieving the TLS &lt;code&gt;key_file&lt;/code&gt; from a trusted device.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-tls-tpm-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The authorization value used to authenticate the TPM device.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Load the &lt;code&gt;tls.key_file&lt;/code&gt; from TPM.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;owner_auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The owner authorization value used to authenticate the TPM device.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;path&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TPM device or Unix domain socket.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;a href=&#34;https://trustedcomputinggroup.org/resource/trusted-platform-module-tpm-summary/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;trusted platform module&lt;/a&gt; (TPM) configuration can be used for loading TLS key from TPM. Currently only TSS2 format is supported.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;path&lt;/code&gt; attribute is not supported on Windows.&lt;/p&gt;
&lt;p&gt;In the following example, the private key &lt;code&gt;my-tss2-key.key&lt;/code&gt; in TSS2 format is loaded from the TPM device &lt;code&gt;/dev/tmprm0&lt;/code&gt;:&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;otelcol.example.component &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
    ...
    tls {
        ...
        key_file = &amp;#34;my-tss2-key.key&amp;#34;
        tpm {
            enabled = true
            path = &amp;#34;/dev/tpmrm0&amp;#34;
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;keepalive&#34;&gt;&lt;code&gt;keepalive&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;keepalive&lt;/code&gt; block configures keepalive settings for connections to a gRPC server.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;keepalive&lt;/code&gt; doesn&amp;rsquo;t support any arguments and is configured fully through inner blocks.&lt;/p&gt;
&lt;h3 id=&#34;server_parameters&#34;&gt;&lt;code&gt;server_parameters&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;server_parameters&lt;/code&gt; block controls keepalive and maximum age settings for gRPC servers.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_connection_age_grace&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Time to wait before forcibly closing connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;infinity&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_connection_age&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum age for non-idle connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;infinity&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_connection_idle&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum age for idle connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;infinity&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;time&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How often to ping inactive clients to check for liveness.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;2h&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Time to wait before closing inactive clients that don&amp;rsquo;t respond to liveness checks.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;20s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;enforcement_policy&#34;&gt;&lt;code&gt;enforcement_policy&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;enforcement_policy&lt;/code&gt; block configures the keepalive enforcement policy for gRPC servers.
The server closes connections from clients that violate the configured policy.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;min_time&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Minimum time clients should wait before sending a keepalive ping.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;5m&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;permit_without_stream&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Allow clients to send keepalive pings when there are no active streams.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;thrift_http&#34;&gt;&lt;code&gt;thrift_http&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;thrift_http&lt;/code&gt; block configures an HTTP server which can accept Thrift-formatted traces.
If the &lt;code&gt;thrift_http&lt;/code&gt; block isn&amp;rsquo;t specified, an HTTP server isn&amp;rsquo;t started.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;capsule(otelcol.Handler)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Handler from an &lt;code&gt;otelcol.auth&lt;/code&gt; component to use for authenticating requests.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;compression_algorithms&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of compression algorithms the server can accept.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[&amp;quot;&amp;quot;, &amp;quot;gzip&amp;quot;, &amp;quot;zstd&amp;quot;, &amp;quot;zlib&amp;quot;, &amp;quot;snappy&amp;quot;, &amp;quot;deflate&amp;quot;, &amp;quot;lz4&amp;quot;]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;host:port&lt;/code&gt; to listen for traffic on.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0.0.0.0:14268&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_metadata&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Propagate incoming connection metadata to downstream consumers.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;keep_alives_enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether or not HTTP keep-alives are enabled&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_request_body_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum request body size the server will allow.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;20MiB&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;cors&#34;&gt;&lt;code&gt;cors&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;cors&lt;/code&gt; block configures CORS settings for an HTTP server.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;allowed_headers&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Accepted headers from CORS requests.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[&amp;quot;X-Requested-With&amp;quot;]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;allowed_origins&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Allowed values for the &lt;code&gt;Origin&lt;/code&gt; header.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_age&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Configures the &lt;code&gt;Access-Control-Max-Age&lt;/code&gt; response header.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;code&gt;allowed_headers&lt;/code&gt; specifies which headers are acceptable from a CORS request.
The following headers are always implicitly allowed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Accept&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Accept-Language&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Content-Type&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Content-Language&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If &lt;code&gt;allowed_headers&lt;/code&gt; includes &lt;code&gt;&amp;quot;*&amp;quot;&lt;/code&gt;, all headers are permitted.&lt;/p&gt;
&lt;h3 id=&#34;thrift_binary&#34;&gt;&lt;code&gt;thrift_binary&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;thrift_binary&lt;/code&gt; block configures a UDP server which can accept traces formatted to the Thrift binary protocol.
If the &lt;code&gt;thrift_binary&lt;/code&gt; block isn&amp;rsquo;t provided, a UDP server isn&amp;rsquo;t started.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;host:port&lt;/code&gt; to listen for traffic on.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0.0.0.0:6832&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_packet_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum UDP message size.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;65KiB&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;queue_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum number of UDP messages that can be queued at once.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1000&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;socket_buffer_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Buffer to allocate for the UDP socket.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;workers&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Number of workers to concurrently read from the message queue.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;thrift_compact&#34;&gt;&lt;code&gt;thrift_compact&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;thrift_compact&lt;/code&gt; block configures a UDP server which can accept traces formatted to the Thrift compact protocol.
If the &lt;code&gt;thrift_compact&lt;/code&gt; block isn&amp;rsquo;t provided, a UDP server isn&amp;rsquo;t started.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;host:port&lt;/code&gt; to listen for traffic on.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0.0.0.0:6831&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_packet_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum UDP message size.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;65KiB&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;queue_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum number of UDP messages that can be queued at once.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1000&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;socket_buffer_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Buffer to allocate for the UDP socket.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;workers&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Number of workers to concurrently read from the message queue.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.jaeger&lt;/code&gt; doesn&amp;rsquo;t export any fields.&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.jaeger&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.jaeger&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;p&gt;This example creates a pipeline which accepts Jaeger-formatted traces and writes them to an OTLP server:&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;otelcol.receiver.jaeger &amp;#34;default&amp;#34; {
  protocols {
    grpc {}
    thrift_http {}
    thrift_binary {}
    thrift_compact {}
  }

  output {
    traces = [otelcol.processor.batch.default.input]
  }
}

otelcol.processor.batch &amp;#34;default&amp;#34; {
  output {
    traces = [otelcol.exporter.otlphttp.default.input]
  }
}

otelcol.exporter.otlphttp &amp;#34;default&amp;#34; {
  client {
    endpoint = `https://otlp-gateway-prod-gb-south-0.grafana.net/otlp`
    auth     = otelcol.auth.basic.creds.handler
  }
}

otelcol.auth.basic &amp;#34;creds&amp;#34; {
  client_auth {
    username = sys.env(&amp;#34;OTLP_USERNAME&amp;#34;)
    password = sys.env(&amp;#34;OTLP_API_KEY&amp;#34;)
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;technical-details&#34;&gt;Technical details&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.jaeger&lt;/code&gt; supports &lt;a href=&#34;https://en.wikipedia.org/wiki/Gzip&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Gzip&lt;/a&gt; for compression.&lt;/p&gt;
&lt;h2 id=&#34;enable-authentication&#34;&gt;Enable authentication&lt;/h2&gt;
&lt;p&gt;You can create a &lt;code&gt;otelcol.receiver.jaeger&lt;/code&gt; component that requires authentication for requests.
This is useful for limiting who can push data to the server.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;This functionality is currently limited to the GRPC/HTTP blocks.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;



&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Not all OpenTelemetry Collector authentication plugins support receiver authentication.
Refer to the 
    &lt;a href=&#34;/docs/alloy/v1.15/reference/components/otelcol/&#34;&gt;documentation&lt;/a&gt; for each &lt;code&gt;otelcol.auth.*&lt;/code&gt; component to determine its compatibility.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&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;otelcol.receiver.jaeger &amp;#34;default&amp;#34; {
  protocols {
    grpc {
      auth = otelcol.auth.basic.creds.handler
    }
    thrift_http {
      auth = otelcol.auth.basic.creds.handler
    }
  }
}

otelcol.auth.basic &amp;#34;creds&amp;#34; {
    username = sys.env(&amp;#34;&amp;lt;USERNAME&amp;gt;&amp;#34;)
    password = sys.env(&amp;#34;&amp;lt;PASSWORD&amp;gt;&amp;#34;)
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.jaeger&lt;/code&gt; can accept arguments from the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that export &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-exporters&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolreceiverjaeger">&lt;code>otelcol.receiver.jaeger&lt;/code>&lt;/h1>
&lt;p>&lt;code>otelcol.receiver.jaeger&lt;/code> accepts Jaeger-formatted data over the network and forwards it to other &lt;code>otelcol.*&lt;/code> components.&lt;/p>
&lt;div class="admonition admonition-note">&lt;blockquote>&lt;p class="title text-uppercase">Note&lt;/p>&lt;p>&lt;code>otelcol.receiver.jaeger&lt;/code> is a wrapper over the upstream OpenTelemetry Collector &lt;a href="https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/receiver/jaegerreceiver" target="_blank" rel="noopener noreferrer">&lt;code>jaeger&lt;/code>&lt;/a> receiver.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p></description></item><item><title>otelcol.receiver.kafka</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.receiver.kafka/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.receiver.kafka/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolreceiverkafka&#34;&gt;&lt;code&gt;otelcol.receiver.kafka&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.kafka&lt;/code&gt; accepts telemetry data from a Kafka broker and forwards it to other &lt;code&gt;otelcol.*&lt;/code&gt; components.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.receiver.kafka&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/receiver/kafkareceiver&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;kafka&lt;/code&gt;&lt;/a&gt; receiver.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.receiver.kafka&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.receiver.kafka &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  brokers          = [&amp;#34;&amp;lt;BROKER_ADDR&amp;gt;&amp;#34;]
  protocol_version = &amp;#34;&amp;lt;PROTOCOL_VERSION&amp;gt;&amp;#34;

  output {
    metrics = [...]
    logs    = [...]
    traces  = [...]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.receiver.kafka&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;brokers&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Kafka brokers to connect to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;protocol_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Kafka protocol version to use.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;client_id&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Consumer client ID to use.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;otel-collector&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;conn_idle_timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Time after which idle connections are not reused and may be closed.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;9m&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;encoding&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;(Deprecated) Encoding of payload read from Kafka.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;otlp_proto&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;group_id&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Consumer group to consume messages from.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;otel-collector&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;group_instance_id&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A unique identifier for the consumer instance within a consumer group.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;group_rebalance_strategy&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The strategy used to assign partitions to consumers within a consumer group.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;range&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;heartbeat_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The expected time between heartbeats to the consumer coordinator when using Kafka group management.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;3s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;initial_offset&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Initial offset to use if no offset was previously committed.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;latest&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_fetch_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The maximum number of message bytes to fetch in a request.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1048576&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_fetch_wait&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The maximum amount of time the broker should wait for &lt;code&gt;min_fetch_size&lt;/code&gt; bytes to be available before returning anyway.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;250ms&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_partition_fetch_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The default number of message bytes to fetch per partition in a request.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1048576&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;min_fetch_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The minimum number of message bytes to fetch in a request.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;rack_id&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The rack identifier for this client. Used for rack-aware replica selection when supported by the brokers.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;resolve_canonical_bootstrap_servers_only&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to resolve then reverse-lookup broker IPs during startup.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;session_timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The request timeout for detecting client failures when using Kafka group management.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;10s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;use_leader_epoch&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to use leader epoch for log truncation detection (KIP-320).&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;For &lt;code&gt;max_fetch_size&lt;/code&gt;, the value &lt;code&gt;0&lt;/code&gt; means no limit.&lt;/p&gt;
&lt;p&gt;For &lt;code&gt;max_partition_fetch_size&lt;/code&gt;, this setting controls the maximum bytes to fetch per partition.
If a single record batch is larger than this value, the broker will still return it to ensure the consumer can make progress.
This setting only applies when using the franz-go client.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;rack_id&lt;/code&gt; setting enables rack-aware replica selection.
When configured and brokers support a rack-aware replica selector, the client will prefer fetching from the closest replica.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;use_leader_epoch&lt;/code&gt; setting is experimental and controls whether the consumer uses leader epochs (KIP-320) for detecting log truncation.
When enabled, the consumer uses the leader epoch returned by brokers to detect log truncation.
Setting this to &lt;code&gt;false&lt;/code&gt; clears the leader epoch from fetch offsets, disabling KIP-320.
Disabling can improve compatibility with brokers that don&amp;rsquo;t fully support leader epochs (for example, Azure Event Hubs), but you lose automatic log-truncation safety.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;initial_offset&lt;/code&gt; must be either &lt;code&gt;&amp;quot;latest&amp;quot;&lt;/code&gt; or &lt;code&gt;&amp;quot;earliest&amp;quot;&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;group_rebalance_strategy&lt;/code&gt; argument determines how Kafka distributes topic partitions among the consumers in the group during rebalances.
Supported strategies are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;range&lt;/code&gt;: This strategy assigns partitions to consumers based on a range.
It aims to distribute partitions evenly across consumers, but it can lead to uneven distribution if the number of partitions is not a multiple of the number of consumers.
For more information, refer to the Kafka RangeAssignor documentation, see &lt;a href=&#34;https://kafka.apache.org/31/javadoc/org/apache/kafka/clients/consumer/RangeAssignor.html&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;RangeAssignor&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;roundrobin&lt;/code&gt;: This strategy assigns partitions to consumers in a round-robin fashion.
It ensures a more even distribution of partitions across consumers, especially when the number of partitions is not a multiple of the number of consumers.
For more information, refer to the Kafka RoundRobinAssignor documentation, see &lt;a href=&#34;https://kafka.apache.org/31/javadoc/org/apache/kafka/clients/consumer/RoundRobinAssignor.html&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;RoundRobinAssignor&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sticky&lt;/code&gt;: This strategy aims to maintain the same partition assignments during rebalances as much as possible.
It minimizes the number of partition movements, which can be beneficial for stateful consumers.
For more information, refer to the Kafka StickyAssignor documentation, see &lt;a href=&#34;https://kafka.apache.org/31/javadoc/org/apache/kafka/clients/consumer/StickyAssignor.html&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;StickyAssignor&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cooperative-sticky&lt;/code&gt;: This strategy uses incremental cooperative rebalancing to reduce partition movement during rebalances.
For more information, refer to the Kafka CooperativeStickyAssignor documentation, see &lt;a href=&#34;https://kafka.apache.org/31/javadoc/org/apache/kafka/clients/consumer/CooperativeStickyAssignor.html&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;CooperativeStickyAssignor&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Using a &lt;code&gt;group_instance_id&lt;/code&gt; is useful for stateful consumers or when you need to ensure that a specific consumer instance is always assigned the same set of partitions.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If &lt;code&gt;group_instance_id&lt;/code&gt; is set to a non-empty string, the consumer is treated as a static member of the group.
This means that the consumer will maintain its partition assignments across restarts and rebalances, as long as it rejoins the group with the same &lt;code&gt;group_instance_id&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;If &lt;code&gt;group_instance_id&lt;/code&gt; is set to an empty string (or not set), the consumer is treated as a dynamic member.
In this case, the consumer&amp;rsquo;s partition assignments may change during rebalances.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.receiver.kafka&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 20;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#output\&amp;#34;\u003e\u003ccode\u003eoutput\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures where to send received telemetry data.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#authentication\&amp;#34;\u003e\u003ccode\u003eauthentication\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures authentication for connecting to Kafka brokers.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eauthentication\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#kerberos\&amp;#34;\u003e\u003ccode\u003ekerberos\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eAuthenticates against Kafka brokers with Kerberos.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eauthentication\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#plaintext\&amp;#34;\u003e\u003ccode\u003eplaintext\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003e(Deprecated) Authenticates against Kafka brokers with plaintext.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eauthentication\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#sasl\&amp;#34;\u003e\u003ccode\u003esasl\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eAuthenticates against Kafka brokers with SASL.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eauthentication\u003c/code\u003e \u0026gt; \u003ccode\u003esasl\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#aws_msk\&amp;#34;\u003e\u003ccode\u003eaws_msk\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eAdditional SASL parameters when using AWS_MSK_IAM_OAUTHBEARER.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eauthentication\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#tls\&amp;#34;\u003e\u003ccode\u003etls\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003e(Deprecated) Configures TLS for connecting to the Kafka brokers.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eauthentication\u003c/code\u003e \u0026gt; \u003ccode\u003etls\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#tpm\&amp;#34;\u003e\u003ccode\u003etpm\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TPM settings for the TLS \u003ccode\u003ekey_file\u003c/code\u003e.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#autocommit\&amp;#34;\u003e\u003ccode\u003eautocommit\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures how to automatically commit updated topic offsets to back to the Kafka brokers.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics which this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#logs\&amp;#34;\u003e\u003ccode\u003elogs\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures how to send logs to Kafka brokers.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#error_backoff\&amp;#34;\u003e\u003ccode\u003eerror_backoff\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures how to handle errors when receiving messages from Kafka.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#header_extraction\&amp;#34;\u003e\u003ccode\u003eheader_extraction\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eExtract headers from Kafka records.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#message_marking\&amp;#34;\u003e\u003ccode\u003emessage_marking\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures when Kafka messages are marked as read.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#metadata\&amp;#34;\u003e\u003ccode\u003emetadata\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures how to retrieve metadata from Kafka brokers.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003emetadata\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#retry\&amp;#34;\u003e\u003ccode\u003eretry\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures how to retry metadata retrieval.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#metrics\&amp;#34;\u003e\u003ccode\u003emetrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures how to send metrics to Kafka brokers.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#traces\&amp;#34;\u003e\u003ccode\u003etraces\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures how to send traces to Kafka brokers.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#tls\&amp;#34;\u003e\u003ccode\u003etls\u003c/code\u003e\u003c/a\u003e[]\u003c/td\u003e\n              \u003ctd\u003eConfigures TLS for connecting to the Kafka brokers.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003etls\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#tpm\&amp;#34;\u003e\u003ccode\u003etpm\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TPM settings for the TLS \u003ccode\u003ekey_file\u003c/code\u003e.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures where to send received telemetry data.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#authentication&#34;&gt;&lt;code&gt;authentication&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures authentication for connecting to Kafka brokers.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;authentication&lt;/code&gt; &amp;gt; &lt;a href=&#34;#kerberos&#34;&gt;&lt;code&gt;kerberos&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Authenticates against Kafka brokers with Kerberos.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;authentication&lt;/code&gt; &amp;gt; &lt;a href=&#34;#plaintext&#34;&gt;&lt;code&gt;plaintext&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;(Deprecated) Authenticates against Kafka brokers with plaintext.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;authentication&lt;/code&gt; &amp;gt; &lt;a href=&#34;#sasl&#34;&gt;&lt;code&gt;sasl&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Authenticates against Kafka brokers with SASL.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;authentication&lt;/code&gt; &amp;gt; &lt;code&gt;sasl&lt;/code&gt; &amp;gt; &lt;a href=&#34;#aws_msk&#34;&gt;&lt;code&gt;aws_msk&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Additional SASL parameters when using AWS_MSK_IAM_OAUTHBEARER.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;authentication&lt;/code&gt; &amp;gt; &lt;a href=&#34;#tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;(Deprecated) Configures TLS for connecting to the Kafka brokers.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;authentication&lt;/code&gt; &amp;gt; &lt;code&gt;tls&lt;/code&gt; &amp;gt; &lt;a href=&#34;#tpm&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TPM settings for the TLS &lt;code&gt;key_file&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#autocommit&#34;&gt;&lt;code&gt;autocommit&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures how to automatically commit updated topic offsets to back to the Kafka brokers.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics which this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#logs&#34;&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures how to send logs to Kafka brokers.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#error_backoff&#34;&gt;&lt;code&gt;error_backoff&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures how to handle errors when receiving messages from Kafka.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#header_extraction&#34;&gt;&lt;code&gt;header_extraction&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Extract headers from Kafka records.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#message_marking&#34;&gt;&lt;code&gt;message_marking&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures when Kafka messages are marked as read.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#metadata&#34;&gt;&lt;code&gt;metadata&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures how to retrieve metadata from Kafka brokers.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metadata&lt;/code&gt; &amp;gt; &lt;a href=&#34;#retry&#34;&gt;&lt;code&gt;retry&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures how to retry metadata retrieval.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#metrics&#34;&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures how to send metrics to Kafka brokers.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#traces&#34;&gt;&lt;code&gt;traces&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures how to send traces to Kafka brokers.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/a&gt;[]&lt;/td&gt;
              &lt;td&gt;Configures TLS for connecting to the Kafka brokers.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;tls&lt;/code&gt; &amp;gt; &lt;a href=&#34;#tpm&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TPM settings for the TLS &lt;code&gt;key_file&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;



&lt;div data-shared=&#34;reference/components/output-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;output&lt;/code&gt; block configures a set of components to forward resulting telemetry data to.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send logs to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send metrics to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;traces&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send traces to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You must specify the &lt;code&gt;output&lt;/code&gt; block, but all its arguments are optional.
By default, telemetry data is dropped.
Configure the &lt;code&gt;metrics&lt;/code&gt;, &lt;code&gt;logs&lt;/code&gt;, and &lt;code&gt;traces&lt;/code&gt; arguments accordingly to send telemetry data to other components.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;logs&#34;&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;logs&lt;/code&gt; block configures how to receive logs from Kafka brokers.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;encoding&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The encoding for logs. Refer to &lt;a href=&#34;#supported-encodings&#34;&gt;Supported encodings&lt;/a&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;otlp_proto&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;topic&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;(Deprecated: use &lt;code&gt;topics&lt;/code&gt; instead) The name of the Kafka topic on which logs will be received.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;topics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The names of the Kafka topics on which logs will be received.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[&amp;quot;otlp_logs&amp;quot;]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;

&lt;div class=&#34;admonition admonition-warning&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Warning&lt;/p&gt;&lt;p&gt;The &lt;code&gt;topic&lt;/code&gt; argument is deprecated in favor of &lt;code&gt;topics&lt;/code&gt;.
If &lt;code&gt;topic&lt;/code&gt; is set, it will take precedence over default value of &lt;code&gt;topics&lt;/code&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h3 id=&#34;metrics&#34;&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;metrics&lt;/code&gt; block configures how to receive metrics from Kafka brokers.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;encoding&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The encoding for logs. Refer to &lt;a href=&#34;#supported-encodings&#34;&gt;Supported encodings&lt;/a&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;otlp_proto&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;topic&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;(Deprecated: use &lt;code&gt;topics&lt;/code&gt; instead) The name of the Kafka topic on which metrics will be received.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;topics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The names of the Kafka topics on which metrics will be received.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[&amp;quot;otlp_metrics&amp;quot;]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;

&lt;div class=&#34;admonition admonition-warning&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Warning&lt;/p&gt;&lt;p&gt;The &lt;code&gt;topic&lt;/code&gt; argument is deprecated in favor of &lt;code&gt;topics&lt;/code&gt;.
If &lt;code&gt;topic&lt;/code&gt; is set, it will take precedence over default value of &lt;code&gt;topics&lt;/code&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h3 id=&#34;traces&#34;&gt;&lt;code&gt;traces&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;traces&lt;/code&gt; block configures how to receive traces from Kafka brokers.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;encoding&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The encoding for logs. Refer to &lt;a href=&#34;#supported-encodings&#34;&gt;Supported encodings&lt;/a&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;otlp_proto&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;topic&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;(Deprecated: use &lt;code&gt;topics&lt;/code&gt; instead) The name of the Kafka topic on which traces will be received.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;topics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The names of the Kafka topics on which traces will be received.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[&amp;quot;otlp_spans&amp;quot;]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;

&lt;div class=&#34;admonition admonition-warning&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Warning&lt;/p&gt;&lt;p&gt;The &lt;code&gt;topic&lt;/code&gt; argument is deprecated in favor of &lt;code&gt;topics&lt;/code&gt;.
If &lt;code&gt;topic&lt;/code&gt; is set, it will take precedence over default value of &lt;code&gt;topics&lt;/code&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h3 id=&#34;authentication&#34;&gt;&lt;code&gt;authentication&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-kafka-authentication.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;authentication&lt;/code&gt; block holds the definition of different authentication mechanisms to use when connecting to Kafka brokers.
It doesn&amp;rsquo;t support any arguments and is configured fully through inner blocks.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;kerberos&#34;&gt;&lt;code&gt;kerberos&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-kafka-authentication-kerberos.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;kerberos&lt;/code&gt; block configures Kerberos authentication against the Kafka broker.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;config_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to Kerberos location, for example, &lt;code&gt;/etc/krb5.conf&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_fast_negotiation&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Disable PA-FX-FAST negotiation.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;keytab_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to keytab file, for example, &lt;code&gt;/etc/security/kafka.keytab&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;password&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;secret&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Kerberos password to authenticate with.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;realm&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Kerberos realm.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;service_name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Kerberos service name.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;use_keytab&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables using keytab instead of password.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;username&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Kerberos username to authenticate as.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;When &lt;code&gt;use_keytab&lt;/code&gt; is &lt;code&gt;false&lt;/code&gt;, the &lt;code&gt;password&lt;/code&gt; argument is required.
When &lt;code&gt;use_keytab&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;, the file pointed to by the &lt;code&gt;keytab_file&lt;/code&gt; argument is used for authentication instead.
At most one of &lt;code&gt;password&lt;/code&gt; or &lt;code&gt;keytab_file&lt;/code&gt; must be provided.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;disable_fast_negotiation&lt;/code&gt; is useful for Kerberos implementations which don&amp;rsquo;t support PA-FX-FAST (Pre-Authentication Framework - Fast) negotiation.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;plaintext&#34;&gt;&lt;code&gt;plaintext&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-kafka-authentication-plaintext.md&#34;&gt;
            

&lt;div class=&#34;admonition admonition-caution&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Caution&lt;/p&gt;&lt;p&gt;The &lt;code&gt;plaintext&lt;/code&gt; block has been deprecated.
Use &lt;code&gt;sasl&lt;/code&gt; with &lt;code&gt;mechanism&lt;/code&gt; set to &lt;code&gt;PLAIN&lt;/code&gt; instead.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;The &lt;code&gt;plaintext&lt;/code&gt; block configures plain text authentication against Kafka brokers.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;password&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;secret&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Password to use for plain text authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;username&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Username to use for plain text authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;

        
&lt;h3 id=&#34;sasl&#34;&gt;&lt;code&gt;sasl&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-kafka-authentication-sasl.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;sasl&lt;/code&gt; block configures SASL authentication against Kafka brokers.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;mechanism&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;SASL mechanism to use when authenticating.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;password&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;secret&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Password to use for SASL authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;username&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Username to use for SASL authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Version of the SASL Protocol to use when authenticating.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You can set the &lt;code&gt;mechanism&lt;/code&gt; argument to one of the following strings:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;PLAIN&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;SCRAM-SHA-256&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;SCRAM-SHA-512&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;AWS_MSK_IAM_OAUTHBEARER&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When &lt;code&gt;mechanism&lt;/code&gt; is set to &lt;code&gt;&amp;quot;AWS_MSK_IAM_OAUTHBEARER&amp;quot;&lt;/code&gt;, the &lt;code&gt;aws_msk&lt;/code&gt; child block must also be provided.&lt;/p&gt;
&lt;p&gt;You can set the &lt;code&gt;version&lt;/code&gt; argument to either &lt;code&gt;0&lt;/code&gt; or &lt;code&gt;1&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;aws_msk&#34;&gt;&lt;code&gt;aws_msk&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-kafka-authentication-sasl-aws_msk.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;aws_msk&lt;/code&gt; block configures extra parameters for SASL authentication when using the &lt;code&gt;AWS_MSK_IAM_OAUTHBEARER&lt;/code&gt; mechanisms.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;region&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;AWS region the MSK cluster is based in.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;

        
&lt;h3 id=&#34;tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;tls&lt;/code&gt; block configures TLS settings used for connecting to the Kafka brokers.
If the &lt;code&gt;tls&lt;/code&gt; block isn&amp;rsquo;t provided, TLS won&amp;rsquo;t be used for communication.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-tls-client-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ca_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the CA file.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ca_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;CA PEM-encoded text to validate the server with.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cert_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS certificate.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cert_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Certificate PEM-encoded text for client authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cipher_suites&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of TLS cipher suites that the TLS transport can use.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;curve_preferences&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Set of elliptic curves to use in a handshake.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_system_ca_certs_pool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to load the system certificate authorities pool alongside the certificate authority.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;insecure_skip_verify&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Ignores insecure server TLS certificates.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;insecure&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Disables TLS when connecting to the configured server.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS certificate key.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;secret&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Key PEM-encoded text for client authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum acceptable TLS version for connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;TLS 1.3&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;min_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Minimum acceptable TLS version for connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;TLS 1.2&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;reload_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The duration after which the certificate is reloaded.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;server_name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Verifies the hostname of server certificates when set.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If the server doesn&amp;rsquo;t support TLS, you must set the &lt;code&gt;insecure&lt;/code&gt; argument to &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;To disable &lt;code&gt;tls&lt;/code&gt; for connections to the server, set the &lt;code&gt;insecure&lt;/code&gt; argument to &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;If you set &lt;code&gt;reload_interval&lt;/code&gt; to &lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;, the certificate never reloaded.&lt;/p&gt;
&lt;p&gt;The following pairs of arguments are mutually exclusive and can&amp;rsquo;t both be set simultaneously:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ca_pem&lt;/code&gt; and &lt;code&gt;ca_file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cert_pem&lt;/code&gt; and &lt;code&gt;cert_file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;key_pem&lt;/code&gt; and &lt;code&gt;key_file&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If &lt;code&gt;cipher_suites&lt;/code&gt; is left blank, a safe default list is used.
Refer to the &lt;a href=&#34;https://go.dev/src/crypto/tls/cipher_suites.go&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Go TLS documentation&lt;/a&gt; for a list of supported cipher suites.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;curve_preferences&lt;/code&gt; argument determines the set of &lt;a href=&#34;https://go.dev/src/crypto/tls/common.go#L138&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;elliptic curves&lt;/a&gt; to prefer during a handshake in preference order.
If not provided, a default list is used.
The set of elliptic curves available are &lt;code&gt;X25519&lt;/code&gt;, &lt;code&gt;P521&lt;/code&gt;, &lt;code&gt;P256&lt;/code&gt;, and &lt;code&gt;P384&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;tpm&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;tpm&lt;/code&gt; block configures retrieving the TLS &lt;code&gt;key_file&lt;/code&gt; from a trusted device.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-tls-tpm-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The authorization value used to authenticate the TPM device.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Load the &lt;code&gt;tls.key_file&lt;/code&gt; from TPM.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;owner_auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The owner authorization value used to authenticate the TPM device.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;path&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TPM device or Unix domain socket.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;a href=&#34;https://trustedcomputinggroup.org/resource/trusted-platform-module-tpm-summary/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;trusted platform module&lt;/a&gt; (TPM) configuration can be used for loading TLS key from TPM. Currently only TSS2 format is supported.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;path&lt;/code&gt; attribute is not supported on Windows.&lt;/p&gt;
&lt;p&gt;In the following example, the private key &lt;code&gt;my-tss2-key.key&lt;/code&gt; in TSS2 format is loaded from the TPM device &lt;code&gt;/dev/tmprm0&lt;/code&gt;:&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;otelcol.example.component &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
    ...
    tls {
        ...
        key_file = &amp;#34;my-tss2-key.key&amp;#34;
        tpm {
            enabled = true
            path = &amp;#34;/dev/tpmrm0&amp;#34;
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;autocommit&#34;&gt;&lt;code&gt;autocommit&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;autocommit&lt;/code&gt; block configures how to automatically commit updated topic offsets back to the Kafka brokers.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enable&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enable autocommitting updated topic offsets.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How frequently to autocommit.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;1s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h3 id=&#34;error_backoff&#34;&gt;&lt;code&gt;error_backoff&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;error_backoff&lt;/code&gt; block configures how failed requests to Kafka are retried.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables retrying failed requests.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;initial_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Initial time to wait before retrying a failed request.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_elapsed_time&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum time to wait before discarding a failed batch.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum time to wait between retries.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;multiplier&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Factor to grow wait time before retrying.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;randomization_factor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Factor to randomize wait time before retrying.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;When &lt;code&gt;enabled&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;, failed batches are retried after a given interval.
The &lt;code&gt;initial_interval&lt;/code&gt; argument specifies how long to wait before the first retry attempt.
If requests continue to fail, the time to wait before retrying increases by the factor specified by the &lt;code&gt;multiplier&lt;/code&gt; argument, which must be greater than &lt;code&gt;1.0&lt;/code&gt;.
The &lt;code&gt;max_interval&lt;/code&gt; argument specifies the upper bound of how long to wait between retries.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;randomization_factor&lt;/code&gt; argument is useful for adding jitter between retrying Alloy instances.
If &lt;code&gt;randomization_factor&lt;/code&gt; is greater than &lt;code&gt;0&lt;/code&gt;, the wait time before retries is multiplied by a random factor in the range &lt;code&gt;[ I - randomization_factor * I, I &#43; randomization_factor * I]&lt;/code&gt;, where &lt;code&gt;I&lt;/code&gt; is the current interval.&lt;/p&gt;
&lt;p&gt;If a batch hasn&amp;rsquo;t been sent successfully, it&amp;rsquo;s discarded after the time specified by &lt;code&gt;max_elapsed_time&lt;/code&gt; elapses.
If &lt;code&gt;max_elapsed_time&lt;/code&gt; is set to &lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;, failed requests are retried forever until they succeed.&lt;/p&gt;
&lt;h3 id=&#34;header_extraction&#34;&gt;&lt;code&gt;header_extraction&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;header_extraction&lt;/code&gt; block configures how to extract headers from Kafka records.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;extract_headers&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables attaching header fields to resource attributes.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;headers&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of headers to extract from the Kafka record.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;Regular expressions aren&amp;rsquo;t allowed in the &lt;code&gt;headers&lt;/code&gt; argument.
Only exact matching will be performed.&lt;/p&gt;
&lt;h3 id=&#34;message_marking&#34;&gt;&lt;code&gt;message_marking&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;message_marking&lt;/code&gt; block configures when Kafka messages are marked as read.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;after_execution&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Mark messages after forwarding telemetry data to other components.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_unsuccessful&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether failed forwards should be marked as read.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;By default, a Kafka message is marked as read immediately after it&amp;rsquo;s retrieved from the Kafka broker.
If the &lt;code&gt;after_execution&lt;/code&gt; argument is true, messages are only read after the telemetry data is forwarded to components specified in [the &lt;code&gt;output&lt;/code&gt; block][output].&lt;/p&gt;
&lt;p&gt;When &lt;code&gt;after_execution&lt;/code&gt; is true, messages are only marked as read when they&amp;rsquo;re decoded successfully and components where the data was forwarded didn&amp;rsquo;t return an error.
If the &lt;code&gt;include_unsuccessful&lt;/code&gt; argument is true, messages are marked as read even if decoding or forwarding failed.
Setting &lt;code&gt;include_unsuccessful&lt;/code&gt; has no effect if &lt;code&gt;after_execution&lt;/code&gt; is &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-warning&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Warning&lt;/p&gt;&lt;p&gt;Setting &lt;code&gt;after_execution&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; and &lt;code&gt;include_unsuccessful&lt;/code&gt; to &lt;code&gt;false&lt;/code&gt; can block the entire Kafka partition if message processing returns a permanent error, such as failing to decode.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h3 id=&#34;metadata&#34;&gt;&lt;code&gt;metadata&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-kafka-metadata.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;metadata&lt;/code&gt; block configures how to retrieve and store metadata from the Kafka broker.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;full&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to maintain a full set of metadata.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;refresh_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The frequency at which cluster metadata is refreshed.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;10m&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;When &lt;code&gt;full&lt;/code&gt; is set to &lt;code&gt;false&lt;/code&gt;, the client does not make the initial request to broker at the startup.&lt;/p&gt;
&lt;p&gt;Retrieving metadata may fail if the Kafka broker is starting up at the same time as the Alloy component.
The &lt;code&gt;retry&lt;/code&gt; child block can be provided to customize retry behavior.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;retry&#34;&gt;&lt;code&gt;retry&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-kafka-metadata-retry.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;retry&lt;/code&gt; block configures how to retry retrieving metadata when retrieval fails.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;backoff&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Time to wait between retries.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;250ms&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_retries&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How many times to reattempt retrieving metadata.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;3&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;

        
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.kafka&lt;/code&gt; doesn&amp;rsquo;t export any fields.&lt;/p&gt;
&lt;h2 id=&#34;supported-encodings&#34;&gt;Supported encodings&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.kafka&lt;/code&gt; supports encoding extensions, as well as the following built-in encodings.&lt;/p&gt;
&lt;p&gt;Available for all signals:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;otlp_proto&lt;/code&gt;: the payload is decoded as OTLP Protobuf&lt;/li&gt;
&lt;li&gt;&lt;code&gt;otlp_json&lt;/code&gt;: the payload is decoded as OTLP JSON&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Available only for traces:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;jaeger_proto&lt;/code&gt;: the payload is deserialized to a single Jaeger proto &lt;code&gt;Span&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;jaeger_json&lt;/code&gt;: the payload is deserialized to a single Jaeger JSON Span using &lt;code&gt;jsonpb&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;zipkin_proto&lt;/code&gt;: the payload is deserialized into a list of Zipkin proto spans.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;zipkin_json&lt;/code&gt;: the payload is deserialized into a list of Zipkin V2 JSON spans.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;zipkin_thrift&lt;/code&gt;: the payload is deserialized into a list of Zipkin Thrift spans.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Available only for logs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;raw&lt;/code&gt;: the payload&amp;rsquo;s bytes are inserted as the body of a log record.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;text&lt;/code&gt;: the payload are decoded as text and inserted as the body of a log record. By default, it uses UTF-8 to decode. You can use &lt;code&gt;text_&amp;lt;ENCODING&amp;gt;&lt;/code&gt;, like &lt;code&gt;text_utf-8&lt;/code&gt;, &lt;code&gt;text_shift_jis&lt;/code&gt;, etc., to customize this behavior.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;json&lt;/code&gt;: the payload is decoded as JSON and inserted as the body of a log record.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;azure_resource_logs&lt;/code&gt;: the payload is converted from Azure Resource Logs format to OTel format.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;message-header-propagation&#34;&gt;Message header propagation&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.kafka&lt;/code&gt; will extract Kafka message headers and include them as request metadata (context).
This metadata can then be used throughout the pipeline, for example to set attributes using &lt;code&gt;otelcol.processor.attributes&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.kafka&lt;/code&gt; is only reported as unhealthy if given an invalid
configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.kafka&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;p&gt;This example forwards read telemetry data through a batch processor before finally sending it to an OTLP-capable endpoint:&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;otelcol.receiver.kafka &amp;#34;default&amp;#34; {
  brokers          = [&amp;#34;localhost:9092&amp;#34;]
  protocol_version = &amp;#34;2.0.0&amp;#34;

  output {
    metrics = [otelcol.processor.batch.default.input]
    logs    = [otelcol.processor.batch.default.input]
    traces  = [otelcol.processor.batch.default.input]
  }
}

otelcol.processor.batch &amp;#34;default&amp;#34; {
  output {
    metrics = [otelcol.exporter.otlphttp.default.input]
    logs    = [otelcol.exporter.otlphttp.default.input]
    traces  = [otelcol.exporter.otlphttp.default.input]
  }
}

otelcol.exporter.otlphttp &amp;#34;default&amp;#34; {
  client {
    endpoint = sys.env(&amp;#34;OTLP_ENDPOINT&amp;#34;)
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.kafka&lt;/code&gt; can accept arguments from the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that export &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-exporters&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolreceiverkafka">&lt;code>otelcol.receiver.kafka&lt;/code>&lt;/h1>
&lt;p>&lt;code>otelcol.receiver.kafka&lt;/code> accepts telemetry data from a Kafka broker and forwards it to other &lt;code>otelcol.*&lt;/code> components.&lt;/p>
&lt;div class="admonition admonition-note">&lt;blockquote>&lt;p class="title text-uppercase">Note&lt;/p>&lt;p>&lt;code>otelcol.receiver.kafka&lt;/code> is a wrapper over the upstream OpenTelemetry Collector &lt;a href="https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/receiver/kafkareceiver" target="_blank" rel="noopener noreferrer">&lt;code>kafka&lt;/code>&lt;/a> receiver.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p></description></item><item><title>otelcol.receiver.loki</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.receiver.loki/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.receiver.loki/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolreceiverloki&#34;&gt;&lt;code&gt;otelcol.receiver.loki&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.loki&lt;/code&gt; receives Loki log entries, converts them to the OpenTelemetry logs format, and forwards them to other &lt;code&gt;otelcol.*&lt;/code&gt; components.&lt;/p&gt;
&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.receiver.loki&lt;/code&gt; components by giving them different labels.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.receiver.loki&lt;/code&gt; is a custom component unrelated to any receivers from the upstream OpenTelemetry Collector.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.receiver.loki &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  output {
    logs = [...]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;otelcol.receiver.loki&lt;/code&gt; component doesn&amp;rsquo;t support any arguments. You can configure this component with blocks.&lt;/p&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.receiver.loki&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 1;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#output\&amp;#34;\u003e\u003ccode\u003eoutput\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures where to send converted telemetry data.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures where to send converted telemetry data.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;



&lt;div data-shared=&#34;reference/components/output-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;output&lt;/code&gt; block configures a set of components to forward resulting telemetry data to.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send logs to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send metrics to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;traces&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send traces to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You must specify the &lt;code&gt;output&lt;/code&gt; block, but all its arguments are optional.
By default, telemetry data is dropped.
Configure the &lt;code&gt;metrics&lt;/code&gt;, &lt;code&gt;logs&lt;/code&gt;, and &lt;code&gt;traces&lt;/code&gt; arguments accordingly to send telemetry data to other components.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;The following fields are exported and can be referenced by other components:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&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;code&gt;receiver&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;LogsReceiver&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A value that other components can use to send Loki logs to.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.loki&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.loki&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;p&gt;This example uses the &lt;code&gt;otelcol.receiver.loki&lt;/code&gt; component as a bridge between the Loki and OpenTelemetry ecosystems.
The component exposes a receiver which the &lt;code&gt;loki.source.file&lt;/code&gt; component uses to send Loki log entries to.
The logs are converted to the OTLP format before they&amp;rsquo;re forwarded to the &lt;code&gt;otelcol.exporter.otlphttp&lt;/code&gt; component to be sent to an OTLP-capable endpoint:&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;loki.source.file &amp;#34;default&amp;#34; {
  targets = [
    {__path__ = &amp;#34;/tmp/foo.txt&amp;#34;, &amp;#34;loki.format&amp;#34; = &amp;#34;logfmt&amp;#34;},
    {__path__ = &amp;#34;/tmp/bar.txt&amp;#34;, &amp;#34;loki.format&amp;#34; = &amp;#34;json&amp;#34;},
  ]
  forward_to = [otelcol.receiver.loki.default.receiver]
}

otelcol.receiver.loki &amp;#34;default&amp;#34; {
  output {
    logs = [otelcol.exporter.otlphttp.default.input]
  }
}

otelcol.exporter.otlphttp &amp;#34;default&amp;#34; {
  client {
    endpoint = sys.env(&amp;#34;&amp;lt;OTLP_ENDPOINT&amp;gt;&amp;#34;)
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.loki&lt;/code&gt; can accept arguments from the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that export &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-exporters&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.loki&lt;/code&gt; has exports that can be consumed by the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that consume &lt;a href=&#34;../../../compatibility/#loki-logsreceiver-consumers&#34;&gt;Loki &lt;code&gt;LogsReceiver&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolreceiverloki">&lt;code>otelcol.receiver.loki&lt;/code>&lt;/h1>
&lt;p>&lt;code>otelcol.receiver.loki&lt;/code> receives Loki log entries, converts them to the OpenTelemetry logs format, and forwards them to other &lt;code>otelcol.*&lt;/code> components.&lt;/p>
&lt;p>You can specify multiple &lt;code>otelcol.receiver.loki&lt;/code> components by giving them different labels.&lt;/p></description></item><item><title>otelcol.receiver.opencensus</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.receiver.opencensus/</link><pubDate>Mon, 30 Mar 2026 15:47:22 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.receiver.opencensus/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolreceiveropencensus&#34;&gt;&lt;code&gt;otelcol.receiver.opencensus&lt;/code&gt;&lt;/h1&gt;


&lt;div class=&#34;admonition admonition-warning&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Warning&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.receiver.opencensus&lt;/code&gt; is removed.
Use &lt;a href=&#34;../otelcol.reciever.otlp&#34;&gt;&lt;code&gt;otelcol.reciever.otlp&lt;/code&gt;&lt;/a&gt; instead.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

]]></content><description>&lt;h1 id="otelcolreceiveropencensus">&lt;code>otelcol.receiver.opencensus&lt;/code>&lt;/h1>
&lt;div class="admonition admonition-warning">&lt;blockquote>&lt;p class="title text-uppercase">Warning&lt;/p>&lt;p>&lt;code>otelcol.receiver.opencensus&lt;/code> is removed.
Use &lt;a href="../otelcol.reciever.otlp">&lt;code>otelcol.reciever.otlp&lt;/code>&lt;/a> instead.&lt;/p>&lt;/blockquote>&lt;/div></description></item><item><title>otelcol.receiver.otlp</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.receiver.otlp/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.receiver.otlp/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolreceiverotlp&#34;&gt;&lt;code&gt;otelcol.receiver.otlp&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.otlp&lt;/code&gt; accepts OTLP-formatted data over the network and forwards it to other &lt;code&gt;otelcol.*&lt;/code&gt; components.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.receiver.otlp&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector/tree/v0.147.0/receiver/otlpreceiver&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;otlp&lt;/code&gt;&lt;/a&gt; receiver.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;Multiple &lt;code&gt;otelcol.receiver.otlp&lt;/code&gt; components can be specified by giving them
different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.receiver.otlp &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  grpc { ... }
  http { ... }

  output {
    metrics = [...]
    logs    = [...]
    traces  = [...]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;otelcol.receiver.otlp&lt;/code&gt; component doesn&amp;rsquo;t support any arguments. You can configure this component with blocks.&lt;/p&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.receiver.otlp&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 12;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#output\&amp;#34;\u003e\u003ccode\u003eoutput\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures where to send received telemetry data.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#grpc\&amp;#34;\u003e\u003ccode\u003egrpc\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the gRPC server to receive telemetry data.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003egrpc\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#keepalive\&amp;#34;\u003e\u003ccode\u003ekeepalive\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures keepalive settings for the configured server.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003egrpc\u003c/code\u003e \u0026gt; \u003ccode\u003ekeepalive\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#enforcement_policy\&amp;#34;\u003e\u003ccode\u003eenforcement_policy\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eEnforcement policy for keepalive settings.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003egrpc\u003c/code\u003e \u0026gt; \u003ccode\u003ekeepalive\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#server_parameters\&amp;#34;\u003e\u003ccode\u003eserver_parameters\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eServer parameters used to configure keepalive settings.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003egrpc\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#tls\&amp;#34;\u003e\u003ccode\u003etls\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TLS for the gRPC server.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003egrpc\u003c/code\u003e \u0026gt; \u003ccode\u003etls\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#tpm\&amp;#34;\u003e\u003ccode\u003etpm\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TPM settings for the TLS \u003ccode\u003ekey_file\u003c/code\u003e.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#http\&amp;#34;\u003e\u003ccode\u003ehttp\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the HTTP server to receive telemetry data.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003ehttp\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#cors\&amp;#34;\u003e\u003ccode\u003ecors\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures CORS for the HTTP server.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003ehttp\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#tls\&amp;#34;\u003e\u003ccode\u003etls\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TLS for the HTTP server.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003ehttp\u003c/code\u003e \u0026gt; \u003ccode\u003etls\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#tpm\&amp;#34;\u003e\u003ccode\u003etpm\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TPM settings for the TLS \u003ccode\u003ekey_file\u003c/code\u003e.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures where to send received telemetry data.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#grpc&#34;&gt;&lt;code&gt;grpc&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the gRPC server to receive telemetry data.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;grpc&lt;/code&gt; &amp;gt; &lt;a href=&#34;#keepalive&#34;&gt;&lt;code&gt;keepalive&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures keepalive settings for the configured server.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;grpc&lt;/code&gt; &amp;gt; &lt;code&gt;keepalive&lt;/code&gt; &amp;gt; &lt;a href=&#34;#enforcement_policy&#34;&gt;&lt;code&gt;enforcement_policy&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enforcement policy for keepalive settings.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;grpc&lt;/code&gt; &amp;gt; &lt;code&gt;keepalive&lt;/code&gt; &amp;gt; &lt;a href=&#34;#server_parameters&#34;&gt;&lt;code&gt;server_parameters&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Server parameters used to configure keepalive settings.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;grpc&lt;/code&gt; &amp;gt; &lt;a href=&#34;#tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TLS for the gRPC server.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;grpc&lt;/code&gt; &amp;gt; &lt;code&gt;tls&lt;/code&gt; &amp;gt; &lt;a href=&#34;#tpm&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TPM settings for the TLS &lt;code&gt;key_file&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#http&#34;&gt;&lt;code&gt;http&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the HTTP server to receive telemetry data.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;http&lt;/code&gt; &amp;gt; &lt;a href=&#34;#cors&#34;&gt;&lt;code&gt;cors&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures CORS for the HTTP server.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;http&lt;/code&gt; &amp;gt; &lt;a href=&#34;#tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TLS for the HTTP server.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;http&lt;/code&gt; &amp;gt; &lt;code&gt;tls&lt;/code&gt; &amp;gt; &lt;a href=&#34;#tpm&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TPM settings for the TLS &lt;code&gt;key_file&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;



&lt;div data-shared=&#34;reference/components/output-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;output&lt;/code&gt; block configures a set of components to forward resulting telemetry data to.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send logs to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send metrics to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;traces&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send traces to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You must specify the &lt;code&gt;output&lt;/code&gt; block, but all its arguments are optional.
By default, telemetry data is dropped.
Configure the &lt;code&gt;metrics&lt;/code&gt;, &lt;code&gt;logs&lt;/code&gt;, and &lt;code&gt;traces&lt;/code&gt; arguments accordingly to send telemetry data to other components.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h3 id=&#34;grpc&#34;&gt;&lt;code&gt;grpc&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;grpc&lt;/code&gt; block configures the gRPC server used by the component.
If the &lt;code&gt;grpc&lt;/code&gt; block isn&amp;rsquo;t provided, a gRPC server isn&amp;rsquo;t started.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;capsule(otelcol.Handler)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Handler from an &lt;code&gt;otelcol.auth&lt;/code&gt; component to use for authenticating requests.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;host:port&lt;/code&gt; to listen for traffic on.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0.0.0.0:4317&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_metadata&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Propagate incoming connection metadata to downstream consumers.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_concurrent_streams&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Limit the number of concurrent streaming RPC calls.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_recv_msg_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum size of messages the server will accept.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;4MiB&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;read_buffer_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Size of the read buffer the gRPC server will use for reading from clients.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;512KiB&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;transport&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Transport to use for the gRPC server.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;tcp&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;write_buffer_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Size of the write buffer the gRPC server will use for writing to clients.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;keepalive&#34;&gt;&lt;code&gt;keepalive&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;keepalive&lt;/code&gt; block configures keepalive settings for connections to a gRPC server.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;keepalive&lt;/code&gt; doesn&amp;rsquo;t support any arguments and is configured fully through inner blocks.&lt;/p&gt;
&lt;h3 id=&#34;enforcement_policy&#34;&gt;&lt;code&gt;enforcement_policy&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;enforcement_policy&lt;/code&gt; block configures the keepalive enforcement policy for gRPC servers.
The server will close connections from clients that violate the configured policy.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;min_time&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Minimum time clients should wait before sending a keepalive ping.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;5m&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;permit_without_stream&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Allow clients to send keepalive pings when there are no active streams.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;server_parameters&#34;&gt;&lt;code&gt;server_parameters&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;server_parameters&lt;/code&gt; block controls keepalive and maximum age settings for gRPC servers.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_connection_age_grace&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Time to wait before forcibly closing connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;infinity&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_connection_age&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum age for non-idle connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;infinity&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_connection_idle&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum age for idle connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;infinity&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;time&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How often to ping inactive clients to check for liveness.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;2h&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Time to wait before closing inactive clients that don&amp;rsquo;t respond to liveness checks.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;20s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;tls&lt;/code&gt; block configures TLS settings used for a server.
If the &lt;code&gt;tls&lt;/code&gt; block isn&amp;rsquo;t provided, TLS won&amp;rsquo;t be used for connections to the server.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-tls-server-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ca_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the CA file.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ca_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;CA PEM-encoded text to validate the server with.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cert_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS certificate.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cert_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Certificate PEM-encoded text for client authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cipher_suites&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of TLS cipher suites that the TLS transport can use.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;client_ca_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS cert to use by the server to verify a client certificate.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;curve_preferences&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Set of elliptic curves to use in a handshake.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_system_ca_certs_pool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to load the system certificate authorities pool alongside the certificate authority.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS certificate key.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;secret&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Key PEM-encoded text for client authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum acceptable TLS version for connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;TLS 1.3&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;min_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Minimum acceptable TLS version for connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;TLS 1.2&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;reload_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The duration after which the certificate is reloaded.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If &lt;code&gt;reload_interval&lt;/code&gt; is set to &lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;, the certificate never reloaded.&lt;/p&gt;
&lt;p&gt;The following pairs of arguments are mutually exclusive and can&amp;rsquo;t both be set simultaneously:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ca_pem&lt;/code&gt; and &lt;code&gt;ca_file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cert_pem&lt;/code&gt; and &lt;code&gt;cert_file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;key_pem&lt;/code&gt; and &lt;code&gt;key_file&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If &lt;code&gt;cipher_suites&lt;/code&gt; is left blank, a safe default list is used.
Refer to the &lt;a href=&#34;https://go.dev/src/crypto/tls/cipher_suites.go&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Go Cipher Suites documentation&lt;/a&gt; for a list of supported cipher suites.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;client_ca_file&lt;/code&gt; sets the &lt;code&gt;ClientCA&lt;/code&gt; and &lt;code&gt;ClientAuth&lt;/code&gt; to &lt;code&gt;RequireAndVerifyClientCert&lt;/code&gt; in the &lt;code&gt;TLSConfig&lt;/code&gt;.
Refer to the &lt;a href=&#34;https://godoc.org/crypto/tls#Config&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Go TLS documentation&lt;/a&gt; for more information.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;curve_preferences&lt;/code&gt; argument determines the set of elliptic curves to prefer during a handshake in preference order.
If not provided, a default list is used.
The set of elliptic curves available are &lt;code&gt;X25519&lt;/code&gt;, &lt;code&gt;P521&lt;/code&gt;, &lt;code&gt;P256&lt;/code&gt;, and &lt;code&gt;P384&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;tpm&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;tpm&lt;/code&gt; block configures retrieving the TLS &lt;code&gt;key_file&lt;/code&gt; from a trusted device.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-tls-tpm-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The authorization value used to authenticate the TPM device.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Load the &lt;code&gt;tls.key_file&lt;/code&gt; from TPM.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;owner_auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The owner authorization value used to authenticate the TPM device.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;path&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TPM device or Unix domain socket.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;a href=&#34;https://trustedcomputinggroup.org/resource/trusted-platform-module-tpm-summary/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;trusted platform module&lt;/a&gt; (TPM) configuration can be used for loading TLS key from TPM. Currently only TSS2 format is supported.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;path&lt;/code&gt; attribute is not supported on Windows.&lt;/p&gt;
&lt;p&gt;In the following example, the private key &lt;code&gt;my-tss2-key.key&lt;/code&gt; in TSS2 format is loaded from the TPM device &lt;code&gt;/dev/tmprm0&lt;/code&gt;:&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;otelcol.example.component &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
    ...
    tls {
        ...
        key_file = &amp;#34;my-tss2-key.key&amp;#34;
        tpm {
            enabled = true
            path = &amp;#34;/dev/tpmrm0&amp;#34;
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;http&#34;&gt;&lt;code&gt;http&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;http&lt;/code&gt; block configures the HTTP server used by the component.
If the &lt;code&gt;http&lt;/code&gt; block isn&amp;rsquo;t specified, an HTTP server isn&amp;rsquo;t started.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;capsule(otelcol.Handler)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Handler from an &lt;code&gt;otelcol.auth&lt;/code&gt; component to use for authenticating requests.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;compression_algorithms&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of compression algorithms the server can accept.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[&amp;quot;&amp;quot;, &amp;quot;gzip&amp;quot;, &amp;quot;zstd&amp;quot;, &amp;quot;zlib&amp;quot;, &amp;quot;snappy&amp;quot;, &amp;quot;deflate&amp;quot;, &amp;quot;lz4&amp;quot;]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;host:port&lt;/code&gt; to listen for traffic on.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0.0.0.0:4318&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_metadata&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Propagate incoming connection metadata to downstream consumers.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;keep_alives_enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether or not HTTP keep-alives are enabled&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;logs_url_path&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The URL path to receive logs on.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;/v1/logs&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_request_body_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum request body size the server will allow.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;20MiB&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics_url_path&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The URL path to receive metrics on.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;/v1/metrics&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;traces_url_path&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The URL path to receive traces on.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;/v1/traces&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;To send telemetry signals to &lt;code&gt;otelcol.receiver.otlp&lt;/code&gt; with HTTP/JSON, POST to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[endpoint][traces_url_path]&lt;/code&gt; for traces.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[endpoint][metrics_url_path]&lt;/code&gt; for metrics.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[endpoint][logs_url_path]&lt;/code&gt; for logs.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;cors&#34;&gt;&lt;code&gt;cors&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;cors&lt;/code&gt; block configures CORS settings for an HTTP server.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;allowed_origins&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Allowed values for the &lt;code&gt;Origin&lt;/code&gt; header.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;allowed_headers&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Accepted headers from CORS requests.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[&amp;quot;X-Requested-With&amp;quot;]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_age&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Configures the &lt;code&gt;Access-Control-Max-Age&lt;/code&gt; response header.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;code&gt;allowed_headers&lt;/code&gt; argument specifies which headers are acceptable from a CORS request.
The following headers are always implicitly allowed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Accept&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Accept-Language&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Content-Type&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Content-Language&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If &lt;code&gt;allowed_headers&lt;/code&gt; includes &lt;code&gt;&amp;quot;*&amp;quot;&lt;/code&gt;, all headers are permitted.&lt;/p&gt;
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.otlp&lt;/code&gt; doesn&amp;rsquo;t export any fields.&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.otlp&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.otlp&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;debug-metrics&#34;&gt;Debug metrics&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;otelcol_receiver_accepted_spans_total&lt;/code&gt; (counter): Number of spans successfully pushed into the pipeline.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;otelcol_receiver_refused_spans_total&lt;/code&gt; (counter): Number of spans that couldn&amp;rsquo;t be pushed into the pipeline.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;rpc_server_duration_milliseconds&lt;/code&gt; (histogram): Duration of RPC requests from a gRPC server.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;rpc_server_request_size_bytes&lt;/code&gt; (histogram): Measures size of RPC request messages (uncompressed).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;rpc_server_requests_per_rpc&lt;/code&gt; (histogram): Measures the number of messages received per RPC. Should be 1 for all non-streaming RPCs.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;rpc_server_response_size_bytes&lt;/code&gt; (histogram): Measures size of RPC response messages (uncompressed).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;rpc_server_responses_per_rpc&lt;/code&gt; (histogram): Measures the number of messages received per RPC. Should be 1 for all non-streaming RPCs.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;p&gt;This example forwards received telemetry data through a batch processor before finally sending it to an OTLP-capable endpoint:&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;otelcol.receiver.otlp &amp;#34;default&amp;#34; {
  http {}
  grpc {}

  output {
    metrics = [otelcol.processor.batch.default.input]
    logs    = [otelcol.processor.batch.default.input]
    traces  = [otelcol.processor.batch.default.input]
  }
}

otelcol.processor.batch &amp;#34;default&amp;#34; {
  output {
    metrics = [otelcol.exporter.otlphttp.default.input]
    logs    = [otelcol.exporter.otlphttp.default.input]
    traces  = [otelcol.exporter.otlphttp.default.input]
  }
}

otelcol.exporter.otlphttp &amp;#34;default&amp;#34; {
  client {
    endpoint = sys.env(&amp;#34;&amp;lt;OTLP_ENDPOINT&amp;gt;&amp;#34;)
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;technical-details&#34;&gt;Technical details&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.otlp&lt;/code&gt; supports &lt;a href=&#34;https://en.wikipedia.org/wiki/Gzip&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Gzip&lt;/a&gt; for compression.&lt;/p&gt;
&lt;h2 id=&#34;enable-authentication&#34;&gt;Enable authentication&lt;/h2&gt;
&lt;p&gt;You can create a &lt;code&gt;otelcol.reciever.otlp&lt;/code&gt; component that requires authentication for requests.
This is useful for limiting who can push data to the server.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Not all OpenTelemetry Collector authentication plugins support receiver authentication.
Refer to the 
    &lt;a href=&#34;/docs/alloy/v1.15/reference/components/otelcol/&#34;&gt;documentation&lt;/a&gt; for each &lt;code&gt;otelcol.auth.*&lt;/code&gt; component to determine its compatibility.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&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;otelcol.receiver.otlp &amp;#34;default&amp;#34; {
  http {
    auth = otelcol.auth.basic.creds.handler
  }
  grpc {
     auth = otelcol.auth.basic.creds.handler
  }

  output {
   ...
  }
}

otelcol.auth.basic &amp;#34;creds&amp;#34; {
    username = sys.env(&amp;#34;&amp;lt;USERNAME&amp;gt;&amp;#34;)
    password = sys.env(&amp;#34;&amp;lt;PASSWORD&amp;gt;&amp;#34;)
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.otlp&lt;/code&gt; can accept arguments from the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that export &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-exporters&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolreceiverotlp">&lt;code>otelcol.receiver.otlp&lt;/code>&lt;/h1>
&lt;p>&lt;code>otelcol.receiver.otlp&lt;/code> accepts OTLP-formatted data over the network and forwards it to other &lt;code>otelcol.*&lt;/code> components.&lt;/p>
&lt;div class="admonition admonition-note">&lt;blockquote>&lt;p class="title text-uppercase">Note&lt;/p>&lt;p>&lt;code>otelcol.receiver.otlp&lt;/code> is a wrapper over the upstream OpenTelemetry Collector &lt;a href="https://github.com/open-telemetry/opentelemetry-collector/tree/v0.147.0/receiver/otlpreceiver" target="_blank" rel="noopener noreferrer">&lt;code>otlp&lt;/code>&lt;/a> receiver.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p></description></item><item><title>otelcol.receiver.prometheus</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.receiver.prometheus/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.receiver.prometheus/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolreceiverprometheus&#34;&gt;&lt;code&gt;otelcol.receiver.prometheus&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.prometheus&lt;/code&gt; receives Prometheus metrics, converts them to the OpenTelemetry metrics format, and forwards them to other &lt;code&gt;otelcol.*&lt;/code&gt; components.
This is a custom component built on a fork of the upstream OpenTelemetry Collector receiver.&lt;/p&gt;
&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.receiver.prometheus&lt;/code&gt; components by giving them different labels.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Support for translating Prometheus native histograms into OTLP exponential histograms is a public preview feature.
To enable native histogram translation, run Alloy with the &lt;code&gt;--stability.level=public-preview&lt;/code&gt; configuration flag.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;



&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;In Alloy v1.14.0, &lt;code&gt;otelcol.receiver.prometheus&lt;/code&gt; no longer sets OTLP metric &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-proto/blob/v1.9.0/opentelemetry/proto/metrics/v1/metrics.proto#L181-L187&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;start times&lt;/a&gt; for Prometheus metrics. The receiver forwards metrics without adding start times when the Prometheus input doesn&amp;rsquo;t have a &lt;a href=&#34;https://github.com/prometheus/OpenMetrics/blob/v1.0.0/specification/OpenMetrics.md#suffixes&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;created time&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Start time indicates when a cumulative metric such as an OTLP &amp;ldquo;sum&amp;rdquo; or a Prometheus &amp;ldquo;counter&amp;rdquo; was last reset.
If your database uses start times for OTLP metrics, you can use &lt;code&gt;otelcol.processor.metric_start_time&lt;/code&gt; to set it.
The OTLP endpoint for Grafana Mimir and the OTLP Gateway for Grafana Cloud both support OTLP metric start time.&lt;/p&gt;
&lt;p&gt;To add the start time in the same way that &lt;code&gt;otelcol.receiver.prometheus&lt;/code&gt; did prior to Alloy v1.14.0, configure &lt;code&gt;otelcol.processor.metric_start_time&lt;/code&gt; with &lt;code&gt;strategy&lt;/code&gt; set to &lt;code&gt;true_reset_point&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s only necessary to use &lt;code&gt;true_reset_point&lt;/code&gt; if your Mimir or Grafana Cloud instance is explicitly configured with a &lt;code&gt;-distributor.otel-created-timestamp-zero-ingestion-enabled=true&lt;/code&gt; flag, since &lt;code&gt;true_reset_point&lt;/code&gt; sends a sample with the same start and end time, and Mimir by default doesn&amp;rsquo;t create a zero sample for it.
For most Mimir and Grafana Cloud use cases, there&amp;rsquo;s no change in behavior even if you don&amp;rsquo;t add &lt;code&gt;otelcol.processor.metric_start_time&lt;/code&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.receiver.prometheus &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  output {
    metrics = [...]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;otelcol.receiver.prometheus&lt;/code&gt; component doesn&amp;rsquo;t support any arguments. You can configure this component with blocks.&lt;/p&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.receiver.prometheus&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 2;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#output\&amp;#34;\u003e\u003ccode\u003eoutput\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures where to send received telemetry data.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures where to send received telemetry data.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;



&lt;div data-shared=&#34;reference/components/output-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;output&lt;/code&gt; block configures a set of components to forward resulting telemetry data to.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send logs to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send metrics to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;traces&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send traces to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You must specify the &lt;code&gt;output&lt;/code&gt; block, but all its arguments are optional.
By default, telemetry data is dropped.
Configure the &lt;code&gt;metrics&lt;/code&gt;, &lt;code&gt;logs&lt;/code&gt;, and &lt;code&gt;traces&lt;/code&gt; arguments accordingly to send telemetry data to other components.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;This component exports the following fields that other components can reference:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&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;code&gt;receiver&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;MetricsReceiver&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A value that other components can use to send Prometheus metrics to.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.prometheus&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.prometheus&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;p&gt;This example uses the &lt;code&gt;otelcol.receiver.prometheus&lt;/code&gt; component as a bridge between the Prometheus and OpenTelemetry ecosystems.
The component exposes a receiver which the &lt;code&gt;prometheus.scrape&lt;/code&gt; component uses to send Prometheus metric data to.
The receiver converts the metrics to OTLP format and forwards them to the &lt;code&gt;otelcol.exporter.otlphttp&lt;/code&gt; component, which sends them to an OTLP-capable endpoint:&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;prometheus.scrape &amp;#34;default&amp;#34; {
    // Collect metrics from the default HTTP listen address.
    targets = [{&amp;#34;__address__&amp;#34;   = &amp;#34;127.0.0.1:12345&amp;#34;}]

    forward_to = [otelcol.receiver.prometheus.default.receiver]
}

otelcol.receiver.prometheus &amp;#34;default&amp;#34; {
  output {
    metrics = [otelcol.exporter.otlphttp.default.input]
  }
}

otelcol.exporter.otlphttp &amp;#34;default&amp;#34; {
  client {
    endpoint = sys.env(&amp;#34;OTLP_ENDPOINT&amp;#34;)
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.prometheus&lt;/code&gt; can accept arguments from the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that export &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-exporters&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.prometheus&lt;/code&gt; has exports that can be consumed by the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that consume &lt;a href=&#34;../../../compatibility/#prometheus-metricsreceiver-consumers&#34;&gt;Prometheus &lt;code&gt;MetricsReceiver&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolreceiverprometheus">&lt;code>otelcol.receiver.prometheus&lt;/code>&lt;/h1>
&lt;p>&lt;code>otelcol.receiver.prometheus&lt;/code> receives Prometheus metrics, converts them to the OpenTelemetry metrics format, and forwards them to other &lt;code>otelcol.*&lt;/code> components.
This is a custom component built on a fork of the upstream OpenTelemetry Collector receiver.&lt;/p></description></item><item><title>otelcol.receiver.solace</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.receiver.solace/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.receiver.solace/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolreceiversolace&#34;&gt;&lt;code&gt;otelcol.receiver.solace&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.solace&lt;/code&gt; accepts traces from a &lt;a href=&#34;https://solace.com/products/event-broker/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Solace PubSub&#43; Event Broker&lt;/a&gt; and forwards it to other &lt;code&gt;otelcol.*&lt;/code&gt; components.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.receiver.solace&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/receiver/solacereceiver&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;solace&lt;/code&gt;&lt;/a&gt; receiver.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.receiver.solace&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.receiver.solace &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  queue = &amp;#34;&amp;lt;QUEUE&amp;gt;&amp;#34;
  auth {
    // sasl_plain or sasl_xauth2 or sasl_external block
  }
  output {
    traces  = [...]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.receiver.solace&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;queue&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Name of the Solace telemetry queue to get span trace messages from.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;broker&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Name of the Solace broker using AMQP over TLS.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;localhost:5671&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_unacknowledged&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum number of unacknowledged messages the Solace broker can transmit.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;queue&lt;/code&gt; must have the format &lt;code&gt;queue://#telemetry-myTelemetryProfile&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.receiver.solace&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 10;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#output\&amp;#34;\u003e\u003ccode\u003eoutput\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures where to send received telemetry data.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#authentication\&amp;#34;\u003e\u003ccode\u003eauthentication\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures authentication for connecting to the Solace broker.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eauthentication\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#sasl_external\&amp;#34;\u003e\u003ccode\u003esasl_external\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eAuthenticates against the Solace broker with SASL External.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eauthentication\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#sasl_plain\&amp;#34;\u003e\u003ccode\u003esasl_plain\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eAuthenticates against the Solace broker with SASL PLAIN.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eauthentication\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#sasl_xauth2\&amp;#34;\u003e\u003ccode\u003esasl_xauth2\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eAuthenticates against the Solace broker with SASL XOauth2.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics which this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#flow\&amp;#34;\u003e\u003ccode\u003eflow\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the behaviour to use when temporary errors are encountered from the next component.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eflow\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#delayed_retry\&amp;#34;\u003e\u003ccode\u003edelayed_retry\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eSets the flow control strategy to \u003ccode\u003edelayed retry\u003c/code\u003e which will wait before trying to push the message to the next component again.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#tls\&amp;#34;\u003e\u003ccode\u003etls\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TLS for connecting to the Solace broker.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003etls\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#tpm\&amp;#34;\u003e\u003ccode\u003etpm\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TPM settings for the TLS \u003ccode\u003ekey_file\u003c/code\u003e.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures where to send received telemetry data.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#authentication&#34;&gt;&lt;code&gt;authentication&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures authentication for connecting to the Solace broker.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;authentication&lt;/code&gt; &amp;gt; &lt;a href=&#34;#sasl_external&#34;&gt;&lt;code&gt;sasl_external&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Authenticates against the Solace broker with SASL External.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;authentication&lt;/code&gt; &amp;gt; &lt;a href=&#34;#sasl_plain&#34;&gt;&lt;code&gt;sasl_plain&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Authenticates against the Solace broker with SASL PLAIN.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;authentication&lt;/code&gt; &amp;gt; &lt;a href=&#34;#sasl_xauth2&#34;&gt;&lt;code&gt;sasl_xauth2&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Authenticates against the Solace broker with SASL XOauth2.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics which this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#flow&#34;&gt;&lt;code&gt;flow&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the behaviour to use when temporary errors are encountered from the next component.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;flow&lt;/code&gt; &amp;gt; &lt;a href=&#34;#delayed_retry&#34;&gt;&lt;code&gt;delayed_retry&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Sets the flow control strategy to &lt;code&gt;delayed retry&lt;/code&gt; which will wait before trying to push the message to the next component again.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TLS for connecting to the Solace broker.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;tls&lt;/code&gt; &amp;gt; &lt;a href=&#34;#tpm&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TPM settings for the TLS &lt;code&gt;key_file&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;p&gt;One SASL authentication block is required in the &lt;code&gt;authentication&lt;/code&gt; block.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sasl_external&lt;/code&gt; must be used together with the &lt;code&gt;tls&lt;/code&gt; block.&lt;/p&gt;
&lt;h3 id=&#34;output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;



&lt;div data-shared=&#34;reference/components/output-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;output&lt;/code&gt; block configures a set of components to forward resulting telemetry data to.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send logs to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send metrics to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;traces&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send traces to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You must specify the &lt;code&gt;output&lt;/code&gt; block, but all its arguments are optional.
By default, telemetry data is dropped.
Configure the &lt;code&gt;metrics&lt;/code&gt;, &lt;code&gt;logs&lt;/code&gt;, and &lt;code&gt;traces&lt;/code&gt; arguments accordingly to send telemetry data to other components.&lt;/p&gt;
&lt;/div&gt;

        


&lt;div class=&#34;admonition admonition-warning&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Warning&lt;/p&gt;&lt;p&gt;Having multiple consumers may result in duplicated traces in case of errors because of the retry strategy.
It&amp;rsquo;s recommended to only set one consumer for this component.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h3 id=&#34;authentication&#34;&gt;&lt;code&gt;authentication&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;

&lt;p&gt;The &lt;code&gt;authentication&lt;/code&gt; block configures how to authenticate for connecting to the Solace broker.
It doesn&amp;rsquo;t support any arguments and is configured fully through inner blocks.&lt;/p&gt;
&lt;h3 id=&#34;sasl_external&#34;&gt;&lt;code&gt;sasl_external&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;sasl_external&lt;/code&gt; block configures how to authenticate to the Solace broker with SASL External.
It doesn&amp;rsquo;t support any arguments or blocks.
It must be used with the [&lt;code&gt;tls&lt;/code&gt;][tls] block.&lt;/p&gt;
&lt;h3 id=&#34;sasl_plain&#34;&gt;&lt;code&gt;sasl_plain&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;sasl_plain&lt;/code&gt; block configures how to authenticate to the Solace broker with SASL PLAIN.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;password&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The password to use.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;username&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The username to use.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;sasl_xauth2&#34;&gt;&lt;code&gt;sasl_xauth2&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;sasl_xauth2&lt;/code&gt; block configures how to authenticate to the Solace broker with SASL XOauth2.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;bearer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The bearer in plain text.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;username&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The username to use.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h3 id=&#34;flow&#34;&gt;&lt;code&gt;flow&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;flow&lt;/code&gt; block configures the behaviour to use when temporary errors are encountered from the next component.
It doesn&amp;rsquo;t support any arguments and is configured fully through inner blocks.&lt;/p&gt;
&lt;h3 id=&#34;delayed_retry&#34;&gt;&lt;code&gt;delayed_retry&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;delayed_retry&lt;/code&gt; block sets the flow control strategy to &lt;code&gt;delayed retry&lt;/code&gt; which will wait before trying to push the message to the next component again.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;delay&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The time to wait before retrying.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;10ms&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-tls-client-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ca_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the CA file.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ca_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;CA PEM-encoded text to validate the server with.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cert_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS certificate.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cert_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Certificate PEM-encoded text for client authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cipher_suites&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of TLS cipher suites that the TLS transport can use.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;curve_preferences&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Set of elliptic curves to use in a handshake.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_system_ca_certs_pool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to load the system certificate authorities pool alongside the certificate authority.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;insecure_skip_verify&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Ignores insecure server TLS certificates.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;insecure&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Disables TLS when connecting to the configured server.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS certificate key.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;secret&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Key PEM-encoded text for client authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum acceptable TLS version for connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;TLS 1.3&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;min_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Minimum acceptable TLS version for connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;TLS 1.2&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;reload_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The duration after which the certificate is reloaded.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;server_name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Verifies the hostname of server certificates when set.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If the server doesn&amp;rsquo;t support TLS, you must set the &lt;code&gt;insecure&lt;/code&gt; argument to &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;To disable &lt;code&gt;tls&lt;/code&gt; for connections to the server, set the &lt;code&gt;insecure&lt;/code&gt; argument to &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;If you set &lt;code&gt;reload_interval&lt;/code&gt; to &lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;, the certificate never reloaded.&lt;/p&gt;
&lt;p&gt;The following pairs of arguments are mutually exclusive and can&amp;rsquo;t both be set simultaneously:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ca_pem&lt;/code&gt; and &lt;code&gt;ca_file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cert_pem&lt;/code&gt; and &lt;code&gt;cert_file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;key_pem&lt;/code&gt; and &lt;code&gt;key_file&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If &lt;code&gt;cipher_suites&lt;/code&gt; is left blank, a safe default list is used.
Refer to the &lt;a href=&#34;https://go.dev/src/crypto/tls/cipher_suites.go&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Go TLS documentation&lt;/a&gt; for a list of supported cipher suites.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;curve_preferences&lt;/code&gt; argument determines the set of &lt;a href=&#34;https://go.dev/src/crypto/tls/common.go#L138&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;elliptic curves&lt;/a&gt; to prefer during a handshake in preference order.
If not provided, a default list is used.
The set of elliptic curves available are &lt;code&gt;X25519&lt;/code&gt;, &lt;code&gt;P521&lt;/code&gt;, &lt;code&gt;P256&lt;/code&gt;, and &lt;code&gt;P384&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;tpm&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;tpm&lt;/code&gt; block configures retrieving the TLS &lt;code&gt;key_file&lt;/code&gt; from a trusted device.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-tls-tpm-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The authorization value used to authenticate the TPM device.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Load the &lt;code&gt;tls.key_file&lt;/code&gt; from TPM.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;owner_auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The owner authorization value used to authenticate the TPM device.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;path&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TPM device or Unix domain socket.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;a href=&#34;https://trustedcomputinggroup.org/resource/trusted-platform-module-tpm-summary/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;trusted platform module&lt;/a&gt; (TPM) configuration can be used for loading TLS key from TPM. Currently only TSS2 format is supported.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;path&lt;/code&gt; attribute is not supported on Windows.&lt;/p&gt;
&lt;p&gt;In the following example, the private key &lt;code&gt;my-tss2-key.key&lt;/code&gt; in TSS2 format is loaded from the TPM device &lt;code&gt;/dev/tmprm0&lt;/code&gt;:&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;otelcol.example.component &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
    ...
    tls {
        ...
        key_file = &amp;#34;my-tss2-key.key&amp;#34;
        tpm {
            enabled = true
            path = &amp;#34;/dev/tpmrm0&amp;#34;
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

        
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.solace&lt;/code&gt; doesn&amp;rsquo;t export any fields.&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.solace&lt;/code&gt; is only reported as unhealthy if given an invalid
configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.solace&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug
information.&lt;/p&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;p&gt;This example forwards read telemetry data through a batch processor before finally sending it to an OTLP-capable endpoint:&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;otelcol.receiver.solace &amp;#34;default&amp;#34; {
  queue = &amp;#34;queue://#telemetry-testprofile&amp;#34;
  broker = &amp;#34;localhost:5672&amp;#34;
  auth {
    sasl_plain {
      username = &amp;#34;alloy&amp;#34;
      password = &amp;#34;password&amp;#34;
    }
  }
  tls {
    insecure             = true
    insecure_skip_verify = true
  }
  output {
    traces = [otelcol.processor.batch.default.input]
  }
}

otelcol.processor.batch &amp;#34;default&amp;#34; {
  output {
    traces  = [otelcol.exporter.otlphttp.default.input]
  }
}

otelcol.exporter.otlphttp &amp;#34;default&amp;#34; {
  client {
    endpoint = sys.env(&amp;#34;&amp;lt;OTLP_ENDPOINT&amp;gt;&amp;#34;)
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.solace&lt;/code&gt; can accept arguments from the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that export &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-exporters&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolreceiversolace">&lt;code>otelcol.receiver.solace&lt;/code>&lt;/h1>
&lt;p>&lt;code>otelcol.receiver.solace&lt;/code> accepts traces from a &lt;a href="https://solace.com/products/event-broker/" target="_blank" rel="noopener noreferrer">Solace PubSub+ Event Broker&lt;/a> and forwards it to other &lt;code>otelcol.*&lt;/code> components.&lt;/p>
&lt;div class="admonition admonition-note">&lt;blockquote>&lt;p class="title text-uppercase">Note&lt;/p>&lt;p>&lt;code>otelcol.receiver.solace&lt;/code> is a wrapper over the upstream OpenTelemetry Collector &lt;a href="https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/receiver/solacereceiver" target="_blank" rel="noopener noreferrer">&lt;code>solace&lt;/code>&lt;/a> receiver.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p></description></item><item><title>otelcol.receiver.splunkhec</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.receiver.splunkhec/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.receiver.splunkhec/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolreceiversplunkhec&#34;&gt;&lt;code&gt;otelcol.receiver.splunkhec&lt;/code&gt;&lt;/h1&gt;


&lt;div data-shared=&#34;stability/public_preview.md&#34;&gt;
            &lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Public preview&lt;/strong&gt;: This is a &lt;a href=&#34;/docs/release-life-cycle/&#34;&gt;public preview&lt;/a&gt; component.
Public preview components are subject to breaking changes, and may be replaced with equivalent functionality that cover the same use case.
To enable and use a public preview component, you must set the &lt;code&gt;stability.level&lt;/code&gt; 
    &lt;a href=&#34;/docs/alloy/v1.15/reference/cli/run/&#34;&gt;flag&lt;/a&gt; to &lt;code&gt;public-preview&lt;/code&gt; or below.&lt;/p&gt;&lt;/blockquote&gt;
&lt;/div&gt;

        
&lt;p&gt;&lt;code&gt;otelcol.receiver.splunkhec&lt;/code&gt; accepts events in the &lt;a href=&#34;https://docs.splunk.com/Documentation/Splunk/8.0.5/Data/FormateventsforHTTPEventCollector&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Splunk HEC format&lt;/a&gt; and forwards them to other &lt;code&gt;otelcol.*&lt;/code&gt; components.
The receiver accepts data formatted as JSON HEC events under any path or as EOL separated log raw data if sent to the &lt;code&gt;raw_path&lt;/code&gt; path.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.receiver.splunkhec&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/receiver/splunkhecreceiver&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;splunkhec&lt;/code&gt;&lt;/a&gt; receiver.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.receiver.splunkhec&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.receiver.splunkhec &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  output {
    metrics = [...]
    logs    = [...]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.receiver.splunkhec&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;access_token_passthrough&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;If enabled preserves incoming access token as a attribute &lt;code&gt;com.splunk.hec.access_token&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;capsule(otelcol.Handler)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Handler from an &lt;code&gt;otelcol.auth&lt;/code&gt; component to use for authenticating requests.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;compression_algorithms&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of compression algorithms the server can accept.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[&amp;quot;&amp;quot;, &amp;quot;gzip&amp;quot;, &amp;quot;zstd&amp;quot;, &amp;quot;zlib&amp;quot;, &amp;quot;snappy&amp;quot;, &amp;quot;deflate&amp;quot;, &amp;quot;lz4&amp;quot;]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;host:port&lt;/code&gt; to listen for traffic on.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;localhost:8088&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;health_path&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The path reporting health checks.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;/services/collector/health&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_metadata&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Propagate incoming connection metadata to downstream consumers.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;keep_alives_enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether or not HTTP keep-alives are enabled&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_request_body_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum request body size the server will allow.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;20MiB&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;raw_path&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The path accepting raw HEC events. Only applies when the receiver is used for logs.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;/services/collector/raw&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;splitting&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Defines the splitting strategy used by the receiver when ingesting raw events. Can be set to &amp;ldquo;line&amp;rdquo; or &amp;ldquo;none&amp;rdquo;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;line&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;By default, &lt;code&gt;otelcol.receiver.splunkhec&lt;/code&gt; listens for HTTP connections on &lt;code&gt;localhost:8088&lt;/code&gt;.
To expose the HTTP server to other machines on your network, configure &lt;code&gt;endpoint&lt;/code&gt; with the IP address to listen on, or &lt;code&gt;0.0.0.0:8088&lt;/code&gt; to listen on all network interfaces.&lt;/p&gt;
&lt;p&gt;If &lt;code&gt;access_token_passthrough&lt;/code&gt; is enabled it will be preserved as a attribute &lt;code&gt;com.splunk.hec.access_token&lt;/code&gt;.
If logs or metrics are exported with &lt;code&gt;otelcol.exporter.splunkhec&lt;/code&gt; it will check for this attribute and if present forward it with outgoing request.&lt;/p&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.receiver.splunkhec&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 6;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#output\&amp;#34;\u003e\u003ccode\u003eoutput\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures where to send received telemetry data.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#cors\&amp;#34;\u003e\u003ccode\u003ecors\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures CORS for the HTTP server.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#hec_metadata_to_otel_attrs\&amp;#34;\u003e\u003ccode\u003ehec_metadata_to_otel_attrs\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures OpenTelemetry attributes from HEC metadata.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#tls\&amp;#34;\u003e\u003ccode\u003etls\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TLS for the HTTP server.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003etls\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#tpm\&amp;#34;\u003e\u003ccode\u003etpm\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TPM settings for the TLS \u003ccode\u003ekey_file\u003c/code\u003e.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures where to send received telemetry data.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#cors&#34;&gt;&lt;code&gt;cors&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures CORS for the HTTP server.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#hec_metadata_to_otel_attrs&#34;&gt;&lt;code&gt;hec_metadata_to_otel_attrs&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures OpenTelemetry attributes from HEC metadata.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TLS for the HTTP server.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;tls&lt;/code&gt; &amp;gt; &lt;a href=&#34;#tpm&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TPM settings for the TLS &lt;code&gt;key_file&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;

&lt;p&gt;The &lt;code&gt;output&lt;/code&gt; block configures a set of components to forward resulting telemetry data to.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send logs to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send metrics to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You must specify the &lt;code&gt;output&lt;/code&gt; block, but all its arguments are optional.
By default, telemetry data is dropped.
Configure the &lt;code&gt;metrics&lt;/code&gt; and &lt;code&gt;logs&lt;/code&gt; arguments accordingly to send telemetry data to other components.&lt;/p&gt;
&lt;h3 id=&#34;cors&#34;&gt;&lt;code&gt;cors&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;cors&lt;/code&gt; block configures CORS settings for an HTTP server.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;allowed_headers&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Accepted headers from CORS requests.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[&amp;quot;X-Requested-With&amp;quot;]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;allowed_origins&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Allowed values for the &lt;code&gt;Origin&lt;/code&gt; header.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_age&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Configures the &lt;code&gt;Access-Control-Max-Age&lt;/code&gt; response header.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;code&gt;allowed_headers&lt;/code&gt; specifies which headers are acceptable from a CORS request.
The following headers are always implicitly allowed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Accept&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Accept-Language&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Content-Type&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Content-Language&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If &lt;code&gt;allowed_headers&lt;/code&gt; includes &lt;code&gt;&amp;quot;*&amp;quot;&lt;/code&gt;, all headers are permitted.&lt;/p&gt;
&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h3 id=&#34;hec_metadata_to_otel_attrs&#34;&gt;&lt;code&gt;hec_metadata_to_otel_attrs&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;hec_metadata_to_otel_attrs&lt;/code&gt; block configures OpenTelemetry attributes from HEC metadata.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;host&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Specifies the mapping of the host field to a attribute.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;host.name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;index&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Specifies the mapping of the index field to a attribute.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;com.splunk.index&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;source&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Specifies the mapping of the source field to a attribute.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;com.splunk.source&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sourcetype&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Specifies the mapping of the sourcetype field to a attribute.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;com.splunk.sourcetype&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;tls&lt;/code&gt; block configures TLS settings used for a server.
If the &lt;code&gt;tls&lt;/code&gt; block isn&amp;rsquo;t provided, TLS isn&amp;rsquo;t used for connections to the server.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-tls-server-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ca_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the CA file.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ca_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;CA PEM-encoded text to validate the server with.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cert_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS certificate.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cert_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Certificate PEM-encoded text for client authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cipher_suites&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of TLS cipher suites that the TLS transport can use.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;client_ca_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS cert to use by the server to verify a client certificate.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;curve_preferences&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Set of elliptic curves to use in a handshake.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_system_ca_certs_pool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to load the system certificate authorities pool alongside the certificate authority.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS certificate key.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;secret&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Key PEM-encoded text for client authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum acceptable TLS version for connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;TLS 1.3&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;min_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Minimum acceptable TLS version for connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;TLS 1.2&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;reload_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The duration after which the certificate is reloaded.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If &lt;code&gt;reload_interval&lt;/code&gt; is set to &lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;, the certificate never reloaded.&lt;/p&gt;
&lt;p&gt;The following pairs of arguments are mutually exclusive and can&amp;rsquo;t both be set simultaneously:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ca_pem&lt;/code&gt; and &lt;code&gt;ca_file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cert_pem&lt;/code&gt; and &lt;code&gt;cert_file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;key_pem&lt;/code&gt; and &lt;code&gt;key_file&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If &lt;code&gt;cipher_suites&lt;/code&gt; is left blank, a safe default list is used.
Refer to the &lt;a href=&#34;https://go.dev/src/crypto/tls/cipher_suites.go&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Go Cipher Suites documentation&lt;/a&gt; for a list of supported cipher suites.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;client_ca_file&lt;/code&gt; sets the &lt;code&gt;ClientCA&lt;/code&gt; and &lt;code&gt;ClientAuth&lt;/code&gt; to &lt;code&gt;RequireAndVerifyClientCert&lt;/code&gt; in the &lt;code&gt;TLSConfig&lt;/code&gt;.
Refer to the &lt;a href=&#34;https://godoc.org/crypto/tls#Config&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Go TLS documentation&lt;/a&gt; for more information.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;curve_preferences&lt;/code&gt; argument determines the set of elliptic curves to prefer during a handshake in preference order.
If not provided, a default list is used.
The set of elliptic curves available are &lt;code&gt;X25519&lt;/code&gt;, &lt;code&gt;P521&lt;/code&gt;, &lt;code&gt;P256&lt;/code&gt;, and &lt;code&gt;P384&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;tpm&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;tpm&lt;/code&gt; block configures retrieving the TLS &lt;code&gt;key_file&lt;/code&gt; from a trusted device.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-tls-tpm-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The authorization value used to authenticate the TPM device.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Load the &lt;code&gt;tls.key_file&lt;/code&gt; from TPM.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;owner_auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The owner authorization value used to authenticate the TPM device.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;path&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TPM device or Unix domain socket.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;a href=&#34;https://trustedcomputinggroup.org/resource/trusted-platform-module-tpm-summary/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;trusted platform module&lt;/a&gt; (TPM) configuration can be used for loading TLS key from TPM. Currently only TSS2 format is supported.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;path&lt;/code&gt; attribute is not supported on Windows.&lt;/p&gt;
&lt;p&gt;In the following example, the private key &lt;code&gt;my-tss2-key.key&lt;/code&gt; in TSS2 format is loaded from the TPM device &lt;code&gt;/dev/tmprm0&lt;/code&gt;:&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;otelcol.example.component &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
    ...
    tls {
        ...
        key_file = &amp;#34;my-tss2-key.key&amp;#34;
        tpm {
            enabled = true
            path = &amp;#34;/dev/tpmrm0&amp;#34;
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

        
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.splunkhec&lt;/code&gt; doesn&amp;rsquo;t export any fields.&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.splunkhec&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.splunkhec&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;p&gt;This example forwards received telemetry through a batch processor before finally sending it to an OTLP-capable endpoint:&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;otelcol.receiver.splunkhec &amp;#34;default&amp;#34; {
  output {
    logs    = [otelcol.processor.batch.default.input]
    metrics = [otelcol.processor.batch.default.input]
  }
}

otelcol.processor.batch &amp;#34;default&amp;#34; {
  output {
    metrics = [otelcol.exporter.otlphttp.default.input]
    traces  = [otelcol.exporter.otlphttp.default.input]
  }
}

otelcol.exporter.otlphttp &amp;#34;default&amp;#34; {
  client {
    endpoint = sys.env(&amp;#34;&amp;lt;OTLP_ENDPOINT&amp;gt;&amp;#34;)
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;enable-authentication&#34;&gt;Enable authentication&lt;/h2&gt;
&lt;p&gt;You can create a &lt;code&gt;otelcol.receiver.splunkhec&lt;/code&gt; component that requires authentication for requests. This is useful for limiting who can push data to the server.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Not all OpenTelemetry Collector authentication plugins support receiver authentication.
Refer to the 
    &lt;a href=&#34;/docs/alloy/v1.15/reference/components/otelcol/&#34;&gt;documentation&lt;/a&gt; for each &lt;code&gt;otelcol.auth.*&lt;/code&gt; component to determine its compatibility.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&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;otelcol.receiver.splunkhec &amp;#34;default&amp;#34; {
  output {
    logs    = [otelcol.processor.batch.default.input]
    metrics = [otelcol.processor.batch.default.input]
  }
  auth = otelcol.auth.basic.creds.handler
}

otelcol.auth.basic &amp;#34;creds&amp;#34; {
    username = sys.env(&amp;#34;&amp;lt;USERNAME&amp;gt;&amp;#34;)
    password = sys.env(&amp;#34;&amp;lt;PASSWORD&amp;gt;&amp;#34;)
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.splunkhec&lt;/code&gt; can accept arguments from the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that export &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-exporters&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolreceiversplunkhec">&lt;code>otelcol.receiver.splunkhec&lt;/code>&lt;/h1>
&lt;div data-shared="stability/public_preview.md">
&lt;blockquote>
&lt;p>&lt;strong>Public preview&lt;/strong>: This is a &lt;a href="/docs/release-life-cycle/">public preview&lt;/a> component.
Public preview components are subject to breaking changes, and may be replaced with equivalent functionality that cover the same use case.
To enable and use a public preview component, you must set the &lt;code>stability.level&lt;/code>
&lt;a href="/docs/alloy/v1.15/reference/cli/run/">flag&lt;/a> to &lt;code>public-preview&lt;/code> or below.&lt;/p></description></item><item><title>otelcol.receiver.syslog</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.receiver.syslog/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.receiver.syslog/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolreceiversyslog&#34;&gt;&lt;code&gt;otelcol.receiver.syslog&lt;/code&gt;&lt;/h1&gt;


&lt;div data-shared=&#34;stability/public_preview.md&#34;&gt;
            &lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Public preview&lt;/strong&gt;: This is a &lt;a href=&#34;/docs/release-life-cycle/&#34;&gt;public preview&lt;/a&gt; component.
Public preview components are subject to breaking changes, and may be replaced with equivalent functionality that cover the same use case.
To enable and use a public preview component, you must set the &lt;code&gt;stability.level&lt;/code&gt; 
    &lt;a href=&#34;/docs/alloy/v1.15/reference/cli/run/&#34;&gt;flag&lt;/a&gt; to &lt;code&gt;public-preview&lt;/code&gt; or below.&lt;/p&gt;&lt;/blockquote&gt;
&lt;/div&gt;

        
&lt;p&gt;&lt;code&gt;otelcol.receiver.syslog&lt;/code&gt; accepts syslog messages over the network and forwards them as logs to other &lt;code&gt;otelcol.*&lt;/code&gt; components.
It supports syslog protocols &lt;a href=&#34;https://www.rfc-editor.org/rfc/rfc5424&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;RFC5424&lt;/a&gt; and &lt;a href=&#34;https://www.rfc-editor.org/rfc/rfc3164&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;RFC3164&lt;/a&gt; and can receive data over &lt;code&gt;TCP&lt;/code&gt; or &lt;code&gt;UDP&lt;/code&gt;.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.receiver.syslog&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/receiver/syslogreceiver&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;syslog&lt;/code&gt;&lt;/a&gt; receiver.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.receiver.syslog&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.receiver.syslog &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  tcp { ... }
  udp { ... }

  output {
    logs    = [...]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.receiver.syslog&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;allow_skip_pri_header&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Allow parsing records without a priority header.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enable_octet_counting&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to enable RFC6587 octet counting.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;location&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The geographic time zone to use when parsing an RFC3164 timestamp.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;UTC&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_octets&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The maximum octets for messages when octet counting is enabled.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;8192&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;non_transparent_framing_trailer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The framing trailer when using RFC6587 Non-Transparent-Framing.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;on_error&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The action to take when an error occurs.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;send&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;protocol&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The syslog protocol that the syslog server supports.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;rfc5424&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;code&gt;protocol&lt;/code&gt; argument specifies the syslog format supported by the receiver.
&lt;code&gt;protocol&lt;/code&gt; must be one of &lt;code&gt;rfc5424&lt;/code&gt; or &lt;code&gt;rfc3164&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;location&lt;/code&gt; argument specifies a Time Zone identifier. The available locations depend on the local IANA Time Zone database.
Refer to the &lt;a href=&#34;https://en.wikipedia.org/wiki/List_of_tz_database_time_zones&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;list of tz database time zones&lt;/a&gt; in Wikipedia for a non-comprehensive list.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;non_transparent_framing_trailer&lt;/code&gt; and &lt;code&gt;enable_octet_counting&lt;/code&gt; arguments specify TCP syslog behavior as defined in &lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc6587&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;RFC6587&lt;/a&gt;.
These arguments are mutually exclusive.
They can&amp;rsquo;t be used with a UDP syslog listener configured.
If configured, the &lt;code&gt;non_transparent_framing_trailer&lt;/code&gt; argument must be one of &lt;code&gt;LF&lt;/code&gt;, &lt;code&gt;NUL&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;on_error&lt;/code&gt; argument can take the following values:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;drop&lt;/code&gt;: Drop the message.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;drop_quiet&lt;/code&gt;: Same as &lt;code&gt;drop&lt;/code&gt; but logs are emitted at debug level.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;send&lt;/code&gt;: Send the message even if it failed to process. This may result in an error downstream.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;send_quiet&lt;/code&gt;: Same as &lt;code&gt;send&lt;/code&gt; but logs are emitted at debug level.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.receiver.syslog&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 10;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#output\&amp;#34;\u003e\u003ccode\u003eoutput\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures where to send received telemetry data.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#retry_on_failure\&amp;#34;\u003e\u003ccode\u003eretry_on_failure\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the retry behavior when the receiver encounters an error downstream in the pipeline.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#tcp\&amp;#34;\u003e\u003ccode\u003etcp\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures a TCP syslog server to receive syslog messages.\u003c/td\u003e\n              \u003ctd\u003eno*\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003etcp\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#multiline\&amp;#34;\u003e\u003ccode\u003emultiline\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures rules for multiline parsing of incoming messages\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003etcp\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#tls\&amp;#34;\u003e\u003ccode\u003etls\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TLS for the TCP syslog server.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003etcp\u003c/code\u003e \u0026gt; \u003ccode\u003etls\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#tpm\&amp;#34;\u003e\u003ccode\u003etpm\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TPM settings for the TLS \u003ccode\u003ekey_file\u003c/code\u003e.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#udp\&amp;#34;\u003e\u003ccode\u003eudp\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures a UDP syslog server to receive syslog messages.\u003c/td\u003e\n              \u003ctd\u003eno*\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eudp\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#async\&amp;#34;\u003e\u003ccode\u003easync\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures rules for asynchronous parsing of incoming messages.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003eudp\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#multiline\&amp;#34;\u003e\u003ccode\u003emultiline\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures rules for multiline parsing of incoming messages.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures where to send received telemetry data.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#retry_on_failure&#34;&gt;&lt;code&gt;retry_on_failure&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the retry behavior when the receiver encounters an error downstream in the pipeline.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#tcp&#34;&gt;&lt;code&gt;tcp&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures a TCP syslog server to receive syslog messages.&lt;/td&gt;
              &lt;td&gt;no*&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;tcp&lt;/code&gt; &amp;gt; &lt;a href=&#34;#multiline&#34;&gt;&lt;code&gt;multiline&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures rules for multiline parsing of incoming messages&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;tcp&lt;/code&gt; &amp;gt; &lt;a href=&#34;#tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TLS for the TCP syslog server.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;tcp&lt;/code&gt; &amp;gt; &lt;code&gt;tls&lt;/code&gt; &amp;gt; &lt;a href=&#34;#tpm&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TPM settings for the TLS &lt;code&gt;key_file&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#udp&#34;&gt;&lt;code&gt;udp&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures a UDP syslog server to receive syslog messages.&lt;/td&gt;
              &lt;td&gt;no*&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;udp&lt;/code&gt; &amp;gt; &lt;a href=&#34;#async&#34;&gt;&lt;code&gt;async&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures rules for asynchronous parsing of incoming messages.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;udp&lt;/code&gt; &amp;gt; &lt;a href=&#34;#multiline&#34;&gt;&lt;code&gt;multiline&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures rules for multiline parsing of incoming messages.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;p&gt;A syslog receiver must have either a &lt;code&gt;udp&lt;/code&gt; or &lt;code&gt;tcp&lt;/code&gt; block configured.&lt;/p&gt;
&lt;h3 id=&#34;output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;



&lt;div data-shared=&#34;reference/components/output-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;output&lt;/code&gt; block configures a set of components to forward resulting telemetry data to.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send logs to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send metrics to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;traces&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send traces to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You must specify the &lt;code&gt;output&lt;/code&gt; block, but all its arguments are optional.
By default, telemetry data is dropped.
Configure the &lt;code&gt;metrics&lt;/code&gt;, &lt;code&gt;logs&lt;/code&gt;, and &lt;code&gt;traces&lt;/code&gt; arguments accordingly to send telemetry data to other components.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h3 id=&#34;retry_on_failure&#34;&gt;&lt;code&gt;retry_on_failure&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;retry_on_failure&lt;/code&gt; block configures the retry behavior when the receiver encounters an error downstream in the pipeline.
A backoff algorithm is used to delay the retry upon subsequent failures.
The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;If true, the receiver will pause reading a file and attempt to resend the current batch of logs on error.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;initial_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The time to wait after first failure to retry.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1s&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_elapsed_time&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The maximum age of a message before the data is discarded.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;5m&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The maximum time to wait after applying backoff logic.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;30s&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If &lt;code&gt;max_elapsed_time&lt;/code&gt; is set to &lt;code&gt;0&lt;/code&gt;, data will never be discarded.&lt;/p&gt;
&lt;h3 id=&#34;tcp&#34;&gt;&lt;code&gt;tcp&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;tcp&lt;/code&gt; block configures a TCP syslog server.
The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;listen_address&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The &lt;code&gt;&amp;lt;host:port&amp;gt;&lt;/code&gt; address to listen to for syslog messages.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;add_attributes&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Add net.* attributes to log messages according to OpenTelemetry semantic conventions.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;encoding&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The encoding of the syslog messages.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;utf-8&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_log_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The maximum size of a log entry to read before failing.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1MiB&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;one_log_per_packet&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Skip log tokenization, improving performance when messages always contain one log and multiline isn&amp;rsquo;t used.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;preserve_leading_whitespaces&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Preserves leading whitespace in messages when set to &lt;code&gt;true&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;preserve_trailing_whitespaces&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Preserves trailing whitespace in messages when set to &lt;code&gt;true&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;code&gt;encoding&lt;/code&gt; argument specifies the encoding of the incoming syslog messages.
&lt;code&gt;encoding&lt;/code&gt; must be one of &lt;code&gt;utf-8&lt;/code&gt;, &lt;code&gt;utf-16le&lt;/code&gt;, &lt;code&gt;utf-16be&lt;/code&gt;, &lt;code&gt;ascii&lt;/code&gt;, &lt;code&gt;big5&lt;/code&gt;, &lt;code&gt;nop&lt;/code&gt;.
Refer to the upstream receiver &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/receiver/syslogreceiver/README.md#supported-encodings&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;documentation&lt;/a&gt; for more details.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;max_log_size&lt;/code&gt; argument has a minimum value of &lt;code&gt;64KiB&lt;/code&gt;&lt;/p&gt;
&lt;h3 id=&#34;multiline&#34;&gt;&lt;code&gt;multiline&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;multiline&lt;/code&gt; block configures logic for splitting incoming log entries.
The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;line_end_pattern&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A regular expression that matches the end of a log entry.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;line_start_pattern&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A regular expression that matches the beginning of a log entry.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;omit_pattern&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Omit the start/end pattern from the split log entries.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;A &lt;code&gt;multiline&lt;/code&gt; block must contain either &lt;code&gt;line_start_pattern&lt;/code&gt; or &lt;code&gt;line_end_pattern&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;If a &lt;code&gt;multiline&lt;/code&gt; block isn&amp;rsquo;t set, log entries won&amp;rsquo;t be split.&lt;/p&gt;
&lt;h3 id=&#34;tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;tls&lt;/code&gt; block configures TLS settings used for a server. If the &lt;code&gt;tls&lt;/code&gt; block
isn&amp;rsquo;t provided, TLS won&amp;rsquo;t be used for connections to the server.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-tls-server-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ca_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the CA file.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ca_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;CA PEM-encoded text to validate the server with.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cert_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS certificate.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cert_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Certificate PEM-encoded text for client authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cipher_suites&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of TLS cipher suites that the TLS transport can use.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;client_ca_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS cert to use by the server to verify a client certificate.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;curve_preferences&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Set of elliptic curves to use in a handshake.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_system_ca_certs_pool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to load the system certificate authorities pool alongside the certificate authority.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS certificate key.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;secret&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Key PEM-encoded text for client authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum acceptable TLS version for connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;TLS 1.3&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;min_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Minimum acceptable TLS version for connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;TLS 1.2&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;reload_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The duration after which the certificate is reloaded.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If &lt;code&gt;reload_interval&lt;/code&gt; is set to &lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;, the certificate never reloaded.&lt;/p&gt;
&lt;p&gt;The following pairs of arguments are mutually exclusive and can&amp;rsquo;t both be set simultaneously:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ca_pem&lt;/code&gt; and &lt;code&gt;ca_file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cert_pem&lt;/code&gt; and &lt;code&gt;cert_file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;key_pem&lt;/code&gt; and &lt;code&gt;key_file&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If &lt;code&gt;cipher_suites&lt;/code&gt; is left blank, a safe default list is used.
Refer to the &lt;a href=&#34;https://go.dev/src/crypto/tls/cipher_suites.go&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Go Cipher Suites documentation&lt;/a&gt; for a list of supported cipher suites.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;client_ca_file&lt;/code&gt; sets the &lt;code&gt;ClientCA&lt;/code&gt; and &lt;code&gt;ClientAuth&lt;/code&gt; to &lt;code&gt;RequireAndVerifyClientCert&lt;/code&gt; in the &lt;code&gt;TLSConfig&lt;/code&gt;.
Refer to the &lt;a href=&#34;https://godoc.org/crypto/tls#Config&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Go TLS documentation&lt;/a&gt; for more information.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;curve_preferences&lt;/code&gt; argument determines the set of elliptic curves to prefer during a handshake in preference order.
If not provided, a default list is used.
The set of elliptic curves available are &lt;code&gt;X25519&lt;/code&gt;, &lt;code&gt;P521&lt;/code&gt;, &lt;code&gt;P256&lt;/code&gt;, and &lt;code&gt;P384&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;tpm&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;tpm&lt;/code&gt; block configures retrieving the TLS &lt;code&gt;key_file&lt;/code&gt; from a trusted device.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-tls-tpm-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The authorization value used to authenticate the TPM device.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Load the &lt;code&gt;tls.key_file&lt;/code&gt; from TPM.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;owner_auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The owner authorization value used to authenticate the TPM device.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;path&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TPM device or Unix domain socket.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;a href=&#34;https://trustedcomputinggroup.org/resource/trusted-platform-module-tpm-summary/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;trusted platform module&lt;/a&gt; (TPM) configuration can be used for loading TLS key from TPM. Currently only TSS2 format is supported.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;path&lt;/code&gt; attribute is not supported on Windows.&lt;/p&gt;
&lt;p&gt;In the following example, the private key &lt;code&gt;my-tss2-key.key&lt;/code&gt; in TSS2 format is loaded from the TPM device &lt;code&gt;/dev/tmprm0&lt;/code&gt;:&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;otelcol.example.component &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
    ...
    tls {
        ...
        key_file = &amp;#34;my-tss2-key.key&amp;#34;
        tpm {
            enabled = true
            path = &amp;#34;/dev/tpmrm0&amp;#34;
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;udp&#34;&gt;&lt;code&gt;udp&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;udp&lt;/code&gt; block configures a UDP syslog server.
The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;listen_address&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The &lt;code&gt;&amp;lt;host:port&amp;gt;&lt;/code&gt; address to listen to for syslog messages.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;add_attributes&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Add net.* attributes to log messages according to OpenTelemetry semantic conventions.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;encoding&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The encoding of the syslog messages.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;utf-8&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;one_log_per_packet&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Skip log tokenization, improving performance when messages always contain one log and multiline isn&amp;rsquo;t used.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;preserve_leading_whitespaces&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Preserves leading whitespace in messages when set to &lt;code&gt;true&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;preserve_trailing_whitespaces&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Preserves trailing whitespace in messages when set to &lt;code&gt;true&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;code&gt;encoding&lt;/code&gt; argument specifies the encoding of the incoming syslog messages.
&lt;code&gt;encoding&lt;/code&gt; must be one of &lt;code&gt;utf-8&lt;/code&gt;, &lt;code&gt;utf-16le&lt;/code&gt;, &lt;code&gt;utf-16be&lt;/code&gt;, &lt;code&gt;ascii&lt;/code&gt;, &lt;code&gt;big5&lt;/code&gt;, or &lt;code&gt;nop&lt;/code&gt;.
Refer to the upstream receiver &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/receiver/syslogreceiver/README.md#supported-encodings&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;documentation&lt;/a&gt; for more details.&lt;/p&gt;
&lt;h3 id=&#34;async&#34;&gt;&lt;code&gt;async&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;async&lt;/code&gt; block configures concurrent asynchronous readers for a UDP syslog server.
The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_queue_length&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The maximum number of messages to wait for an available processor.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;100&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;processors&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The number of goroutines to concurrently process logs before sending downstream.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;readers&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The number of goroutines to concurrently read from the UDP syslog server.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If &lt;code&gt;async&lt;/code&gt; isn&amp;rsquo;t set, a single goroutine will read and process messages synchronously.&lt;/p&gt;
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.syslog&lt;/code&gt; doesn&amp;rsquo;t export any fields.&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.syslog&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.syslog&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;debug-metrics&#34;&gt;Debug metrics&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.syslog&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug metrics.&lt;/p&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;p&gt;This example proxies syslog messages from the &lt;code&gt;otelcol.receiver.syslog&lt;/code&gt; receiver to the &lt;code&gt;otelcol.exporter.syslog&lt;/code&gt; component, and then sends them on to a &lt;code&gt;loki.source.syslog&lt;/code&gt; component before being logged by a &lt;code&gt;loki.echo&lt;/code&gt; component.
This shows how the &lt;code&gt;otelcol&lt;/code&gt; syslog components can be used to proxy syslog messages before sending them to another destination.&lt;/p&gt;
&lt;p&gt;Using the &lt;code&gt;otelcol&lt;/code&gt; syslog components in this way results in the messages being forwarded as sent, attempting to use the &lt;code&gt;loki.source.syslog&lt;/code&gt; component for a similar proxy use case requires careful mapping of any structured data fields through the &lt;code&gt;otelcol.processor.transform&lt;/code&gt; component.
A very simple example of that can be found in the &lt;a href=&#34;../otelcol.exporter.syslog/#use-the-otelcolprocessortransform-component-to-format-logs-from-lokisourcesyslog&#34;&gt;&lt;code&gt;otelcol.exporter.syslog&lt;/code&gt;&lt;/a&gt; documentation.&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;otelcol.receiver.syslog &amp;#34;default&amp;#34; {
    protocol = &amp;#34;rfc5424&amp;#34;
    tcp {
        listen_address = &amp;#34;localhost:1515&amp;#34;
    }
    output {
        logs = [otelcol.exporter.syslog.default.input]
    }
}

otelcol.exporter.syslog &amp;#34;default&amp;#34; {
    endpoint = &amp;#34;localhost&amp;#34;
    network = &amp;#34;tcp&amp;#34;
    port = 1514
    protocol = &amp;#34;rfc5424&amp;#34;
    enable_octet_counting = false
    tls {
        insecure = true
    }
}

loki.source.syslog &amp;#34;default&amp;#34; {
  listener {
    address = &amp;#34;localhost:1514&amp;#34;
    protocol = &amp;#34;tcp&amp;#34;
    syslog_format = &amp;#34;rfc5424&amp;#34;
    label_structured_data = true
    use_rfc5424_message = true
  }
  forward_to = [loki.echo.default.receiver]
}

loki.echo &amp;#34;default&amp;#34; {}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.syslog&lt;/code&gt; can accept arguments from the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that export &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-exporters&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolreceiversyslog">&lt;code>otelcol.receiver.syslog&lt;/code>&lt;/h1>
&lt;div data-shared="stability/public_preview.md">
&lt;blockquote>
&lt;p>&lt;strong>Public preview&lt;/strong>: This is a &lt;a href="/docs/release-life-cycle/">public preview&lt;/a> component.
Public preview components are subject to breaking changes, and may be replaced with equivalent functionality that cover the same use case.
To enable and use a public preview component, you must set the &lt;code>stability.level&lt;/code>
&lt;a href="/docs/alloy/v1.15/reference/cli/run/">flag&lt;/a> to &lt;code>public-preview&lt;/code> or below.&lt;/p></description></item><item><title>otelcol.receiver.tcplog</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.receiver.tcplog/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.receiver.tcplog/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolreceivertcplog&#34;&gt;&lt;code&gt;otelcol.receiver.tcplog&lt;/code&gt;&lt;/h1&gt;


&lt;div data-shared=&#34;stability/experimental.md&#34;&gt;
            &lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;EXPERIMENTAL&lt;/strong&gt;: This is an &lt;a href=&#34;/docs/release-life-cycle/&#34;&gt;experimental&lt;/a&gt; component.
Experimental components are subject to frequent breaking changes, and may be removed with no equivalent replacement.
To enable and use an experimental component, you must set the &lt;code&gt;stability.level&lt;/code&gt; 
    &lt;a href=&#34;/docs/alloy/v1.15/reference/cli/run/&#34;&gt;flag&lt;/a&gt; to &lt;code&gt;experimental&lt;/code&gt;.&lt;/p&gt;&lt;/blockquote&gt;
&lt;/div&gt;

        
&lt;p&gt;&lt;code&gt;otelcol.receiver.tcplog&lt;/code&gt; accepts log messages over a TCP connection and forwards them as logs to other &lt;code&gt;otelcol.*&lt;/code&gt; components.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.receiver.tcplog&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/receiver/tcplogreceiver&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;tcplog&lt;/code&gt;&lt;/a&gt; receiver.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.receiver.tcplog&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.receiver.tcplog &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  listen_address = &amp;#34;&amp;lt;IP_ADDRESS:PORT&amp;gt;&amp;#34;

  output {
    logs    = [...]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.receiver.tcplog&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;listen_address&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The &lt;code&gt;&amp;lt;HOST:PORT&amp;gt;&lt;/code&gt; address to listen to for logs messages.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;add_attributes&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Add &lt;code&gt;net.*&lt;/code&gt; attributes to log messages according to &lt;a href=&#34;https://github.com/open-telemetry/semantic-conventions/blob/main/docs/attributes-registry/network.md#network-attributes&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;OpenTelemetry semantic conventions&lt;/a&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;encoding&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The encoding of the log messages.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;utf-8&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_log_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The maximum size of a log entry to read before failing.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;1MiB&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;one_log_per_packet&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Skip log tokenization, improving performance when messages always contain one log and multiline isn&amp;rsquo;t used.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;code&gt;encoding&lt;/code&gt; argument specifies the encoding of the incoming log messages.
&lt;code&gt;encoding&lt;/code&gt; must be one of &lt;code&gt;utf-8&lt;/code&gt;, &lt;code&gt;utf-16le&lt;/code&gt;, &lt;code&gt;utf-16be&lt;/code&gt;, &lt;code&gt;ascii&lt;/code&gt;, &lt;code&gt;big5&lt;/code&gt;, or &lt;code&gt;nop&lt;/code&gt;.
Refer to the upstream receiver &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/receiver/tcplogreceiver/README.md#supported-encodings&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;documentation&lt;/a&gt; for more details.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;max_log_size&lt;/code&gt; argument has a minimum value of &lt;code&gt;64KiB&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.receiver.tcplog&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 6;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#output\&amp;#34;\u003e\u003ccode\u003eoutput\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures where to send received telemetry data.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#multiline\&amp;#34;\u003e\u003ccode\u003emultiline\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures rules for multiline parsing of incoming messages\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#retry_on_failure\&amp;#34;\u003e\u003ccode\u003eretry_on_failure\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the retry behavior when the receiver encounters an error downstream in the pipeline.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#tls\&amp;#34;\u003e\u003ccode\u003etls\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TLS for the TCP server.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003etls\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#tpm\&amp;#34;\u003e\u003ccode\u003etpm\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TPM settings for the TLS \u003ccode\u003ekey_file\u003c/code\u003e.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures where to send received telemetry data.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#multiline&#34;&gt;&lt;code&gt;multiline&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures rules for multiline parsing of incoming messages&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#retry_on_failure&#34;&gt;&lt;code&gt;retry_on_failure&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the retry behavior when the receiver encounters an error downstream in the pipeline.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TLS for the TCP server.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;tls&lt;/code&gt; &amp;gt; &lt;a href=&#34;#tpm&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TPM settings for the TLS &lt;code&gt;key_file&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;



&lt;div data-shared=&#34;reference/components/output-block-logs.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;output&lt;/code&gt; block configures a set of components to forward resulting telemetry data to.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send logs to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You must specify the &lt;code&gt;output&lt;/code&gt; block, but all its arguments are optional.
By default, telemetry data is dropped.
Configure the &lt;code&gt;logs&lt;/code&gt; argument accordingly to send telemetry data to other components, .&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h3 id=&#34;multiline&#34;&gt;&lt;code&gt;multiline&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;multiline&lt;/code&gt; block configures logic for splitting incoming log entries.
The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;line_end_pattern&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A regular expression that matches the end of a log entry.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;line_start_pattern&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A regular expression that matches the beginning of a log entry.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;omit_pattern&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Omit the start/end pattern from the split log entries.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;A &lt;code&gt;multiline&lt;/code&gt; block must contain either &lt;code&gt;line_start_pattern&lt;/code&gt; or &lt;code&gt;line_end_pattern&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;If a &lt;code&gt;multiline&lt;/code&gt; block isn&amp;rsquo;t set, log entries won&amp;rsquo;t be split.&lt;/p&gt;
&lt;h3 id=&#34;retry_on_failure&#34;&gt;&lt;code&gt;retry_on_failure&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;retry_on_failure&lt;/code&gt; block configures the retry behavior when the receiver encounters an error downstream in the pipeline.
A backoff algorithm is used to delay the retry upon subsequent failures.
The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;If set to &lt;code&gt;true&lt;/code&gt; and an error occurs, the receiver will pause reading the log files and resend the current batch of logs.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;initial_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The time to wait after first failure to retry.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;1s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_elapsed_time&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The maximum age of a message before the data is discarded.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;5m&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The maximum time to wait after applying backoff logic.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;30s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If &lt;code&gt;max_elapsed_time&lt;/code&gt; is set to &lt;code&gt;0&lt;/code&gt; data is never discarded.&lt;/p&gt;
&lt;h3 id=&#34;tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;tls&lt;/code&gt; block configures TLS settings used for a server.
If the &lt;code&gt;tls&lt;/code&gt; block isn&amp;rsquo;t provided, TLS won&amp;rsquo;t be used for connections to the server.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-tls-server-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ca_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the CA file.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ca_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;CA PEM-encoded text to validate the server with.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cert_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS certificate.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cert_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Certificate PEM-encoded text for client authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cipher_suites&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of TLS cipher suites that the TLS transport can use.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;client_ca_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS cert to use by the server to verify a client certificate.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;curve_preferences&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Set of elliptic curves to use in a handshake.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_system_ca_certs_pool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to load the system certificate authorities pool alongside the certificate authority.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS certificate key.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;secret&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Key PEM-encoded text for client authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum acceptable TLS version for connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;TLS 1.3&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;min_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Minimum acceptable TLS version for connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;TLS 1.2&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;reload_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The duration after which the certificate is reloaded.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If &lt;code&gt;reload_interval&lt;/code&gt; is set to &lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;, the certificate never reloaded.&lt;/p&gt;
&lt;p&gt;The following pairs of arguments are mutually exclusive and can&amp;rsquo;t both be set simultaneously:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ca_pem&lt;/code&gt; and &lt;code&gt;ca_file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cert_pem&lt;/code&gt; and &lt;code&gt;cert_file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;key_pem&lt;/code&gt; and &lt;code&gt;key_file&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If &lt;code&gt;cipher_suites&lt;/code&gt; is left blank, a safe default list is used.
Refer to the &lt;a href=&#34;https://go.dev/src/crypto/tls/cipher_suites.go&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Go Cipher Suites documentation&lt;/a&gt; for a list of supported cipher suites.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;client_ca_file&lt;/code&gt; sets the &lt;code&gt;ClientCA&lt;/code&gt; and &lt;code&gt;ClientAuth&lt;/code&gt; to &lt;code&gt;RequireAndVerifyClientCert&lt;/code&gt; in the &lt;code&gt;TLSConfig&lt;/code&gt;.
Refer to the &lt;a href=&#34;https://godoc.org/crypto/tls#Config&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Go TLS documentation&lt;/a&gt; for more information.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;curve_preferences&lt;/code&gt; argument determines the set of elliptic curves to prefer during a handshake in preference order.
If not provided, a default list is used.
The set of elliptic curves available are &lt;code&gt;X25519&lt;/code&gt;, &lt;code&gt;P521&lt;/code&gt;, &lt;code&gt;P256&lt;/code&gt;, and &lt;code&gt;P384&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;tpm&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;tpm&lt;/code&gt; block configures retrieving the TLS &lt;code&gt;key_file&lt;/code&gt; from a trusted device.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-tls-tpm-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The authorization value used to authenticate the TPM device.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Load the &lt;code&gt;tls.key_file&lt;/code&gt; from TPM.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;owner_auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The owner authorization value used to authenticate the TPM device.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;path&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TPM device or Unix domain socket.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;a href=&#34;https://trustedcomputinggroup.org/resource/trusted-platform-module-tpm-summary/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;trusted platform module&lt;/a&gt; (TPM) configuration can be used for loading TLS key from TPM. Currently only TSS2 format is supported.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;path&lt;/code&gt; attribute is not supported on Windows.&lt;/p&gt;
&lt;p&gt;In the following example, the private key &lt;code&gt;my-tss2-key.key&lt;/code&gt; in TSS2 format is loaded from the TPM device &lt;code&gt;/dev/tmprm0&lt;/code&gt;:&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;otelcol.example.component &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
    ...
    tls {
        ...
        key_file = &amp;#34;my-tss2-key.key&amp;#34;
        tpm {
            enabled = true
            path = &amp;#34;/dev/tpmrm0&amp;#34;
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

        
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.tcplog&lt;/code&gt; doesn&amp;rsquo;t export any fields.&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.tcplog&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.tcplog&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;debug-metrics&#34;&gt;Debug metrics&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.tcplog&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug metrics.&lt;/p&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;p&gt;This example receives log messages from TCP and logs them.&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;otelcol.receiver.tcplog &amp;#34;default&amp;#34; {
    listen_address = &amp;#34;localhost:1515&amp;#34;
    output {
        logs = [otelcol.exporter.debug.default.input]
    }
}

otelcol.exporter.debug &amp;#34;default&amp;#34; {}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.tcplog&lt;/code&gt; can accept arguments from the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that export &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-exporters&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolreceivertcplog">&lt;code>otelcol.receiver.tcplog&lt;/code>&lt;/h1>
&lt;div data-shared="stability/experimental.md">
&lt;blockquote>
&lt;p>&lt;strong>EXPERIMENTAL&lt;/strong>: This is an &lt;a href="/docs/release-life-cycle/">experimental&lt;/a> component.
Experimental components are subject to frequent breaking changes, and may be removed with no equivalent replacement.
To enable and use an experimental component, you must set the &lt;code>stability.level&lt;/code>
&lt;a href="/docs/alloy/v1.15/reference/cli/run/">flag&lt;/a> to &lt;code>experimental&lt;/code>.&lt;/p></description></item><item><title>otelcol.receiver.vcenter</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.receiver.vcenter/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.receiver.vcenter/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolreceivervcenter&#34;&gt;&lt;code&gt;otelcol.receiver.vcenter&lt;/code&gt;&lt;/h1&gt;


&lt;div data-shared=&#34;stability/experimental.md&#34;&gt;
            &lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;EXPERIMENTAL&lt;/strong&gt;: This is an &lt;a href=&#34;/docs/release-life-cycle/&#34;&gt;experimental&lt;/a&gt; component.
Experimental components are subject to frequent breaking changes, and may be removed with no equivalent replacement.
To enable and use an experimental component, you must set the &lt;code&gt;stability.level&lt;/code&gt; 
    &lt;a href=&#34;/docs/alloy/v1.15/reference/cli/run/&#34;&gt;flag&lt;/a&gt; to &lt;code&gt;experimental&lt;/code&gt;.&lt;/p&gt;&lt;/blockquote&gt;
&lt;/div&gt;

        
&lt;p&gt;&lt;code&gt;otelcol.receiver.vcenter&lt;/code&gt; accepts metrics from a vCenter or ESXi host running VMware vSphere APIs and forwards it to other &lt;code&gt;otelcol.*&lt;/code&gt; components.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.receiver.vcenter&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/receiver/vcenterreceiver&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;vcenter&lt;/code&gt;&lt;/a&gt; receiver.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.receiver.vcenter&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;p&gt;The full list of metrics that can be collected can be found in &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.147.0/receiver/vcenterreceiver/documentation.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;vcenter receiver documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;prerequisites&#34;&gt;Prerequisites&lt;/h2&gt;
&lt;p&gt;This receiver has been built to support ESXi and vCenter versions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;8&lt;/li&gt;
&lt;li&gt;7.0&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A “Read Only” user assigned to a vSphere with permissions to the vCenter server, cluster, and all subsequent resources being monitored must be specified in order for the receiver to retrieve information about them.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.receiver.vcenter &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  endpoint = &amp;#34;&amp;lt;VCENTER_ENDPOINT&amp;gt;&amp;#34;
  username = &amp;#34;&amp;lt;VCENTER_USERNAME&amp;gt;&amp;#34;
  password = &amp;#34;&amp;lt;VCENTER_PASSWORD&amp;gt;&amp;#34;

  output {
    metrics = [...]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.receiver.vcenter&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Endpoint to a vCenter Server or ESXi host which has the SDK path enabled.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;username&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Username to use for authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;password&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Password to use for authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;collection_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Defines how often to collect metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;1m&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;initial_delay&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Defines how long this receiver waits before starting.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;1s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Defines the timeout for the underlying HTTP client.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;endpoint&lt;/code&gt; has the format &lt;code&gt;&amp;lt;protocol&amp;gt;://&amp;lt;hostname&amp;gt;&lt;/code&gt;. For example, &lt;code&gt;https://vcsa.hostname.localnet&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.receiver.vcenter&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 6;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#output\&amp;#34;\u003e\u003ccode\u003eoutput\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures where to send received telemetry data.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#metrics\&amp;#34;\u003e\u003ccode\u003emetrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures which metrics will be sent to downstream components.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#resource_attributes\&amp;#34;\u003e\u003ccode\u003eresource_attributes\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures resource attributes for metrics sent to downstream components.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#tls\&amp;#34;\u003e\u003ccode\u003etls\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TLS for the HTTP client.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003etls\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#tpm\&amp;#34;\u003e\u003ccode\u003etpm\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TPM settings for the TLS \u003ccode\u003ekey_file\u003c/code\u003e.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures where to send received telemetry data.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#metrics&#34;&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures which metrics will be sent to downstream components.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#resource_attributes&#34;&gt;&lt;code&gt;resource_attributes&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures resource attributes for metrics sent to downstream components.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TLS for the HTTP client.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;tls&lt;/code&gt; &amp;gt; &lt;a href=&#34;#tpm&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TPM settings for the TLS &lt;code&gt;key_file&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;



&lt;div data-shared=&#34;reference/components/output-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;output&lt;/code&gt; block configures a set of components to forward resulting telemetry data to.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send logs to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send metrics to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;traces&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send traces to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You must specify the &lt;code&gt;output&lt;/code&gt; block, but all its arguments are optional.
By default, telemetry data is dropped.
Configure the &lt;code&gt;metrics&lt;/code&gt;, &lt;code&gt;logs&lt;/code&gt;, and &lt;code&gt;traces&lt;/code&gt; arguments accordingly to send telemetry data to other components.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h3 id=&#34;metrics&#34;&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/h3&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.cluster.cpu.effective&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.cluster.cpu.effective&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.cluster.cpu.limit&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.cluster.cpu.limit&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.cluster.host.count&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.cluster.host.count&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.cluster.memory.effective&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.cluster.memory.effective&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.cluster.memory.limit&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.cluster.memory.limit&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.cluster.vm_template.count&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.cluster.vm_template.count&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.cluster.vm.count&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.cluster.vm.count&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.cluster.vsan.congestions&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.cluster.vsan.congestions&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.cluster.vsan.latency.avg&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.cluster.vsan.latency.avg&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.cluster.vsan.operations&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.cluster.vsan.operations&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.cluster.vsan.throughput&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.cluster.vsan.throughput&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.datacenter.cluster.count&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.datacenter.cluster.count&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.datacenter.cpu.limit&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.datacenter.cpu.limit&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.datacenter.datastore.count&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.datacenter.datastore.count&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.datacenter.disk.space&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.datacenter.disk.space&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.datacenter.host.count&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.datacenter.host.count&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.datacenter.memory.limit&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.datacenter.memory.limit&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.datacenter.vm.count&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.datacenter.vm.count&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.datastore.disk.usage&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.datastore.disk.usage&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.datastore.disk.utilization&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.datastore.disk.utilization&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.host.cpu.capacity&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.host.cpu.capacity&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.host.cpu.reserved&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.host.cpu.reserved&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.host.cpu.usage&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.host.cpu.usage&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.host.cpu.utilization&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.host.cpu.utilization&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.host.disk.latency.avg&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.host.disk.latency.avg&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.host.disk.latency.max&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.host.disk.latency.max&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.host.disk.throughput&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.host.disk.throughput&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.host.memory.capacity&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.host.memory.capacity&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.host.memory.usage&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.host.memory.usage&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.host.memory.utilization&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.host.memory.utilization&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.host.network.packet.drop.rate&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.host.network.packet.drop.rate&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.host.network.packet.error.rate&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.host.network.packet.error.rate&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.host.network.packet.rate&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.host.network.packet.rate&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.host.network.throughput&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.host.network.throughput&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.host.network.usage&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.host.network.usage&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.host.vsan.cache.hit_rate&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.host.vsan.cache.hit_rate&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.host.vsan.congestions&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.host.vsan.congestions&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.host.vsan.latency.avg&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.host.vsan.latency.avg&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.host.vsan.operations&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.host.vsan.operations&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.host.vsan.throughput&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.host.vsan.throughput&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.resource_pool.cpu.shares&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.resource_pool.cpu.shares&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.resource_pool.cpu.usage&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.resource_pool.cpu.usage&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.resource_pool.memory.ballooned&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.resource_pool.memory.ballooned&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.resource_pool.memory.granted&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.resource_pool.memory.granted&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.resource_pool.memory.shares&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.resource_pool.memory.shares&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.resource_pool.memory.swapped&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.resource_pool.memory.swapped&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.resource_pool.memory.usage&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.resource_pool.memory.usage&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.vm.cpu.readiness&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.vm.cpu.readiness&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.vm.cpu.time&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.vm.cpu.time&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.vm.cpu.usage&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.vm.cpu.usage&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.vm.cpu.utilization&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.vm.cpu.utilization&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.vm.disk.latency.avg&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.vm.disk.latency.avg&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.vm.disk.latency.max&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.vm.disk.latency.max&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.vm.disk.throughput&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.vm.disk.throughput&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.vm.disk.usage&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.vm.disk.usage&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.vm.disk.utilization&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.vm.disk.utilization&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.vm.memory.ballooned&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.vm.memory.ballooned&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.vm.memory.granted&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.vm.memory.granted&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.vm.memory.swapped_ssd&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.vm.memory.swapped_ssd&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.vm.memory.swapped&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.vm.memory.swapped&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.vm.memory.usage&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.vm.memory.usage&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.vm.memory.utilization&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.vm.memory.utilization&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.vm.network.broadcast.packet.rate&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.vm.network.broadcast.packet.rate&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.vm.network.multicast.packet.rate&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.vm.network.multicast.packet.rate&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.vm.network.packet.drop.rate&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.vm.network.packet.drop.rate&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.vm.network.packet.rate&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.vm.network.packet.rate&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.vm.network.throughput&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.vm.network.throughput&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.vm.network.usage&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.vm.network.usage&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.vm.vsan.latency.avg&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.vm.vsan.latency.avg&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.vm.vsan.operations&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.vm.vsan.operations&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.vm.vsan.throughput&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.vm.vsan.throughput&lt;/code&gt; metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;metric&#34;&gt;&lt;code&gt;metric&lt;/code&gt;&lt;/h4&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to enable the metric.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;resource_attributes&#34;&gt;&lt;code&gt;resource_attributes&lt;/code&gt;&lt;/h3&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.datacenter.name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#resource_attribute&#34;&gt;&lt;code&gt;resource_attribute&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.datacenter.name&lt;/code&gt; resource attribute.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.cluster.name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#resource_attribute&#34;&gt;&lt;code&gt;resource_attribute&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.cluster.name&lt;/code&gt; resource attribute.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.datastore.name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#resource_attribute&#34;&gt;&lt;code&gt;resource_attribute&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.cluster.resource_pool&lt;/code&gt; resource attribute.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.host.name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#resource_attribute&#34;&gt;&lt;code&gt;resource_attribute&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.host.name&lt;/code&gt; resource attribute.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.resource_pool.inventory_path&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#resource_attribute&#34;&gt;&lt;code&gt;resource_attribute&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.resource_pool.inventory_path&lt;/code&gt; resource attribute.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.resource_pool.name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#resource_attribute&#34;&gt;&lt;code&gt;resource_attribute&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.resource_pool.name&lt;/code&gt; resource attribute.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.virtual_app.inventory_path&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#resource_attribute&#34;&gt;&lt;code&gt;resource_attribute&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.virtual_app.inventory_path&lt;/code&gt; resource attribute.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.virtual_app.name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#resource_attribute&#34;&gt;&lt;code&gt;resource_attribute&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.virtual_app.name&lt;/code&gt; resource attribute.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.vm.id&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#resource_attribute&#34;&gt;&lt;code&gt;resource_attribute&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.vm.id&lt;/code&gt; resource attribute.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.vm.name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#resource_attribute&#34;&gt;&lt;code&gt;resource_attribute&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.vm.name&lt;/code&gt; resource attribute.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.vm_template.id&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#resource_attribute&#34;&gt;&lt;code&gt;resource_attribute&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.vm_template.id&lt;/code&gt; resource attribute.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vcenter.vm_template.name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#resource_attribute&#34;&gt;&lt;code&gt;resource_attribute&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Enables the &lt;code&gt;vcenter.vm_template.name&lt;/code&gt; resource attribute.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;resource_attribute&#34;&gt;&lt;code&gt;resource_attribute&lt;/code&gt;&lt;/h4&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to enable the resource attribute.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;tls&lt;/code&gt; block configures TLS settings used for a server. If the &lt;code&gt;tls&lt;/code&gt; block
isn&amp;rsquo;t provided, TLS won&amp;rsquo;t be used for connections to the server.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-tls-client-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ca_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the CA file.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ca_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;CA PEM-encoded text to validate the server with.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cert_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS certificate.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cert_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Certificate PEM-encoded text for client authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cipher_suites&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of TLS cipher suites that the TLS transport can use.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;curve_preferences&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Set of elliptic curves to use in a handshake.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_system_ca_certs_pool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to load the system certificate authorities pool alongside the certificate authority.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;insecure_skip_verify&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Ignores insecure server TLS certificates.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;insecure&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Disables TLS when connecting to the configured server.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS certificate key.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;secret&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Key PEM-encoded text for client authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum acceptable TLS version for connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;TLS 1.3&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;min_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Minimum acceptable TLS version for connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;TLS 1.2&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;reload_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The duration after which the certificate is reloaded.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;server_name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Verifies the hostname of server certificates when set.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If the server doesn&amp;rsquo;t support TLS, you must set the &lt;code&gt;insecure&lt;/code&gt; argument to &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;To disable &lt;code&gt;tls&lt;/code&gt; for connections to the server, set the &lt;code&gt;insecure&lt;/code&gt; argument to &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;If you set &lt;code&gt;reload_interval&lt;/code&gt; to &lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;, the certificate never reloaded.&lt;/p&gt;
&lt;p&gt;The following pairs of arguments are mutually exclusive and can&amp;rsquo;t both be set simultaneously:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ca_pem&lt;/code&gt; and &lt;code&gt;ca_file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cert_pem&lt;/code&gt; and &lt;code&gt;cert_file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;key_pem&lt;/code&gt; and &lt;code&gt;key_file&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If &lt;code&gt;cipher_suites&lt;/code&gt; is left blank, a safe default list is used.
Refer to the &lt;a href=&#34;https://go.dev/src/crypto/tls/cipher_suites.go&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Go TLS documentation&lt;/a&gt; for a list of supported cipher suites.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;curve_preferences&lt;/code&gt; argument determines the set of &lt;a href=&#34;https://go.dev/src/crypto/tls/common.go#L138&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;elliptic curves&lt;/a&gt; to prefer during a handshake in preference order.
If not provided, a default list is used.
The set of elliptic curves available are &lt;code&gt;X25519&lt;/code&gt;, &lt;code&gt;P521&lt;/code&gt;, &lt;code&gt;P256&lt;/code&gt;, and &lt;code&gt;P384&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;tpm&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;tpm&lt;/code&gt; block configures retrieving the TLS &lt;code&gt;key_file&lt;/code&gt; from a trusted device.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-tls-tpm-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The authorization value used to authenticate the TPM device.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Load the &lt;code&gt;tls.key_file&lt;/code&gt; from TPM.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;owner_auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The owner authorization value used to authenticate the TPM device.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;path&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TPM device or Unix domain socket.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;a href=&#34;https://trustedcomputinggroup.org/resource/trusted-platform-module-tpm-summary/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;trusted platform module&lt;/a&gt; (TPM) configuration can be used for loading TLS key from TPM. Currently only TSS2 format is supported.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;path&lt;/code&gt; attribute is not supported on Windows.&lt;/p&gt;
&lt;p&gt;In the following example, the private key &lt;code&gt;my-tss2-key.key&lt;/code&gt; in TSS2 format is loaded from the TPM device &lt;code&gt;/dev/tmprm0&lt;/code&gt;:&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;otelcol.example.component &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
    ...
    tls {
        ...
        key_file = &amp;#34;my-tss2-key.key&amp;#34;
        tpm {
            enabled = true
            path = &amp;#34;/dev/tpmrm0&amp;#34;
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

        
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.vcenter&lt;/code&gt; doesn&amp;rsquo;t export any fields.&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.vcenter&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.vcenter&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;p&gt;This example forwards received telemetry data through a batch processor before finally sending it to an OTLP-capable endpoint:&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;otelcol.receiver.vcenter &amp;#34;default&amp;#34; {
  endpoint = &amp;#34;http://localhost:15672&amp;#34;
  username = &amp;#34;otelu&amp;#34;
  password = &amp;#34;password&amp;#34;

  output {
    metrics = [otelcol.processor.batch.default.input]
  }
}

otelcol.processor.batch &amp;#34;default&amp;#34; {
  output {
    metrics = [otelcol.exporter.otlphttp.default.input]
  }
}

otelcol.exporter.otlphttp &amp;#34;default&amp;#34; {
  client {
    endpoint = sys.env(&amp;#34;&amp;lt;OTLP_ENDPOINT&amp;gt;&amp;#34;)
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.vcenter&lt;/code&gt; can accept arguments from the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that export &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-exporters&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;
]]></content><description>&lt;h1 id="otelcolreceivervcenter">&lt;code>otelcol.receiver.vcenter&lt;/code>&lt;/h1>
&lt;div data-shared="stability/experimental.md">
&lt;blockquote>
&lt;p>&lt;strong>EXPERIMENTAL&lt;/strong>: This is an &lt;a href="/docs/release-life-cycle/">experimental&lt;/a> component.
Experimental components are subject to frequent breaking changes, and may be removed with no equivalent replacement.
To enable and use an experimental component, you must set the &lt;code>stability.level&lt;/code>
&lt;a href="/docs/alloy/v1.15/reference/cli/run/">flag&lt;/a> to &lt;code>experimental&lt;/code>.&lt;/p></description></item><item><title>otelcol.receiver.zipkin</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.receiver.zipkin/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.receiver.zipkin/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolreceiverzipkin&#34;&gt;&lt;code&gt;otelcol.receiver.zipkin&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.zipkin&lt;/code&gt; accepts Zipkin-formatted traces over the network and forwards it to other &lt;code&gt;otelcol.*&lt;/code&gt; components.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.receiver.zipkin&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/receiver/zipkinreceiver&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;zipkin&lt;/code&gt;&lt;/a&gt; receiver.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.receiver.zipkin&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.receiver.zipkin &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
  output {
    traces = [...]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.receiver.zipkin&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;capsule(otelcol.Handler)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Handler from an &lt;code&gt;otelcol.auth&lt;/code&gt; component to use for authenticating requests.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;compression_algorithms&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of compression algorithms the server can accept.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[&amp;quot;&amp;quot;, &amp;quot;gzip&amp;quot;, &amp;quot;zstd&amp;quot;, &amp;quot;zlib&amp;quot;, &amp;quot;snappy&amp;quot;, &amp;quot;deflate&amp;quot;, &amp;quot;lz4&amp;quot;]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;host:port&lt;/code&gt; to listen for traffic on.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0.0.0.0:9411&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_metadata&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Propagate incoming connection metadata to downstream consumers.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;keep_alives_enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether or not HTTP keep-alives are enabled&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_request_body_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum request body size the server will allow.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;20MiB&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;parse_string_tags&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Parse string tags and binary annotations into non-string types.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If &lt;code&gt;parse_string_tags&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;, string tags and binary annotations are converted to &lt;code&gt;int&lt;/code&gt;, &lt;code&gt;bool&lt;/code&gt;, and &lt;code&gt;float&lt;/code&gt; if possible.
String tags and binary annotations that can&amp;rsquo;t be converted remain unchanged.&lt;/p&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.receiver.zipkin&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 5;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#output\&amp;#34;\u003e\u003ccode\u003eoutput\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures where to send received traces.\u003c/td\u003e\n              \u003ctd\u003eyes\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#cors\&amp;#34;\u003e\u003ccode\u003ecors\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures CORS for the HTTP server.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#tls\&amp;#34;\u003e\u003ccode\u003etls\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TLS for the HTTP server.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ccode\u003etls\u003c/code\u003e \u0026gt; \u003ca href=\&amp;#34;#tpm\&amp;#34;\u003e\u003ccode\u003etpm\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures TPM settings for the TLS \u003ccode\u003ekey_file\u003c/code\u003e.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures where to send received traces.&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#cors&#34;&gt;&lt;code&gt;cors&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures CORS for the HTTP server.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TLS for the HTTP server.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;tls&lt;/code&gt; &amp;gt; &lt;a href=&#34;#tpm&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures TPM settings for the TLS &lt;code&gt;key_file&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;output&#34;&gt;&lt;code&gt;output&lt;/code&gt;&lt;/h3&gt;
&lt;span class=&#34;docs-labels__stage docs-labels__small docs-labels__item mr-half&#34;&gt;
  Required
  &lt;/span&gt;



&lt;div data-shared=&#34;reference/components/output-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;output&lt;/code&gt; block configures a set of components to forward resulting telemetry data to.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;logs&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send logs to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send metrics to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;traces&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(otelcol.Consumer)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of consumers to send traces to.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;You must specify the &lt;code&gt;output&lt;/code&gt; block, but all its arguments are optional.
By default, telemetry data is dropped.
Configure the &lt;code&gt;metrics&lt;/code&gt;, &lt;code&gt;logs&lt;/code&gt;, and &lt;code&gt;traces&lt;/code&gt; arguments accordingly to send telemetry data to other components.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h3 id=&#34;cors&#34;&gt;&lt;code&gt;cors&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;cors&lt;/code&gt; block configures CORS settings for an HTTP server.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;allowed_headers&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Accepted headers from CORS requests.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[&amp;quot;X-Requested-With&amp;quot;]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;allowed_origins&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Allowed values for the &lt;code&gt;Origin&lt;/code&gt; header.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_age&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Configures the &lt;code&gt;Access-Control-Max-Age&lt;/code&gt; response header.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;code&gt;allowed_headers&lt;/code&gt; argument specifies which headers are acceptable from a CORS request.
The following headers are always implicitly allowed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Accept&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Accept-Language&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Content-Type&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Content-Language&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If &lt;code&gt;allowed_headers&lt;/code&gt; includes &lt;code&gt;&amp;quot;*&amp;quot;&lt;/code&gt;, all headers are permitted.&lt;/p&gt;
&lt;h3 id=&#34;tls&#34;&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;tls&lt;/code&gt; block configures TLS settings used for a server.
If the &lt;code&gt;tls&lt;/code&gt; block isn&amp;rsquo;t provided, TLS won&amp;rsquo;t be used for connections to the server.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-tls-server-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ca_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the CA file.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ca_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;CA PEM-encoded text to validate the server with.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cert_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS certificate.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cert_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Certificate PEM-encoded text for client authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cipher_suites&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A list of TLS cipher suites that the TLS transport can use.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;client_ca_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS cert to use by the server to verify a client certificate.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;curve_preferences&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;list(string)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Set of elliptic curves to use in a handshake.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;include_system_ca_certs_pool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to load the system certificate authorities pool alongside the certificate authority.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_file&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TLS certificate key.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;key_pem&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;secret&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Key PEM-encoded text for client authentication.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum acceptable TLS version for connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;TLS 1.3&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;min_version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Minimum acceptable TLS version for connections.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;TLS 1.2&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;reload_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The duration after which the certificate is reloaded.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;If &lt;code&gt;reload_interval&lt;/code&gt; is set to &lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;, the certificate never reloaded.&lt;/p&gt;
&lt;p&gt;The following pairs of arguments are mutually exclusive and can&amp;rsquo;t both be set simultaneously:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ca_pem&lt;/code&gt; and &lt;code&gt;ca_file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cert_pem&lt;/code&gt; and &lt;code&gt;cert_file&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;key_pem&lt;/code&gt; and &lt;code&gt;key_file&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If &lt;code&gt;cipher_suites&lt;/code&gt; is left blank, a safe default list is used.
Refer to the &lt;a href=&#34;https://go.dev/src/crypto/tls/cipher_suites.go&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Go Cipher Suites documentation&lt;/a&gt; for a list of supported cipher suites.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;client_ca_file&lt;/code&gt; sets the &lt;code&gt;ClientCA&lt;/code&gt; and &lt;code&gt;ClientAuth&lt;/code&gt; to &lt;code&gt;RequireAndVerifyClientCert&lt;/code&gt; in the &lt;code&gt;TLSConfig&lt;/code&gt;.
Refer to the &lt;a href=&#34;https://godoc.org/crypto/tls#Config&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Go TLS documentation&lt;/a&gt; for more information.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;curve_preferences&lt;/code&gt; argument determines the set of elliptic curves to prefer during a handshake in preference order.
If not provided, a default list is used.
The set of elliptic curves available are &lt;code&gt;X25519&lt;/code&gt;, &lt;code&gt;P521&lt;/code&gt;, &lt;code&gt;P256&lt;/code&gt;, and &lt;code&gt;P384&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;

        
&lt;h3 id=&#34;tpm&#34;&gt;&lt;code&gt;tpm&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;tpm&lt;/code&gt; block configures retrieving the TLS &lt;code&gt;key_file&lt;/code&gt; from a trusted device.&lt;/p&gt;


&lt;div data-shared=&#34;reference/components/otelcol-tls-tpm-block.md&#34;&gt;
            &lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The authorization value used to authenticate the TPM device.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Load the &lt;code&gt;tls.key_file&lt;/code&gt; from TPM.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;owner_auth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The owner authorization value used to authenticate the TPM device.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;path&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Path to the TPM device or Unix domain socket.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The &lt;a href=&#34;https://trustedcomputinggroup.org/resource/trusted-platform-module-tpm-summary/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;trusted platform module&lt;/a&gt; (TPM) configuration can be used for loading TLS key from TPM. Currently only TSS2 format is supported.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;path&lt;/code&gt; attribute is not supported on Windows.&lt;/p&gt;
&lt;p&gt;In the following example, the private key &lt;code&gt;my-tss2-key.key&lt;/code&gt; in TSS2 format is loaded from the TPM device &lt;code&gt;/dev/tmprm0&lt;/code&gt;:&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;otelcol.example.component &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
    ...
    tls {
        ...
        key_file = &amp;#34;my-tss2-key.key&amp;#34;
        tpm {
            enabled = true
            path = &amp;#34;/dev/tpmrm0&amp;#34;
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

        
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.zipkin&lt;/code&gt; doesn&amp;rsquo;t export any fields.&lt;/p&gt;
&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.zipkin&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.zipkin&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;p&gt;This example forwards received traces through a batch processor before finally sending it to an OTLP-capable endpoint:&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;otelcol.receiver.zipkin &amp;#34;default&amp;#34; {
  output {
    traces = [otelcol.processor.batch.default.input]
  }
}

otelcol.processor.batch &amp;#34;default&amp;#34; {
  output {
    metrics = [otelcol.exporter.otlphttp.default.input]
    logs    = [otelcol.exporter.otlphttp.default.input]
    traces  = [otelcol.exporter.otlphttp.default.input]
  }
}

otelcol.exporter.otlphttp &amp;#34;default&amp;#34; {
  client {
    endpoint = sys.env(&amp;#34;&amp;lt;OTLP_ENDPOINT&amp;gt;&amp;#34;)
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;enable-authentication&#34;&gt;Enable authentication&lt;/h2&gt;
&lt;p&gt;You can create a &lt;code&gt;otelcol.receiver.zipkin&lt;/code&gt; component that requires authentication for requests.
This is useful for limiting who can push data to the server.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Not all OpenTelemetry Collector authentication plugins support receiver authentication.
Refer to the 
    &lt;a href=&#34;/docs/alloy/v1.15/reference/components/otelcol/&#34;&gt;documentation&lt;/a&gt; for each &lt;code&gt;otelcol.auth.*&lt;/code&gt; component to determine its compatibility.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&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;otelcol.receiver.zipkin &amp;#34;default&amp;#34; {
  auth = otelcol.auth.basic.creds.handler
}

otelcol.auth.basic &amp;#34;creds&amp;#34; {
    username = sys.env(&amp;#34;&amp;lt;USERNAME&amp;gt;&amp;#34;)
    password = sys.env(&amp;#34;&amp;lt;PASSWORD&amp;gt;&amp;#34;)
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!-- START GENERATED COMPATIBLE COMPONENTS --&gt;
&lt;h2 id=&#34;compatible-components&#34;&gt;Compatible components&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.receiver.zipkin&lt;/code&gt; can accept arguments from the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Components that export &lt;a href=&#34;../../../compatibility/#opentelemetry-otelcolconsumer-exporters&#34;&gt;OpenTelemetry &lt;code&gt;otelcol.Consumer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;!-- END GENERATED COMPATIBLE COMPONENTS --&gt;]]></content><description>&lt;h1 id="otelcolreceiverzipkin">&lt;code>otelcol.receiver.zipkin&lt;/code>&lt;/h1>
&lt;p>&lt;code>otelcol.receiver.zipkin&lt;/code> accepts Zipkin-formatted traces over the network and forwards it to other &lt;code>otelcol.*&lt;/code> components.&lt;/p>
&lt;div class="admonition admonition-note">&lt;blockquote>&lt;p class="title text-uppercase">Note&lt;/p>&lt;p>&lt;code>otelcol.receiver.zipkin&lt;/code> is a wrapper over the upstream OpenTelemetry Collector &lt;a href="https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/receiver/zipkinreceiver" target="_blank" rel="noopener noreferrer">&lt;code>zipkin&lt;/code>&lt;/a> receiver.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p></description></item><item><title>otelcol.storage.file</title><link>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.storage.file/</link><pubDate>Mon, 13 Apr 2026 07:37:47 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/reference/components/otelcol/otelcol.storage.file/</guid><content><![CDATA[&lt;h1 id=&#34;otelcolstoragefile&#34;&gt;&lt;code&gt;otelcol.storage.file&lt;/code&gt;&lt;/h1&gt;


&lt;div data-shared=&#34;stability/public_preview.md&#34;&gt;
            &lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Public preview&lt;/strong&gt;: This is a &lt;a href=&#34;/docs/release-life-cycle/&#34;&gt;public preview&lt;/a&gt; component.
Public preview components are subject to breaking changes, and may be replaced with equivalent functionality that cover the same use case.
To enable and use a public preview component, you must set the &lt;code&gt;stability.level&lt;/code&gt; 
    &lt;a href=&#34;/docs/alloy/v1.15/reference/cli/run/&#34;&gt;flag&lt;/a&gt; to &lt;code&gt;public-preview&lt;/code&gt; or below.&lt;/p&gt;&lt;/blockquote&gt;
&lt;/div&gt;

        
&lt;p&gt;&lt;code&gt;otelcol.storage.file&lt;/code&gt; exposes a &lt;code&gt;handler&lt;/code&gt; that other &lt;code&gt;otelcol&lt;/code&gt; components can use to write state to a local directory.
The current implementation of this component uses &lt;a href=&#34;https://github.com/etcd-io/bbolt&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;bbolt&lt;/code&gt;&lt;/a&gt; to store and read data on disk.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;code&gt;otelcol.storage.file&lt;/code&gt; is a wrapper over the upstream OpenTelemetry Collector &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/extension/storage/filestorage&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;filestorage&lt;/code&gt;&lt;/a&gt; extension.
Bug reports or feature requests will be redirected to the upstream repository, if necessary.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can specify multiple &lt;code&gt;otelcol.storage.file&lt;/code&gt; components by giving them different labels.&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&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;otelcol.storage.file &amp;#34;&amp;lt;LABEL&amp;gt;&amp;#34; {
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;p&gt;You can use the following arguments with &lt;code&gt;otelcol.storage.file&lt;/code&gt;:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;create_directory&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Will the component be responsible for creating the &lt;code&gt;directory&lt;/code&gt;.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;directory&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The path to the dedicated data storage directory.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;directory_permissions&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The octal file permissions used when creating the &lt;code&gt;directory&lt;/code&gt; if &lt;code&gt;create_directory&lt;/code&gt; is set.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;0750&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fsync&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Will &lt;code&gt;fsync&lt;/code&gt; be called after each write operation.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The timeout for file storage operations.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;1s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The default &lt;code&gt;directory&lt;/code&gt; used for file storage is a subdirectory of the &lt;code&gt;data-alloy&lt;/code&gt; directory located in the Alloy working directory.
This will vary depending on the path specified by the &lt;a href=&#34;../../../cli/run/&#34;&gt;command line flag&lt;/a&gt; &lt;code&gt;--storage-path&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;create_directory&lt;/code&gt; is &lt;code&gt;false&lt;/code&gt; by default in the upstream receiver.
&lt;code&gt;create_directory&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt; by default in Alloy because &lt;code&gt;directory&lt;/code&gt; defaults to the &lt;code&gt;data-alloy&lt;/code&gt; path in Alloy and that directory is owned by the Alloy process.&lt;/p&gt;
&lt;h2 id=&#34;blocks&#34;&gt;Blocks&lt;/h2&gt;
&lt;p&gt;You can use the following blocks with &lt;code&gt;otelcol.storage.file&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;config-app&#34; style=&#34;--config-tree-row-count: 2;&#34; x3-data=&#34;configVisualizer(&amp;#34;\u003csection class=\&amp;#34;expand-table-wrapper\&amp;#34;\u003e\u003cdiv class=\&amp;#34;button-div\&amp;#34;\u003e\n      \u003cbutton class=\&amp;#34;expand-table-btn\&amp;#34;\u003eExpand table\u003c/button\u003e\n    \u003c/div\u003e\u003cdiv class=\&amp;#34;responsive-table-wrapper\&amp;#34;\u003e\n    \u003ctable\u003e\n      \u003cthead\u003e\n          \u003ctr\u003e\n              \u003cth\u003eBlock\u003c/th\u003e\n              \u003cth\u003eDescription\u003c/th\u003e\n              \u003cth\u003eRequired\u003c/th\u003e\n          \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#compaction\&amp;#34;\u003e\u003ccode\u003ecompaction\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures file storage compaction.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n          \u003ctr\u003e\n              \u003ctd\u003e\u003ca href=\&amp;#34;#debug_metrics\&amp;#34;\u003e\u003ccode\u003edebug_metrics\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n              \u003ctd\u003eConfigures the metrics that this component generates to monitor its state.\u003c/td\u003e\n              \u003ctd\u003eno\u003c/td\u003e\n          \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n  \u003c/div\u003e\n\u003c/section\u003e&amp;#34;)&#34;&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;config-app__noscript&#34;&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;Block&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#compaction&#34;&gt;&lt;code&gt;compaction&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures file storage compaction.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;#debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Configures the metrics that this component generates to monitor its state.&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/noscript&gt;
  &lt;main class=&#34;config-app__main&#34;&gt;
    &lt;template x3-if=&#34;flatBlocks.length === 0&#34;&gt;
      &lt;div class=&#34;empty-state&#34;&gt;
        &lt;div class=&#34;empty-state__icon&#34; x3-html=&#34;icons.AlertCircle&#34;&gt;&lt;/div&gt;
        &lt;p&gt;No valid configuration blocks found.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/template&gt;

    &lt;template x3-if=&#34;flatBlocks.length &gt; 0&#34;&gt;
      &lt;div class=&#34;config-tree&#34;&gt;
        &lt;div class=&#34;config-tree__toolbar&#34;&gt;
          &lt;div class=&#34;config-tree__title&#34;&gt;&lt;/div&gt;
          &lt;button
            class=&#34;tree-explorer__button w-130 text-right&#34;
            x3-on:click=&#34;toggleExpandAll&#34;
            x3-bind:title=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;
          &gt;
            &lt;span x3-text=&#34;allExpanded ? &#39;Collapse all&#39; : &#39;Expand all&#39;&#34;&gt;&lt;/span&gt;
            &lt;svg class=&#34;api-icon&#34; viewBox=&#34;0 0 24 24&#34;&gt;
              &lt;path x3-show=&#34;!allExpanded&#34; d=&#34;m6 9 6 6 6-6&#34; /&gt;
              &lt;path x3-show=&#34;allExpanded&#34; d=&#34;m18 15-6-6-6 6&#34; /&gt;
            &lt;/svg&gt;
          &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&#34;nodes-container&#34;&gt;
          &lt;template x3-for=&#34;block in flatBlocks&#34; x3-bind:key=&#34;block.id&#34;&gt;
            &lt;div class=&#34;node&#34; x3-bind:class=&#34;isNodeVisible(block) ? &#39;node--visible&#39; : &#39;node--hidden&#39;&#34;&gt;
              &lt;div
                class=&#34;node__row&#34;
                x3-bind:class=&#34;getRowClass(block)&#34;
                x3-bind:style=&#34;`padding-left: ${block.level * 24 &#43; 16}px`&#34;
                x3-on:click=&#34;toggleNode(block.id)&#34;
              &gt;
                &lt;div class=&#34;node__left&#34;&gt;
                  &lt;div class=&#34;node__indicator&#34;&gt;
                    &lt;template x3-if=&#34;block.hasChildren&#34;&gt;
                      &lt;button type=&#34;button&#34; class=&#34;node__toggle&#34; x3-on:click.stop=&#34;toggleNode(block.id)&#34;&gt;
                        &lt;div
                          class=&#34;node__toggle-icon&#34;
                          x3-bind:class=&#34;block.expanded ? &#39;node__toggle-icon--expanded&#39; : &#39;&#39;&#34;
                          x3-html=&#34;icons.ChevronDown&#34;
                        &gt;&lt;/div&gt;
                      &lt;/button&gt;
                    &lt;/template&gt;
                    &lt;template x3-if=&#34;!block.hasChildren&#34;&gt;
                      &lt;div class=&#34;node__toggle-spacer&#34;&gt;&lt;/div&gt;
                    &lt;/template&gt;
                  &lt;/div&gt;

                  &lt;div class=&#34;node__content&#34;&gt;
                    &lt;div
                      class=&#34;node__title prose&#34;
                      x3-bind:class=&#34;block.level === 0 ? &#39;node__title--root&#39; : &#39;node__title--nested&#39;&#34;
                      x3-html=&#34;block.displayName&#34;
                    &gt;&lt;/div&gt;
                    &lt;div class=&#34;node__description body-xsmall&#34; x3-html=&#34;block.description&#34;&gt;&lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&#34;node__meta&#34;&gt;
                  &lt;span
                    class=&#34;badge&#34;
                    x3-bind:class=&#34;block.required ? &#39;badge--required&#39; : &#39;badge--optional&#39;&#34;
                    x3-text=&#34;block.required ? &#39;Required&#39; : &#39;Optional&#39;&#34;
                  &gt;&lt;/span&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/template&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/template&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;h3 id=&#34;compaction&#34;&gt;&lt;code&gt;compaction&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;compaction&lt;/code&gt; block defines the compaction parameters for the file storage.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;check_interval&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The interval to check if online compaction is required.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;5s&amp;quot;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cleanup_on_start&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Cleanup temporary files on component start.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;directory&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The path to the directory where temporary compaction artifacts will be stored.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;max_transaction_size&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Maximum number of items present in a single compaction iteration.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;65536&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;on_rebound&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Run compaction online when rebound conditions are met.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;on_start&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Run compaction on component start.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;rebound_needed_threshold_mib&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;File storage total allocated size boundary to mark need for online compaction.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;100&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;rebound_trigger_threshold_mib&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;File storage used allocated size boundary to trigger online compaction.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The default &lt;code&gt;directory&lt;/code&gt; used for file storage is a subdirectory of the &lt;code&gt;data-alloy&lt;/code&gt; directory located in the Alloy working directory.
This will vary depending on the path specified by the &lt;a href=&#34;../../../cli/run/&#34;&gt;command line flag&lt;/a&gt; &lt;code&gt;--storage-path&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;If &lt;code&gt;on_rebound&lt;/code&gt; online compaction is enabled, compaction will be triggered when total allocated data is greater than &lt;code&gt;rebound_needed_threshold_mib&lt;/code&gt; and used allocated data is less than &lt;code&gt;rebound_trigger_threshold_mib&lt;/code&gt;.
More detailed information about the way the component supports file compaction for allocated disk storage recovery can be found in the upstream component&amp;rsquo;s &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/extension/storage/filestorage#compaction&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;debug_metrics&#34;&gt;&lt;code&gt;debug_metrics&lt;/code&gt;&lt;/h3&gt;


&lt;div data-shared=&#34;reference/components/otelcol-debug-metrics-block.md&#34;&gt;
            &lt;p&gt;The &lt;code&gt;debug_metrics&lt;/code&gt; block configures the metrics that this component generates to monitor its state.&lt;/p&gt;
&lt;p&gt;The following arguments are supported:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Whether to disable certain high cardinality metrics.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;no&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; is the Alloy equivalent to the &lt;code&gt;telemetry.disableHighCardinalityMetrics&lt;/code&gt; feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If configured, &lt;code&gt;disable_high_cardinality_metrics&lt;/code&gt; only applies to &lt;code&gt;otelcol.exporter.*&lt;/code&gt; and &lt;code&gt;otelcol.receiver.*&lt;/code&gt; components.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h2 id=&#34;exported-fields&#34;&gt;Exported fields&lt;/h2&gt;
&lt;p&gt;The following fields are exported and can be referenced by other components:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&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;code&gt;handler&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;capsule(otelcol.Handler)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A value that other components can use to persist state to file storage.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;component-health&#34;&gt;Component health&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.storage.file&lt;/code&gt; is only reported as unhealthy if given an invalid configuration.&lt;/p&gt;
&lt;h2 id=&#34;debug-information&#34;&gt;Debug information&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;otelcol.storage.file&lt;/code&gt; doesn&amp;rsquo;t expose any component-specific debug information.&lt;/p&gt;
&lt;h2 id=&#34;examples&#34;&gt;Examples&lt;/h2&gt;
&lt;h3 id=&#34;otelcolreceiverfilelog&#34;&gt;&lt;code&gt;otelcol.receiver.filelog&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;This examples uses an &lt;code&gt;otelcol.storage.file&lt;/code&gt; component to store file offsets for an &lt;code&gt;otelcol.receiver.filelog&lt;/code&gt; component.
This will only use a small amount of data for each file that has been read so it&amp;rsquo;s unlikely that you will need to be concerned about compaction settings.&lt;/p&gt;
&lt;p&gt;The default settings of the component will place the &lt;a href=&#34;https://github.com/etcd-io/bbolt&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;bbolt&lt;/code&gt;&lt;/a&gt; file for the receiver in &lt;code&gt;&amp;lt;STORAGE_PATH&amp;gt;/otelcol.storage.file.default/receiver_filelog_default&lt;/code&gt;&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;
otelcol.storage.file &amp;#34;default&amp;#34; {}

otelcol.receiver.filelog &amp;#34;default&amp;#34; {
    include = [&amp;#34;/var/log/*.log&amp;#34;]
    storage = otelcol.storage.file.default.handler
    operators = [{
      type = &amp;#34;regex_parser&amp;#34;,
      regex = &amp;#34;^(?P&amp;lt;timestamp&amp;gt;[^ ]&amp;#43;)&amp;#34;,
      timestamp = {
        parse_from = &amp;#34;attributes.timestamp&amp;#34;,
        layout = &amp;#34;%Y-%m-%dT%H:%M:%S.%fZ&amp;#34;,
        location = &amp;#34;UTC&amp;#34;,
      },
    }]
    output {
        logs = [otelcol.exporter.debug.default.input]
    }
}


otelcol.exporter.debug &amp;#34;default&amp;#34; {}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
]]></content><description>&lt;h1 id="otelcolstoragefile">&lt;code>otelcol.storage.file&lt;/code>&lt;/h1>
&lt;div data-shared="stability/public_preview.md">
&lt;blockquote>
&lt;p>&lt;strong>Public preview&lt;/strong>: This is a &lt;a href="/docs/release-life-cycle/">public preview&lt;/a> component.
Public preview components are subject to breaking changes, and may be replaced with equivalent functionality that cover the same use case.
To enable and use a public preview component, you must set the &lt;code>stability.level&lt;/code>
&lt;a href="/docs/alloy/v1.15/reference/cli/run/">flag&lt;/a> to &lt;code>public-preview&lt;/code> or below.&lt;/p></description></item></channel></rss>