<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Introduction to Grafana Alloy on Grafana Labs</title><link>https://grafana.com/docs/alloy/v1.15/introduction/</link><description>Recent content in Introduction to Grafana Alloy on Grafana Labs</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="/docs/alloy/v1.15/introduction/index.xml" rel="self" type="application/rss+xml"/><item><title>Why Grafana Alloy</title><link>https://grafana.com/docs/alloy/v1.15/introduction/why-alloy/</link><pubDate>Mon, 30 Mar 2026 15:47:22 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/introduction/why-alloy/</guid><content><![CDATA[&lt;h1 id=&#34;why-grafana-alloy&#34;&gt;Why Grafana Alloy&lt;/h1&gt;
&lt;p&gt;Grafana Alloy simplifies telemetry collection by consolidating multiple collectors into one solution.&lt;/p&gt;
&lt;h2 id=&#34;the-telemetry-collection-challenge&#34;&gt;The telemetry collection challenge&lt;/h2&gt;
&lt;p&gt;Telemetry collection in production environments can quickly become complex as different teams develop different needs over time.&lt;/p&gt;
&lt;p&gt;Consider a common scenario.
You start with infrastructure observability, using Prometheus to scrape metrics from Node Exporter.
Your metrics flow to a Prometheus database, and you visualize them in Grafana dashboards.
This works well for monitoring infrastructure.&lt;/p&gt;
&lt;p&gt;Later, you want to add application observability and start analyzing distributed traces.
Prometheus doesn&amp;rsquo;t support traces, so you add the OpenTelemetry Collector.
Now you&amp;rsquo;re running two different collectors, each with its own configuration syntax, deployment requirements, and operational overhead.&lt;/p&gt;
&lt;p&gt;As your observability needs grow, you might add a separate collector for logs, another tool for continuous profiling, and different agents for different environments.
Before long, you&amp;rsquo;re managing multiple collectors, learning different configuration languages, troubleshooting various failure modes, and dealing with increased memory and CPU overhead.&lt;/p&gt;
&lt;p&gt;Alloy addresses these challenges by handling all signal types in a single deployment with one configuration language.
You learn one tool, deploy one collector, and maintain one system.&lt;/p&gt;
&lt;h2 id=&#34;when-to-use-alloy&#34;&gt;When to use Alloy&lt;/h2&gt;
&lt;p&gt;Alloy excels in several scenarios.
The following sections help you identify whether it fits your needs.&lt;/p&gt;
&lt;h3 id=&#34;you-need-multiple-signal-types&#34;&gt;You need multiple signal types&lt;/h3&gt;
&lt;p&gt;Alloy natively supports metrics from both Prometheus and OpenTelemetry sources, application and system logs, distributed traces using OpenTelemetry, and continuous profiling data.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re running separate collectors for metrics and traces, or planning to add log collection to your metrics pipeline, Alloy lets you consolidate into a single solution.&lt;/p&gt;
&lt;p&gt;For example, if you monitor infrastructure with Prometheus but want to add distributed tracing for your microservices, you can use Alloy to handle both with one collector instead of deploying multiple collectors.&lt;/p&gt;
&lt;h3 id=&#34;you-want-to-reduce-collector-complexity&#34;&gt;You want to reduce collector complexity&lt;/h3&gt;
&lt;p&gt;Running multiple collectors creates operational overhead.
You have to learn different configuration languages, manage separate deployments and upgrades, troubleshoot different failure modes, and monitor multiple systems—all while consuming more resources.&lt;/p&gt;
&lt;p&gt;Alloy consolidates all of this.
You learn one configuration language, manage one deployment, and use a single built-in UI for debugging.
This unified approach reduces both complexity and resource consumption.&lt;/p&gt;
&lt;p&gt;For example, if your team runs Prometheus for metrics, Fluentd for logs, and Jaeger agents for traces, Alloy can replace all three and simplify your telemetry architecture.&lt;/p&gt;
&lt;h3 id=&#34;you-need-both-prometheus-and-opentelemetry&#34;&gt;You need both Prometheus and OpenTelemetry&lt;/h3&gt;
&lt;p&gt;Alloy works with both ecosystems simultaneously.
It includes native Prometheus remote write support, full OpenTelemetry protocol support, Prometheus service discovery mechanisms, OpenTelemetry instrumentation compatibility, and the ability to convert between formats.&lt;/p&gt;
&lt;p&gt;You don&amp;rsquo;t have to choose between Prometheus and OpenTelemetry.
If you have Prometheus deployments and instrumentation but your applications use OpenTelemetry, Alloy collects from both while you standardize on one collector.&lt;/p&gt;
&lt;h3 id=&#34;you-value-vendor-neutrality&#34;&gt;You value vendor neutrality&lt;/h3&gt;
&lt;p&gt;Alloy supports sending data to Grafana Cloud, a self-managed Grafana stack with Loki, Mimir, Tempo, and Pyroscope, any Prometheus-compatible database, any OpenTelemetry-compatible backend, or multiple destinations simultaneously.&lt;/p&gt;
&lt;p&gt;This flexibility means you&amp;rsquo;re not locked into a single vendor or backend.
You can send data to Grafana Cloud for some telemetry and self-managed systems for others, or change backends without changing your collector.&lt;/p&gt;
&lt;p&gt;For example, if you want to send metrics to Grafana Cloud but keep logs on-premises for compliance reasons, Alloy can send metrics to the cloud and logs to your local Loki instance from the same configuration.&lt;/p&gt;
&lt;h3 id=&#34;your-observability-needs-are-growing&#34;&gt;Your observability needs are growing&lt;/h3&gt;
&lt;p&gt;Alloy provides features for scaling, including clustering to distribute workload across multiple instances for high availability and horizontal scaling, remote configuration to manage fleet-wide configurations from a central location, and automatic workload distribution across cluster members.&lt;/p&gt;
&lt;p&gt;Start with a single Alloy instance and scale to clusters as your needs grow, without changing your approach.&lt;/p&gt;
&lt;h3 id=&#34;youre-running-on-kubernetes&#34;&gt;You&amp;rsquo;re running on Kubernetes&lt;/h3&gt;
&lt;p&gt;Alloy offers Kubernetes-native features including first-class support for discovering Kubernetes resources, components that interact with Kubernetes APIs directly, native understanding of pods, services, and custom resources, and support for DaemonSet and Deployment patterns.&lt;/p&gt;
&lt;p&gt;No separate Kubernetes operator is required.
The Kubernetes discovery components automatically find and scrape pods as they start and stop, without additional configuration.&lt;/p&gt;
&lt;h3 id=&#34;you-want-programmable-pipelines&#34;&gt;You want programmable pipelines&lt;/h3&gt;
&lt;p&gt;The Alloy configuration language lets you create conditional logic in your pipelines, reference data from one component in another, build reusable pipeline modules, transform and filter data with built-in functions, and respond dynamically to changing conditions.&lt;/p&gt;
&lt;p&gt;If you need more than basic &amp;ldquo;collect and forward&amp;rdquo; functionality, the programmable approach provides the flexibility you need.
Common scenarios include routing high-priority metrics to one backend while sampling lower-priority data, extracting useful labels from high-cardinality fields to manage storage costs, standardizing attribute names when different teams use inconsistent conventions, and redacting sensitive tokens or credentials from logs before they reach storage.&lt;/p&gt;
&lt;h3 id=&#34;you-want-to-share-pipelines-across-teams&#34;&gt;You want to share pipelines across teams&lt;/h3&gt;
&lt;p&gt;The module system allows you to create custom components that combine multiple steps, package and share pipelines with your team, use community-contributed modules, and maintain consistent collection patterns across services.&lt;/p&gt;
&lt;p&gt;Your platform team can create a standard monitoring module that application teams import and configure with their specific settings, without understanding the underlying complexity.&lt;/p&gt;
&lt;h2 id=&#34;what-alloy-replaces&#34;&gt;What Alloy replaces&lt;/h2&gt;
&lt;p&gt;Alloy can consolidate multiple collectors.
Replace Prometheus Agent to gain the same functionality plus support for logs, traces, and profiles.
Replace the OpenTelemetry Collector to add native Prometheus support alongside OTLP.
Replace specialized log collectors like Promtail, Fluentd, or Filebeat with a unified collection approach.&lt;/p&gt;
&lt;p&gt;You can also run Alloy alongside collectors during migration to transition gradually without disrupting your observability.
Refer to the &lt;a href=&#34;../../set-up/migrate/&#34;&gt;migration guides&lt;/a&gt; for step-by-step instructions.&lt;/p&gt;
&lt;h2 id=&#34;when-alloy-might-not-be-the-right-choice&#34;&gt;When Alloy might not be the right choice&lt;/h2&gt;
&lt;p&gt;Alloy is powerful and flexible, but it&amp;rsquo;s not always the best fit.&lt;/p&gt;
&lt;p&gt;Consider alternatives if you only need basic Prometheus metrics scraping with no additional features, as Prometheus Agent might be simpler.
If you&amp;rsquo;re deeply integrated with a specific collector&amp;rsquo;s ecosystem and don&amp;rsquo;t need multi-signal support, staying with your current solution may make more sense.
If you have very specific requirements that available components don&amp;rsquo;t address, evaluate whether the benefits outweigh the effort of migration.&lt;/p&gt;
&lt;h2 id=&#34;next-steps&#34;&gt;Next steps&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Learn &lt;a href=&#34;../how-alloy-works/&#34;&gt;how Alloy works&lt;/a&gt; to understand the architecture&lt;/li&gt;
&lt;li&gt;Review &lt;a href=&#34;../requirements/&#34;&gt;requirements and expectations&lt;/a&gt; to understand deployment considerations&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../../set-up/install/&#34;&gt;Install&lt;/a&gt; Alloy to get started&lt;/li&gt;
&lt;li&gt;Follow a &lt;a href=&#34;../../tutorials/&#34;&gt;tutorial&lt;/a&gt; for hands-on experience&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="why-grafana-alloy">Why Grafana Alloy&lt;/h1>
&lt;p>Grafana Alloy simplifies telemetry collection by consolidating multiple collectors into one solution.&lt;/p>
&lt;h2 id="the-telemetry-collection-challenge">The telemetry collection challenge&lt;/h2>
&lt;p>Telemetry collection in production environments can quickly become complex as different teams develop different needs over time.&lt;/p></description></item><item><title>How Grafana Alloy works</title><link>https://grafana.com/docs/alloy/v1.15/introduction/how-alloy-works/</link><pubDate>Mon, 30 Mar 2026 15:47:22 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/introduction/how-alloy-works/</guid><content><![CDATA[&lt;h1 id=&#34;how-grafana-alloy-works&#34;&gt;How Grafana Alloy works&lt;/h1&gt;
&lt;p&gt;Understanding the architecture and design of Alloy helps you use it effectively.&lt;/p&gt;
&lt;h2 id=&#34;where-alloy-fits&#34;&gt;Where Alloy fits&lt;/h2&gt;
&lt;p&gt;A typical observability setup has three layers: data sources that generate telemetry, collection tools that gather and process it, and storage backends with visualization frontends for querying and exploring data.&lt;/p&gt;
&lt;p&gt;Alloy operates in the collection layer, sitting between your data sources and your storage backends.
It acts as the bridge between them, performing three main functions in your telemetry pipeline.&lt;/p&gt;
&lt;h3 id=&#34;collect-telemetry-data&#34;&gt;Collect telemetry data&lt;/h3&gt;
&lt;p&gt;Alloy gathers telemetry from any source in your infrastructure.
You can configure it to scrape Prometheus endpoints for metrics or set up receivers to accept data pushed via the OpenTelemetry protocol.
It tails log files and reads from system outputs to capture application and infrastructure logs.
Service discovery automatically finds resources in Kubernetes, Docker, or cloud environments without requiring static configuration.
You can also integrate with databases, message queues, and other systems to capture telemetry from specialized sources.&lt;/p&gt;
&lt;h3 id=&#34;transform-and-process-data&#34;&gt;Transform and process data&lt;/h3&gt;
&lt;p&gt;Processing telemetry before sending it to backends optimizes costs and improves data quality.
Create filters to drop unwanted data or redact sensitive information like tokens and credentials from logs before they reach storage.
Add labels, metadata, or contextual information to enrich your data—for example, extract a cloud provider name from instance IDs to create useful aggregation labels.
Standardize attribute names across services when different teams use inconsistent naming conventions.
Implement sampling strategies to reduce high-volume data while preserving the signal you need for troubleshooting.
Convert between formats, such as transforming Prometheus metrics to OpenTelemetry format, to ensure compatibility with your backends.
Define routing rules to send different types of data to different destinations based on your operational requirements.&lt;/p&gt;
&lt;h3 id=&#34;send-to-backends&#34;&gt;Send to backends&lt;/h3&gt;
&lt;p&gt;Alloy delivers processed telemetry to any storage system you choose.
Send data to Grafana Cloud for managed observability, or export to your self-managed Grafana stack components.
Connect to any Prometheus-compatible database for metrics and any OpenTelemetry-compatible backend for all signal types.
Write to multiple destinations simultaneously, sending the same data to different systems or routing different data types to specialized backends.&lt;/p&gt;
&lt;h2 id=&#34;component-based-architecture&#34;&gt;Component-based architecture&lt;/h2&gt;
&lt;p&gt;Alloy uses modular &lt;a href=&#34;../../get-started/components/&#34;&gt;components&lt;/a&gt; that work like building blocks.
Each component performs a specific task, such as collecting metrics from Prometheus endpoints, receiving OpenTelemetry data, transforming and filtering telemetry, or sending data to backends.&lt;/p&gt;
&lt;p&gt;You connect these components together to &lt;a href=&#34;../../get-started/components/build-pipelines/&#34;&gt;build pipelines&lt;/a&gt; that match your exact requirements.
This modular approach makes configurations easier to understand, test, and maintain.&lt;/p&gt;
&lt;h2 id=&#34;programmable-pipelines&#34;&gt;Programmable pipelines&lt;/h2&gt;
&lt;p&gt;Alloy uses a rich, &lt;a href=&#34;../../get-started/syntax/&#34;&gt;expression-based configuration language&lt;/a&gt; that lets you reference data from one component in another, create dynamic configurations that respond to changing conditions, build reusable pipelines you can share across teams, and use built-in &lt;a href=&#34;../../get-started/expressions/&#34;&gt;functions&lt;/a&gt; to transform and filter data.&lt;/p&gt;
&lt;h2 id=&#34;custom-and-shareable-pipelines&#34;&gt;Custom and shareable pipelines&lt;/h2&gt;
&lt;p&gt;You can create &lt;a href=&#34;../../get-started/components/custom-components/&#34;&gt;custom components&lt;/a&gt; that combine multiple components into a single, reusable unit.
Share these custom components with your team or the community through the &lt;a href=&#34;../../get-started/modules/&#34;&gt;module system&lt;/a&gt;.
Use pre-built modules from the community or create your own.&lt;/p&gt;
&lt;h2 id=&#34;enterprise-ready-features&#34;&gt;Enterprise-ready features&lt;/h2&gt;
&lt;p&gt;As your systems grow more complex, Alloy scales with you.
&lt;a href=&#34;../../get-started/clustering/&#34;&gt;Clustering&lt;/a&gt; lets you configure instances to form a cluster for automatic workload distribution and high availability.
Centralized configuration retrieves settings from remote servers for fleet management.
Kubernetes-native capabilities let you interact with Kubernetes resources directly without learning separate operators.&lt;/p&gt;
&lt;h2 id=&#34;built-in-debugging-tools&#34;&gt;Built-in debugging tools&lt;/h2&gt;
&lt;p&gt;Alloy includes a &lt;a href=&#34;../../troubleshoot/debug/&#34;&gt;built-in user interface&lt;/a&gt; that helps you visualize your component pipelines, inspect component states and outputs, troubleshoot configuration issues, and monitor performance.&lt;/p&gt;
&lt;h2 id=&#34;deployment-patterns&#34;&gt;Deployment patterns&lt;/h2&gt;
&lt;p&gt;Choose the &lt;a href=&#34;../../set-up/deploy/&#34;&gt;deployment pattern&lt;/a&gt; that fits your architecture.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Edge deployment:&lt;/strong&gt; Deploy Alloy close to your data sources for minimal latency.
Run it as a DaemonSet in Kubernetes to collect from every node, install it on each host for infrastructure monitoring, or deploy it alongside applications for local processing.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Gateway deployment:&lt;/strong&gt; Deploy Alloy as a centralized gateway.
Configure your applications to send telemetry to Alloy gateways, which process and forward data to backends.
Applications only need to know about the gateway endpoints.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Hybrid deployment:&lt;/strong&gt; Combine edge and gateway approaches.
Deploy edge instances to handle initial collection and filtering close to sources, then forward to gateway instances for aggregation and final processing.
This pattern reduces bandwidth usage and enables centralized policy enforcement while maintaining local processing capabilities.&lt;/p&gt;
&lt;h2 id=&#34;integrations&#34;&gt;Integrations&lt;/h2&gt;
&lt;p&gt;Alloy integrates with Grafana Cloud and self-managed Grafana stacks, routing metrics to Mimir, logs to Loki, traces to Tempo, and profiles to Pyroscope.
It also works with the broader Prometheus ecosystem through full compatibility with the Prometheus exposition format and service discovery mechanisms, and with any OpenTelemetry-compatible backend through OTLP support.&lt;/p&gt;
&lt;p&gt;You can also connect to other ecosystems, including InfluxDB, Elasticsearch, and cloud platforms like AWS, Google Cloud Platform, and Azure.&lt;/p&gt;
&lt;h2 id=&#34;next-steps&#34;&gt;Next steps&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Review &lt;a href=&#34;../requirements/&#34;&gt;requirements and expectations&lt;/a&gt; to understand deployment considerations&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../../set-up/install/&#34;&gt;Install&lt;/a&gt; Alloy to get started&lt;/li&gt;
&lt;li&gt;Learn core &lt;a href=&#34;../../get-started/&#34;&gt;concepts&lt;/a&gt; including components, expressions, and pipelines&lt;/li&gt;
&lt;li&gt;Follow &lt;a href=&#34;../../tutorials/&#34;&gt;tutorials&lt;/a&gt; for hands-on experience&lt;/li&gt;
&lt;li&gt;Explore the &lt;a href=&#34;../../reference/&#34;&gt;component reference&lt;/a&gt; to see available components&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="how-grafana-alloy-works">How Grafana Alloy works&lt;/h1>
&lt;p>Understanding the architecture and design of Alloy helps you use it effectively.&lt;/p>
&lt;h2 id="where-alloy-fits">Where Alloy fits&lt;/h2>
&lt;p>A typical observability setup has three layers: data sources that generate telemetry, collection tools that gather and process it, and storage backends with visualization frontends for querying and exploring data.&lt;/p></description></item><item><title>OpenTelemetry in Alloy</title><link>https://grafana.com/docs/alloy/v1.15/introduction/otel_alloy/</link><pubDate>Mon, 30 Mar 2026 15:47:22 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/introduction/otel_alloy/</guid><content><![CDATA[&lt;h1 id=&#34;opentelemetry-in-alloy&#34;&gt;OpenTelemetry in Alloy&lt;/h1&gt;
&lt;p&gt;Grafana Alloy combines the Prometheus-native, production-grade collection features of Alloy with the broad ecosystem and standards of OpenTelemetry.
The Alloy OpenTelemetry Engine is a bundled OpenTelemetry Collector distribution embedded within Alloy.
It lets you run Alloy as a fully compatible OTel Collector while retaining access to all Alloy features and integrations.&lt;/p&gt;


