Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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>" >}}

{{< 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
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 >}}

## Usage
Expand All @@ -43,26 +43,32 @@ OTLP exponential histograms if Alloy is ran with the `--stability.level=experime

## 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 @@ -77,7 +83,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`

{{< 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