Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,14 @@ labels:
stage: experimental
products:
- oss
tags:
- text: Community
tooltip: This component is developed, maintained, and supported by the Alloy user community.
title: otelcol.receiver.awsecscontainermetrics
---

# `otelcol.receiver.awsecscontainermetrics`

{{< docs/shared lookup="stability/community.md" source="alloy" version="<ALLOY_VERSION>" >}}
{{< docs/shared lookup="stability/experimental.md" source="alloy" version="<ALLOY_VERSION>" >}}

Comment thread
clayton-cornell marked this conversation as resolved.
{{< docs/shared lookup="stability/experimental.md" source="alloy" version="<ALLOY_VERSION>" >}}

`otelcol.receiver.awsecscontainermetrics` reads AWS ECS task- and container-level metadata, and resource usage metrics such as CPU, memory, network, and disk, and forwards them to other `otelcol.*` components.
`otelcol.receiver.awsecscontainermetrics` reads AWS ECS task- and container-level metadata, and resource usage metrics such as CPU, memory, network, and disk, and forwards them to other `otelcol.*` components.

{{< admonition type="note" >}}
`otelcol.receiver.awsecscontainermetrics` is a wrapper over the upstream OpenTelemetry Collector [`awsecscontainermetrics`][] receiver.
Expand All @@ -26,7 +21,7 @@ Bug reports or feature requests will be redirected to the upstream repository, i
[`awsecscontainermetrics`]: https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/{{< param "OTEL_VERSION" >}}/receiver/awsecscontainermetricsreceiver
{{< /admonition >}}

This receiver supports ECS Fargate and ECS on EC2. It uses [ECS Task Metadata Endpoint V4](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-metadata-endpoint-v4.html) which is automatically available within the task's containers. Therefore, you should run the {{< param "PRODUCT_NAME" >}} collector using this receiver as a sidecar within the task you want to monitor. Refer to the upstream [`awsecscontainermetrics`][] receiver documentation for more details.
This receiver supports ECS Fargate and ECS on EC2. It uses [ECS Task Metadata Endpoint V4](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-metadata-endpoint-v4.html) which is automatically available within the task's containers. Therefore, you should run the {{< param "PRODUCT_NAME" >}} collector using this receiver as a sidecar within the task you want to monitor. Refer to the upstream [`awsecscontainermetrics`][] receiver documentation for more details.

You can specify multiple `otelcol.receiver.awsecscontainermetrics` components by giving them different labels.