&lt;div data-shared=&#34;stability/experimental_otel.md&#34;&gt;
            &lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;EXPERIMENTAL&lt;/strong&gt;: OTel Engine 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.&lt;/p&gt;
&lt;p&gt;To maintain full compatibility of the OTel Engine with the upstream OpenTelemetry Collector and expose a compatible command line interface, the OTel Engine isn&amp;rsquo;t hidden behind a stability 
    &lt;a href=&#34;/docs/alloy/v1.15/reference/cli/run/&#34;&gt;flag&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Make sure that you understand the risks involved before using an experimental feature in your production environments.&lt;/p&gt;&lt;/blockquote&gt;
&lt;/div&gt;

        
&lt;h2 id=&#34;terminology&#34;&gt;Terminology&lt;/h2&gt;
&lt;p&gt;Alloy supports two runtime engines and an extension:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Default Engine&lt;/strong&gt;: The default Alloy runtime and &lt;a href=&#34;../get-started/syntax/&#34;&gt;configuration syntax&lt;/a&gt;.
This remains the default, stable experience with &lt;a href=&#34;../introduction/backward-compatibility/&#34;&gt;backward compatibility&lt;/a&gt; guarantees for Alloy users.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;OTel Engine&lt;/strong&gt;: The standard OpenTelemetry Collector runtime embedded within Alloy.
It uses &lt;a href=&#34;https://opentelemetry.io/docs/collector/configuration/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;upstream collector YAML configuration&lt;/a&gt; for pipelines and components.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Alloy Engine extension&lt;/strong&gt;: An OpenTelemetry Collector extension that lets you run both the Default Engine and the OTel Engine in parallel.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;included-components&#34;&gt;Included components&lt;/h2&gt;
&lt;p&gt;The OTel Engine bundle includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Standard components from the OpenTelemetry Collector core&lt;/li&gt;
&lt;li&gt;A curated selection of components from contributor repositories&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;alloyengine&lt;/code&gt; extension&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Alloy v1.15.1 bundles versions v0.147.0 of OpenTelemetry Collector components.
You can find more information about the bundled version in both the &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector/tree/v0.147.0&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;OpenTelemetry Collector&lt;/a&gt; and &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;OpenTelemetry Collector Contrib&lt;/a&gt; repositories.&lt;/p&gt;
&lt;p&gt;The following sections list all included components:&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;Extensions&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;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/alloy/tree/main/extension/alloyengine&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;alloyengine&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/extension/basicauthextension/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;basicauth&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/extension/bearertokenauthextension/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;bearertokenauth&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/extension/headerssetterextension/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;headerssetter&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/extension/healthcheckextension/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;healthcheck&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/extension/jaegerremotesampling/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;jaegerremotesampling&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/extension/oauth2clientauthextension/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;oauth2clientauth&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/extension/pprofextension/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;pprof&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/extension/sigv4authextension/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;sigv4auth&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/extension/storage/filestorage/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;filestorage&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector/tree/v0.147.0/extension/zpagesextension/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;zpages&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&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;Configuration Providers&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;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector/tree/v0.147.0/confmap/provider/envprovider/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;env&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector/tree/v0.147.0/confmap/provider/fileprovider/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;file&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector/tree/v0.147.0/confmap/provider/httpprovider/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;http&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector/tree/v0.147.0/confmap/provider/httpsprovider/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;https&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector/tree/v0.147.0/confmap/provider/yamlprovider/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;yaml&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&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;Receivers&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;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/receiver/awscloudwatchreceiver/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;awscloudwatch&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/receiver/awsecscontainermetricsreceiver/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;awsecscontainermetrics&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/receiver/awss3receiver/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;awss3&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/receiver/cloudflarereceiver/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;cloudflare&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/receiver/datadogreceiver/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;datadog&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/receiver/faroreceiver/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;faro&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/receiver/filelogreceiver/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;filelog&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/receiver/filestatsreceiver/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;filestats&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/receiver/fluentforwardreceiver/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;fluentforward&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/receiver/googlecloudpubsubreceiver/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;googlecloudpubsub&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/receiver/hostmetricsreceiver/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;hostmetrics&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/receiver/influxdbreceiver/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;influxdb&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/receiver/jaegerreceiver/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;jaeger&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/receiver/k8sobjectsreceiver/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;k8sobjectsreceiver&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/receiver/kafkareceiver/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;kafka&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/receiver/kubeletstatsreceiver/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;kubeletstatsreceiver&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/receiver/prometheusreceiver/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;prometheus&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/receiver/prometheusremotewritereceiver/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;prometheusremotewrite&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/receiver/solacereceiver/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;solace&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/receiver/splunkhecreceiver/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;splunkhec&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/receiver/syslogreceiver/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;syslog&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/receiver/tcplogreceiver/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;tcplog&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/receiver/vcenterreceiver/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;vcenter&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/receiver/zipkinreceiver/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;zipkin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector/tree/v0.147.0/receiver/otlpreceiver/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;otlp&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&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;Connectors&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;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/connector/countconnector/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;count&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/connector/grafanacloudconnector/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;grafanacloud&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/connector/servicegraphconnector/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;servicegraph&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/connector/spanmetricsconnector/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;spanmetrics&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector/tree/v0.147.0/connector/forwardconnector/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;forward&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&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;Processors&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;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/processor/attributesprocessor/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;attributes&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/cumulativetodeltaprocessor/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;cumulativetodelta&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/deltatocumulativeprocessor/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;deltatocumulative&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/filterprocessor/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;filter&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/groupbyattrsprocessor/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;groupbyattrs&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/intervalprocessor/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;interval&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/k8sattributesprocessor/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;k8sattributes&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/metricstarttimeprocessor/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;metricstarttime&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/probabilisticsamplerprocessor/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;probabilisticsampler&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/resourceprocessor/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;resource&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/resourcedetectionprocessor/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;resourcedetection&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/spanprocessor/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;span&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/tailsamplingprocessor/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;tailsampling&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/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;transform&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector/tree/v0.147.0/processor/batchprocessor/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;batch&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector/tree/v0.147.0/processor/memorylimiterprocessor/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;memorylimiter&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&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;Exporters&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;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.147.0/exporter/awss3exporter/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;awss3&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/exporter/faroexporter/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;faro&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/exporter/fileexporter/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;file&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/exporter/googlecloudexporter/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;googlecloud&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/exporter/googlecloudpubsubexporter/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;googlecloudpubsub&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/exporter/kafkaexporter/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;kafka&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/exporter/loadbalancingexporter/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;loadbalancing&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/exporter/prometheusexporter/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;prometheus&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/exporter/prometheusremotewriteexporter/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;prometheusremotewrite&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/exporter/splunkhecexporter/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;splunkhec&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/exporter/syslogexporter/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;syslog&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/exporter/zipkinexporter/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;zipkin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector/tree/v0.147.0/exporter/debugexporter/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;debug&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector/tree/v0.147.0/exporter/nopexporter/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;nop&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector/tree/v0.147.0/exporter/otlpexporter/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;otlp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector/tree/v0.147.0/exporter/otlphttpexporter/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;otlphttp&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;To view the full list of components and their versions, refer to the &lt;a href=&#34;https://github.com/grafana/alloy/blob/main/collector/builder-config.yaml&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;OpenTelemetry Collector Builder manifest&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;next-steps&#34;&gt;Next steps&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Refer to &lt;a href=&#34;../../set-up/otel_engine/&#34;&gt;The OTel Engine&lt;/a&gt; for information about how to run the OTel Engine.&lt;/li&gt;
&lt;li&gt;Refer to the &lt;a href=&#34;../../reference/cli/otel/&#34;&gt;OTel CLI reference&lt;/a&gt; for more information about the OTel CLI.&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="opentelemetry-in-alloy">OpenTelemetry in Alloy&lt;/h1>
&lt;p>Grafana Alloy combines the Prometheus-native, production-grade collection features of Alloy with the broad ecosystem and standards of OpenTelemetry.
The Alloy OpenTelemetry Engine is a bundled OpenTelemetry Collector distribution embedded within Alloy.
It lets you run Alloy as a fully compatible OTel Collector while retaining access to all Alloy features and integrations.&lt;/p></description></item><item><title>Requirements and expectations</title><link>https://grafana.com/docs/alloy/v1.15/introduction/requirements/</link><pubDate>Mon, 30 Mar 2026 15:47:22 +0000</pubDate><guid>https://grafana.com/docs/alloy/v1.15/introduction/requirements/</guid><content><![CDATA[&lt;h1 id=&#34;requirements-and-expectations&#34;&gt;Requirements and expectations&lt;/h1&gt;
&lt;p&gt;Before you put Grafana Alloy into production, it helps to have a clear picture of where it runs well, how it&amp;rsquo;s usually deployed, and where people most often get surprised.&lt;/p&gt;
&lt;p&gt;Before a first deployment, people usually want answers to a few basic questions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Will Alloy run in my environment?&lt;/li&gt;
&lt;li&gt;How should I deploy it the first time?&lt;/li&gt;
&lt;li&gt;What kinds of constraints or trade-offs should I expect?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The guidance here focuses on the common, supported paths that work well for most users, without diving into every possible edge case.&lt;/p&gt;
&lt;h2 id=&#34;design-expectations&#34;&gt;Design expectations&lt;/h2&gt;
&lt;p&gt;Grafana Alloy makes telemetry collection explicit and predictable, even when that means exposing trade-offs that other tools try to hide.&lt;/p&gt;
&lt;p&gt;A few design choices are worth keeping in mind:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Alloy favors explicit configuration over implicit behavior.
You define pipelines, routing, and scaling decisions in configuration rather than relying on automatic inference.&lt;/li&gt;
&lt;li&gt;Alloy exposes deployment and scaling choices instead of masking them.
Changes in topology—such as switching from a DaemonSet to a centralized deployment—can affect behavior, and those effects are intentional and visible.&lt;/li&gt;
&lt;li&gt;Alloy consolidates multiple collectors, but it doesn&amp;rsquo;t replicate every default or assumption from these other collectors.
Similar concepts may behave differently when the underlying goals differ.&lt;/li&gt;
&lt;li&gt;Alloy prioritizes predictability over &amp;ldquo;magic&amp;rdquo; defaults.
Understanding how components connect and how work distributes is part of operating Alloy successfully.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Keeping these expectations in mind makes it easier to reason about configuration changes, scaling decisions, and observed behavior in production.&lt;/p&gt;
&lt;h2 id=&#34;supported-platforms&#34;&gt;Supported platforms&lt;/h2&gt;
&lt;p&gt;Alloy runs on the following platforms:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Linux&lt;/li&gt;
&lt;li&gt;Windows&lt;/li&gt;
&lt;li&gt;macOS&lt;/li&gt;
&lt;li&gt;FreeBSD&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For supported architectures and version requirements, refer to &lt;a href=&#34;../../set-up/supported-platforms/&#34;&gt;Supported platforms&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For setup instructions, refer to &lt;a href=&#34;../../set-up/&#34;&gt;Set up Alloy&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;network-requirements&#34;&gt;Network requirements&lt;/h2&gt;
&lt;p&gt;Alloy requires network access for its HTTP server and for sending data to backends.&lt;/p&gt;
&lt;h3 id=&#34;http-server&#34;&gt;HTTP server&lt;/h3&gt;
&lt;p&gt;Alloy runs an HTTP server for its UI, API, and metrics endpoints.
By default, it listens on &lt;code&gt;127.0.0.1:12345&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;For more information, refer to &lt;a href=&#34;../../reference/http/&#34;&gt;HTTP endpoints&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;outbound-connectivity&#34;&gt;Outbound connectivity&lt;/h3&gt;
&lt;p&gt;Alloy needs outbound network access to send telemetry to your backends.
Ensure firewall rules and egress rules allow connections to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Remote write or OTLP endpoints for metrics, such as Mimir, Prometheus, or Thanos&lt;/li&gt;
&lt;li&gt;Log ingestion endpoints, such as Loki, Elasticsearch, or OTLP-compatible backends&lt;/li&gt;
&lt;li&gt;Trace ingestion endpoints, such as Tempo, Jaeger, or OTLP-compatible backends&lt;/li&gt;
&lt;li&gt;Profile ingestion endpoints, such as Pyroscope&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;cluster-communication&#34;&gt;Cluster communication&lt;/h3&gt;
&lt;p&gt;When you enable &lt;a href=&#34;../../get-started/clustering/&#34;&gt;clustering&lt;/a&gt;, Alloy nodes communicate over HTTP/2 using the same HTTP server port.
Each node must be reachable by other cluster members on the configured listen address.&lt;/p&gt;
&lt;h2 id=&#34;permissions-and-access&#34;&gt;Permissions and access&lt;/h2&gt;
&lt;p&gt;Some Alloy components interact closely with the host, container runtime, or Kubernetes APIs.
When that happens, Alloy needs enough access to complete the work.&lt;/p&gt;
&lt;p&gt;This requirement most often comes up when collecting:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Host-level metrics, logs, traces, or profiles&lt;/li&gt;
&lt;li&gt;Container or runtime information&lt;/li&gt;
&lt;li&gt;Data that lives outside the application sandbox&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Not every component can run in a fully locked-down environment.
When Alloy runs with restricted permissions, certain components might fail or behave unexpectedly.&lt;/p&gt;
&lt;p&gt;For information about running as a non-root user, refer to &lt;a href=&#34;../../configure/nonroot/&#34;&gt;Run as a non-root user&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;When you enable a component, check its documented requirements first.
Refer to the &lt;a href=&#34;../../reference/&#34;&gt;component reference&lt;/a&gt; for component-specific constraints and limitations.&lt;/p&gt;
&lt;h2 id=&#34;security&#34;&gt;Security&lt;/h2&gt;
&lt;p&gt;Alloy supports TLS for secure communication.
Configure TLS in component &lt;code&gt;tls&lt;/code&gt; blocks for backend connections, or use the &lt;a href=&#34;../../reference/cli/run/&#34;&gt;&lt;code&gt;--cluster.enable-tls&lt;/code&gt; flag&lt;/a&gt; for &lt;a href=&#34;../../get-started/clustering/&#34;&gt;clustered mode&lt;/a&gt;.
Authentication methods such as basic auth, OAuth2, and bearer tokens are configured per component.&lt;/p&gt;
&lt;h3 id=&#34;secrets-management&#34;&gt;Secrets management&lt;/h3&gt;
&lt;p&gt;Store sensitive values like API keys and passwords outside your configuration files.
Alloy supports environment variable references and integrations such as HashiCorp Vault, Kubernetes Secrets, AWS S3, and local files.&lt;/p&gt;
&lt;p&gt;Refer to the &lt;a href=&#34;../../reference/&#34;&gt;component documentation&lt;/a&gt; for specific options.&lt;/p&gt;
&lt;h2 id=&#34;deployment-patterns&#34;&gt;Deployment patterns&lt;/h2&gt;
&lt;p&gt;Alloy supports edge, gateway, and hybrid deployment patterns.
Refer to &lt;a href=&#34;../how-alloy-works/&#34;&gt;How Alloy works&lt;/a&gt; for guidance on choosing the right pattern for your architecture.&lt;/p&gt;
&lt;p&gt;For detailed setup instructions, refer to &lt;a href=&#34;../../set-up/deploy/&#34;&gt;Deploy Alloy&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;clustering-and-scaling-behavior&#34;&gt;Clustering and scaling behavior&lt;/h2&gt;
&lt;p&gt;Some Alloy behavior depends on how you deploy it, not just on configuration.&lt;/p&gt;
&lt;p&gt;Alloy supports &lt;a href=&#34;../../get-started/clustering/&#34;&gt;clustering&lt;/a&gt; to distribute work across multiple instances.
Clustering uses a gossip protocol and consistent hashing to distribute scrape targets automatically.&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;Target auto-distribution requires enabling clustering at both the instance level and the component level.
Refer to &lt;a href=&#34;../../get-started/clustering/&#34;&gt;Clustering&lt;/a&gt; for configuration details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;A few things that often surprise users:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;More Alloy instances means more meta-monitoring metrics.&lt;/li&gt;
&lt;li&gt;A switch between DaemonSet and centralized deployments can change observed series counts.&lt;/li&gt;
&lt;li&gt;Scaling clustered collectors changes how targets distribute, even when the target list stays the same.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For resource planning guidance, refer to &lt;a href=&#34;../../set-up/estimate-resource-usage/&#34;&gt;Estimate resource usage&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;data-durability&#34;&gt;Data durability&lt;/h2&gt;
&lt;p&gt;Alloy uses a Write-Ahead Log (WAL) for metrics to handle temporary backend outages.
The WAL buffers data locally and retries sending when the backend becomes available.&lt;/p&gt;
&lt;p&gt;For the WAL to persist across restarts, configure persistent storage using the &lt;a href=&#34;../../reference/cli/run/&#34;&gt;&lt;code&gt;--storage.path&lt;/code&gt; flag&lt;/a&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;Without persistent storage, Alloy loses buffered data on restart.
By default, Alloy stores data in a temporary directory.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;Push-based pipelines for logs, traces, and profiles have different durability characteristics.
Refer to &lt;a href=&#34;../../reference/&#34;&gt;component documentation&lt;/a&gt; for more information.&lt;/p&gt;
&lt;h2 id=&#34;monitor-alloy&#34;&gt;Monitor Alloy&lt;/h2&gt;
&lt;p&gt;Alloy exposes metrics about its own health and performance at the &lt;code&gt;/metrics&lt;/code&gt; endpoint.&lt;/p&gt;
&lt;p&gt;Key monitoring capabilities:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Internal metrics:&lt;/strong&gt; Controller and component metrics in Prometheus format&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Health endpoints:&lt;/strong&gt; &lt;code&gt;/-/ready&lt;/code&gt; and &lt;code&gt;/-/healthy&lt;/code&gt; for load balancer checks&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Debugging UI:&lt;/strong&gt; Visual component graph and live debugging at &lt;code&gt;/&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Refer to &lt;a href=&#34;../../collect/metamonitoring/&#34;&gt;Set up meta-monitoring&lt;/a&gt; for configuration examples.&lt;/p&gt;
&lt;h2 id=&#34;component-capabilities&#34;&gt;Component capabilities&lt;/h2&gt;
&lt;p&gt;Each Alloy component has its own capabilities and limits.
Before you rely on a component in production, check:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Which signal types it accepts and emits: metrics, logs, traces, and profiles&lt;/li&gt;
&lt;li&gt;Whether the component is stable or still evolving&lt;/li&gt;
&lt;li&gt;Whether it&amp;rsquo;s a native Alloy component or wraps upstream OpenTelemetry Collector functionality&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Refer to the &lt;a href=&#34;../../reference/&#34;&gt;component reference&lt;/a&gt; for this information.&lt;/p&gt;
&lt;h2 id=&#34;troubleshoot-issues&#34;&gt;Troubleshoot issues&lt;/h2&gt;
&lt;p&gt;If something doesn&amp;rsquo;t behave as expected after deployment:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Review &lt;a href=&#34;../../troubleshoot/debug/&#34;&gt;Troubleshooting and debugging&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Check the &lt;a href=&#34;../../reference/&#34;&gt;component documentation&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Revisit deployment patterns and clustering assumptions.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;next-steps&#34;&gt;Next steps&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../../set-up/&#34;&gt;Set up Alloy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../../get-started/clustering/&#34;&gt;Learn about clustering&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../../reference/&#34;&gt;Explore components&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="requirements-and-expectations">Requirements and expectations&lt;/h1>
&lt;p>Before you put Grafana Alloy into production, it helps to have a clear picture of where it runs well, how it&amp;rsquo;s usually deployed, and where people most often get surprised.&lt;/p></description></item></channel></rss>