Compatible components
This section provides an overview of some of the possible connections between compatible components in Alloy.
For each common data type, we provide a list of compatible components that can export or consume it.
Note
The type of export may not be the only requirement for chaining components together. The value of an attribute may matter as well as its type. Refer to each component’s documentation for more details on what values are acceptable.
For example:
- A Prometheus component may always expect an
"__address__"label inside a list of targets.- A
stringargument may only accept certain values like “traceID” or “spanID”.
Targets
Targets are a list(map(string)) - a list of maps with string values.
They can contain different key-value pairs, and you can use them with a wide range of components.
Some components require Targets to contain specific key-value pairs to work correctly.
It’s recommended to always check component references for details when working with Targets.
Targets Exporters
The following components, grouped by namespace, export Targets.
- discovery.azure
- discovery.consul
- discovery.consulagent
- discovery.digitalocean
- discovery.dns
- discovery.docker
- discovery.dockerswarm
- discovery.ec2
- discovery.eureka
- discovery.file
- discovery.gce
- discovery.hetzner
- discovery.http
- discovery.ionos
- discovery.kubelet
- discovery.kubernetes
- discovery.kuma
- discovery.lightsail
- discovery.linode
- discovery.marathon
- discovery.nerve
- discovery.nomad
- discovery.openstack
- discovery.ovhcloud
- discovery.process
- discovery.puppetdb
- discovery.relabel
- discovery.scaleway
- discovery.serverset
- discovery.triton
- discovery.uyuni
- prometheus.exporter.apache
- prometheus.exporter.azure
- prometheus.exporter.blackbox
- prometheus.exporter.cadvisor
- prometheus.exporter.catchpoint
- prometheus.exporter.cloudwatch
- prometheus.exporter.consul
- prometheus.exporter.dnsmasq
- prometheus.exporter.elasticsearch
- prometheus.exporter.gcp
- prometheus.exporter.github
- prometheus.exporter.kafka
- prometheus.exporter.memcached
- prometheus.exporter.mongodb
- prometheus.exporter.mssql
- prometheus.exporter.mysql
- prometheus.exporter.oracledb
- prometheus.exporter.postgres
- prometheus.exporter.process
- prometheus.exporter.redis
- prometheus.exporter.self
- prometheus.exporter.snmp
- prometheus.exporter.snowflake
- prometheus.exporter.squid
- prometheus.exporter.statsd
- prometheus.exporter.unix
- prometheus.exporter.windows
Targets Consumers
The following components, grouped by namespace, consume Targets.
Prometheus MetricsReceiver
The Prometheus metrics are sent between components using MetricsReceivers.
MetricsReceivers are capsules that are exported by components that can receive Prometheus metrics.
Components that can consume Prometheus metrics can be passed the MetricsReceiver as an argument.
Use the following components to build your Prometheus metrics pipeline:
Prometheus MetricsReceiver Exporters
The following components, grouped by namespace, export Prometheus MetricsReceiver.
Prometheus MetricsReceiver Consumers
The following components, grouped by namespace, consume Prometheus MetricsReceiver.
Loki LogsReceiver
LogsReceiver is a capsule that is exported by components that can receive Loki logs.
Components that consume LogsReceiver as an argument typically send logs to it.
Use the following components to build your Loki logs pipeline:
Loki LogsReceiver Exporters
The following components, grouped by namespace, export Loki LogsReceiver.
Loki LogsReceiver Consumers
The following components, grouped by namespace, consume Loki LogsReceiver.
- loki.enrich
- loki.process
- loki.relabel
- loki.secretfilter
- loki.source.api
- loki.source.awsfirehose
- loki.source.azure_event_hubs
- loki.source.cloudflare
- loki.source.docker
- loki.source.file
- loki.source.gcplog
- loki.source.gelf
- loki.source.heroku
- loki.source.journal
- loki.source.kafka
- loki.source.kubernetes
- loki.source.kubernetes_events
- loki.source.podlogs
- loki.source.syslog
- loki.source.windowsevent
OpenTelemetry otelcol.Consumer
The OpenTelemetry data is sent between components using otelcol.Consumers.
otelcol.Consumers are capsules that are exported by components that can receive OpenTelemetry data.
Components that can consume OpenTelemetry data can be passed the otelcol.Consumer as an argument.
Some components that use otelcol.Consumer only support a subset of telemetry signals, for example, only traces.
Refer to the component reference pages for more details on what is supported.
Use the following components to build your OpenTelemetry pipeline:
OpenTelemetry otelcol.Consumer Exporters
The following components, grouped by namespace, export OpenTelemetry otelcol.Consumer.
- otelcol.connector.host_info
- otelcol.connector.servicegraph
- otelcol.connector.spanlogs
- otelcol.connector.spanmetrics
- otelcol.exporter.awss3
- otelcol.exporter.datadog
- otelcol.exporter.debug
- otelcol.exporter.faro
- otelcol.exporter.googlecloud
- otelcol.exporter.kafka
- otelcol.exporter.loadbalancing
- otelcol.exporter.loki
- otelcol.exporter.otlp
- otelcol.exporter.otlphttp
- otelcol.exporter.prometheus
- otelcol.exporter.splunkhec
- otelcol.exporter.syslog
- otelcol.processor.attributes
- otelcol.processor.batch
- otelcol.processor.cumulativetodelta
- otelcol.processor.deltatocumulative
- otelcol.processor.discovery
- otelcol.processor.filter
- otelcol.processor.groupbyattrs
- otelcol.processor.interval
- otelcol.processor.k8sattributes
- otelcol.processor.memory_limiter
- otelcol.processor.probabilistic_sampler
- otelcol.processor.resourcedetection
- otelcol.processor.span
- otelcol.processor.tail_sampling
- otelcol.processor.transform
- otelcol.receiver.googlecloudpubsub
OpenTelemetry otelcol.Consumer Consumers
The following components, grouped by namespace, consume OpenTelemetry otelcol.Consumer.
- otelcol.connector.host_info
- otelcol.connector.servicegraph
- otelcol.connector.spanlogs
- otelcol.connector.spanmetrics
- otelcol.processor.attributes
- otelcol.processor.batch
- otelcol.processor.cumulativetodelta
- otelcol.processor.deltatocumulative
- otelcol.processor.discovery
- otelcol.processor.filter
- otelcol.processor.groupbyattrs
- otelcol.processor.interval
- otelcol.processor.k8sattributes
- otelcol.processor.memory_limiter
- otelcol.processor.probabilistic_sampler
- otelcol.processor.resourcedetection
- otelcol.processor.span
- otelcol.processor.tail_sampling
- otelcol.processor.transform
- otelcol.receiver.awscloudwatch
- otelcol.receiver.datadog
- otelcol.receiver.faro
- otelcol.receiver.file_stats
- otelcol.receiver.filelog
- otelcol.receiver.fluentforward
- otelcol.receiver.googlecloudpubsub
- otelcol.receiver.influxdb
- otelcol.receiver.jaeger
- otelcol.receiver.kafka
- otelcol.receiver.loki
- otelcol.receiver.opencensus
- otelcol.receiver.otlp
- otelcol.receiver.prometheus
- otelcol.receiver.solace
- otelcol.receiver.splunkhec
- otelcol.receiver.syslog
- otelcol.receiver.tcplog
- otelcol.receiver.vcenter
- otelcol.receiver.zipkin
Pyroscope ProfilesReceiver
The Pyroscope profiles are sent between components using ProfilesReceivers.
ProfilesReceivers are capsules that are exported by components that can receive Pyroscope profiles.
Components that can consume Pyroscope profiles can be passed the ProfilesReceiver as an argument.
Use the following components to build your Pyroscope profiles pipeline:
Pyroscope ProfilesReceiver Exporters
The following components, grouped by namespace, export Pyroscope ProfilesReceiver.
Pyroscope ProfilesReceiver Consumers
The following components, grouped by namespace, consume Pyroscope ProfilesReceiver.