Expand All @@ -46,16 +41,16 @@ otelcol.receiver.awsecscontainermetrics "<LABEL>" {

You can use the following arguments with `otelcol.receiver.awsecscontainermetrics`:

| Name | Type | Description | Default | Required |
|-----------------|----------------------------|--------------------------------------------------------------------------|---------|----------|
| `collection_interval` | `duration` | How frequently to collect and emit metrics. | "20s" | no |
| Name | Type | Description | Default | Required |
| --------------------- | ---------- | ------------------------------------------- | ------- | -------- |
| `collection_interval` | `duration` | How frequently to collect and emit metrics. | "20s" | no |

## Blocks

You can use the following blocks with `otelcol.receiver.awsecscontainermetrics`:

| Block | Description | Required |
|----------------------------------|----------------------------------------------------------------------------|----------|
| -------------------------------- | -------------------------------------------------------------------------- | -------- |
| [`output`][output] | Configures where to send received telemetry data. | yes |
| [`debug_metrics`][debug_metrics] | Configures the metrics that this component generates to monitor its state. | no |

Expand Down Expand Up @@ -86,7 +81,7 @@ You can use the following blocks with `otelcol.receiver.awsecscontainermetrics`:

## Example

The following example collects eight task-level metrics from the 52 metrics available in an ECS task and forwards them to a filter processor.
The following example collects eight task-level metrics from the 52 metrics available in an ECS task and forwards them to a filter processor.

```alloy
otelcol.receiver.awsecscontainermetrics "default" {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
canonical: https://grafana.com/docs/alloy/latest/reference/components/otelcol/otelcol.receiver.googlecloudpubsub/
description: Learn about otelcol.receiver.googlecloudpubsub
labels:
stage: experimental
products:
- oss
tags:
Expand Down Expand Up @@ -45,7 +44,7 @@ otelcol.receiver.googlecloudpubsub "<LABEL>" {
You can use the following arguments with `otelcol.receiver.googlecloudpubsub`:

| Name | Type | Description | Default | Required |
|-------------------------|------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------| -------- |
| ----------------------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | -------- |
| `subscription` | `string` | The subscription name to receive OTLP data from. The subscription name should be a fully qualified resource name, for example: `projects/otel-project/subscriptions/otlp`. | `""` | yes |
| `compression` | `string` | The compression used on data received from the subscription. Only `gzip` is supported. This is only used when no content-encoding attribute is present. | `""` | no |
| `encoding` | `string` | The encoding used to receive data from the subscription. This can either be `otlp_proto_trace`, `otlp_proto_metric`, `otlp_proto_log` or an encoding extension. This is only used when no media type attribute is present. | `""` | no |
Expand All @@ -62,7 +61,7 @@ You can use the following arguments with `otelcol.receiver.googlecloudpubsub`:
You can use the following blocks with `otelcol.receiver.googlecloudpubsub`:

| Block | Description | Required |
|----------------------------------|----------------------------------------------------------------------------|----------|
| -------------------------------- | -------------------------------------------------------------------------- | -------- |
| [`output`][output] | Configures where to send received telemetry data. | yes |
| [`debug_metrics`][debug_metrics] | Configures the metrics that this component generates to monitor its state. | no |

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,22 +4,22 @@ aliases:
- ../otelcol.receiver.prometheus/ # /docs/alloy/latest/reference/otelcol.receiver.prometheus/
description: Learn about otelcol.receiver.prometheus
labels:
stage: public-preview
stage: general-availability
Comment thread
clayton-cornell marked this conversation as resolved.
products:
- oss
title: otelcol.receiver.prometheus
---

# `otelcol.receiver.prometheus`

{{< docs/shared lookup="stability/public_preview.md" source="alloy" version="<ALLOY_VERSION>" >}}

`otelcol.receiver.prometheus` receives Prometheus metrics, converts them to the OpenTelemetry metrics format, and forwards them to other `otelcol.*` components.
This is a custom component built on a fork of the upstream OpenTelemetry Collector receiver.

You can specify multiple `otelcol.receiver.prometheus` components by giving them different labels.

{{< admonition type="note" >}}
`otelcol.receiver.prometheus` is a custom component built on a fork of the upstream OpenTelemetry receiver.
Support for translating Prometheus native histograms into OTLP exponential histograms is a public preview feature.
To enable native histogram translation, run {{< param "PRODUCT_NAME" >}} with the `--stability.level=public-preview` configuration flag.
{{< /admonition >}}

{{< admonition type="note" >}}
Expand Down Expand Up @@ -54,26 +54,32 @@ The `otelcol.receiver.prometheus` component doesn't support any arguments. You c

## Blocks

You can use the following block with `otelcol.receiver.prometheus`:
You can use the following blocks with `otelcol.receiver.prometheus`:

| Block | Description | Required |
|--------------------|---------------------------------------------------|----------|
| [`output`][output] | Configures where to send received telemetry data. | yes |
| Block | Description | Required |
| -------------------------------- | -------------------------------------------------------------------------- | -------- |
| [`output`][output] | Configures where to send received telemetry data. | yes |
| [`debug_metrics`][debug_metrics] | Configures the metrics that this component generates to monitor its state. | no |

[output]: #output
[debug_metrics]: #debug_metrics

### `output`

{{< badge text="Required" >}}

{{< docs/shared lookup="reference/components/output-block.md" source="alloy" version="<ALLOY_VERSION>" >}}

### `debug_metrics`

{{< docs/shared lookup="reference/components/otelcol-debug-metrics-block.md" source="alloy" version="<ALLOY_VERSION>" >}}

## Exported fields

The following fields are exported and can be referenced by other components:
This component exports the following fields that other components can reference:

| Name | Type | Description |
|------------|-------------------|----------------------------------------------------------------------|
| ---------- | ----------------- | -------------------------------------------------------------------- |
| `receiver` | `MetricsReceiver` | A value that other components can use to send Prometheus metrics to. |

## Component health
Expand All @@ -88,7 +94,7 @@ The following fields are exported and can be referenced by other components:

This example uses the `otelcol.receiver.prometheus` component as a bridge between the Prometheus and OpenTelemetry ecosystems.
The component exposes a receiver which the `prometheus.scrape` component uses to send Prometheus metric data to.
The metrics are converted to the OTLP format before they're forwarded to the `otelcol.exporter.otlp` component to be sent to an OTLP-capable endpoint:
The receiver converts the metrics to OTLP format and forwards them to the `otelcol.exporter.otlp` component, which sends them to an OTLP-capable endpoint:

```alloy
prometheus.scrape "default" {
Expand Down
35 changes: 15 additions & 20 deletions docs/sources/reference/components/pyroscope/pyroscope.enrich.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,11 @@ labels:
stage: experimental
products:
- oss
tags:
- text: Community
tooltip: This component is developed, maintained, and supported by the Alloy user community.
title: pyroscope.enrich
---

# `pyroscope.enrich`

Comment thread
clayton-cornell marked this conversation as resolved.
{{< docs/shared lookup="stability/community.md" source="alloy" version="<ALLOY_VERSION>" >}}

{{< docs/shared lookup="stability/experimental.md" source="alloy" version="<ALLOY_VERSION>" >}}

`pyroscope.enrich` enriches profiles with additional labels from service discovery targets.
Expand All @@ -34,13 +29,13 @@ pyroscope.enrich "<LABEL>" {

You can use the following arguments with `pyroscope.enrich`:

| Name | Type | Description | Default | Required |
| ---------------------- | ------------------------ | --------------------------------------------------------------------------------------------- | ------- | -------- |
| `forward_to` | `list(ProfilesReceiver)` | List of receivers to send enriched profiles to. | | yes |
| `target_match_label` | `string` | The label from discovered targets to match against. | | yes |
| `targets` | `list(Target)` | List of targets from a discovery component. | | yes |
| `labels_to_copy` | `list(string)` | List of labels to copy from discovered targets to profiles. If empty, all labels are copied. | | no |
| `profiles_match_label` | `string` | The label from incoming profiles to match against discovered targets. | | no |
| Name | Type | Description | Default | Required |
| ---------------------- | ------------------------ | -------------------------------------------------------------------------------------------- | ------- | -------- |
| `forward_to` | `list(ProfilesReceiver)` | List of receivers to send enriched profiles to. | | yes |
| `target_match_label` | `string` | The label from discovered targets to match against. | | yes |
| `targets` | `list(Target)` | List of targets from a discovery component. | | yes |
| `labels_to_copy` | `list(string)` | List of labels to copy from discovered targets to profiles. If empty, all labels are copied. | | no |
| `profiles_match_label` | `string` | The label from incoming profiles to match against discovered targets. | | no |

If `profiles_match_label` isn't provided, the component uses `target_match_label` for matching profile labels.

Expand All @@ -53,9 +48,9 @@ Configure this component with arguments.

The following fields are exported and can be referenced by other components:

| Name | Type | Description |
| ---------- | -------------------- | ----------------------------------- |
| `receiver` | `ProfilesReceiver` | The receiver for profiles. |
| Name | Type | Description |
| ---------- | ------------------ | -------------------------- |
| `receiver` | `ProfilesReceiver` | The receiver for profiles. |

## Component health

Expand All @@ -82,27 +77,27 @@ discovery.kubernetes "pods" {
// Add custom labels from Kubernetes metadata
discovery.relabel "pods" {
targets = discovery.kubernetes.pods.targets

rule {
source_labels = ["__meta_kubernetes_namespace"]
target_label = "namespace"
}

rule {
source_labels = ["__meta_kubernetes_pod_node_name"]
target_label = "node"
}

rule {
source_labels = ["__meta_kubernetes_pod_label_app"]
target_label = "app"
}

rule {
source_labels = ["__meta_kubernetes_pod_label_environment"]
target_label = "environment"
}

rule {
source_labels = ["__meta_kubernetes_pod_ip"]
target_label = "pod_ip"
Expand Down
2 changes: 2 additions & 0 deletions docs/sources/shared/stability/community.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,7 @@ headless: true
> **Community**: This component is developed, maintained, and supported by the Alloy user community.
> Grafana doesn't offer commercial support for this component.
> To enable and use community components, you must set the `--feature.community-components.enabled` [flag][] to `true`.
>
> Refer to [Community components](../../../../get-started/components/community-components/) for more information.

[flag]: https://grafana.com/docs/alloy/<ALLOY_VERSION>/reference/cli/run/
Loading