Menu

This is documentation for the next version of Alloy. For the latest stable release, go to the latest version.

Documentationbreadcrumb arrow Grafana Alloybreadcrumb arrow Referencebreadcrumb arrow Componentsbreadcrumb arrow otelcolbreadcrumb arrow otelcol.receiver.awscloudwatch
Experimental

otelcol.receiver.awscloudwatch

EXPERIMENTAL: This is an experimental component. Experimental components are subject to frequent breaking changes, and may be removed with no equivalent replacement. The stability.level flag must be set to experimental to use the component.

otelcol.receiver.awscloudwatch receives logs from AWS CloudWatch and forwards them to other otelcol.* components.

Note

otelcol.receiver.awscloudwatch is a wrapper over the upstream OpenTelemetry Collector awscloudwatch receiver. Bug reports or feature requests will be redirected to the upstream repository, if necessary.

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

Usage

alloy
otelcol.receiver.awscloudwatch "<LABEL>" {
  region = "us-west-2"

  output {
    logs = [...]
  }
}

Arguments

You can use the following arguments with otelcol.receiver.awscloudwatch:

NameTypeDescriptionDefaultRequired
regionstringAWS region to collect logs from.yes
imds_endpointstringCustom EC2 IMDS endpoint to use.no
profilestringAWS credentials profile to use.no

If imds_endpoint is not specified, and the environment variable AWS_EC2_METADATA_SERVICE_ENDPOINT has a value, it will be used as the IMDS endpoint.

Blocks

You can use the following blocks with otelcol.receiver.awscloudwatch:

BlockDescriptionRequired
outputConfigures where to send received telemetry data.yes
debug_metricsConfigures the metrics that this component generates to monitor its state.no
logsConfigures the log collection settings.no

logs

The logs block configures how logs are collected from CloudWatch.

The following arguments are supported:

NameTypeDescriptionDefaultRequired
max_events_per_requestintMaximum number of events to process per request to Cloudwatch.1000no
poll_intervaldurationHow frequently to poll for new log entries."1m"no

The logs block supports the following blocks:

BlockDescriptionRequired
groupsConfigures which log groups to collect from.no

logs > groups

The groups block supports the following blocks:

BlockDescriptionRequired
autodiscoverConfigures automatic discovery of log groups.no
namedConfigures specific log groups to collect from.no

The blocks autodiscover or named are mutually exclusive.

logs > groups > autodiscover

The autodiscover block configures automatic discovery of log groups.

The following arguments are supported:

NameTypeDescriptionDefaultRequired
limitintMaximum number of log groups to discover.50no
prefixstringPrefix to filter log groups by.no

The autodiscover block supports the following blocks:

BlockDescriptionRequired
streamsConfigures log streams filtering.no

logs > groups > autodiscover > streams

The streams block configures filtering of log streams for the autodiscovered log groups.

The following arguments are supported:

NameTypeDescriptionDefaultRequired
names[]stringList of exact stream names to collect.no
prefixes[]stringList of prefixes to filter streams by.no

logs > groups > named

The named block explicitly configures specific log groups to collect from. Multiple named blocks can be specified.

The following arguments are supported:

NameTypeDescriptionRequired
group_namestringName of the CloudWatch log group.yes
names[]stringList of exact stream names to collect.no
prefixes[]stringList of prefixes to filter streams by.no

debug_metrics

The debug_metrics block configures the metrics that this component generates to monitor its state.

The following arguments are supported:

NameTypeDescriptionDefaultRequired
disable_high_cardinality_metricsbooleanWhether to disable certain high cardinality metrics.trueno
levelstringControls the level of detail for metrics emitted by the wrapped collector."detailed"no

disable_high_cardinality_metrics is the Grafana Alloy equivalent to the telemetry.disableHighCardinalityMetrics feature gate in the OpenTelemetry Collector. It removes attributes that could cause high cardinality metrics. For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.

Note

If configured, disable_high_cardinality_metrics only applies to otelcol.exporter.* and otelcol.receiver.* components.

level is the Alloy equivalent to the telemetry.metrics.level feature gate in the OpenTelemetry Collector. Possible values are "none", "basic", "normal" and "detailed".

output

Required

The output block configures a set of components to forward resulting telemetry data to.

The following arguments are supported:

NameTypeDescriptionDefaultRequired
logslist(otelcol.Consumer)List of consumers to send logs to.[]no
metricslist(otelcol.Consumer)List of consumers to send metrics to.[]no
traceslist(otelcol.Consumer)List of consumers to send traces to.[]no

You must specify the output block, but all its arguments are optional. By default, telemetry data is dropped. Configure the metrics, logs, and traces arguments accordingly to send telemetry data to other components.

Exported fields

otelcol.receiver.awscloudwatch doesn’t export any fields.

Component health

otelcol.receiver.awscloudwatch is only reported as unhealthy if given an invalid configuration.

Debug information

otelcol.receiver.awscloudwatch doesn’t expose any component-specific debug information.

Example

The following example collects logs from specific EKS cluster log groups and forwards them through a batch processor:

alloy
otelcol.receiver.awscloudwatch "default" {
  region = "us-west-2"

  logs {
    poll_interval = "3m"
    max_events_per_request = 5000

    groups {
      named {
        group_name = "/aws/eks/dev-cluster/cluster"
        names = ["api-gateway"]
      }
      named {
        group_name = "/aws/eks/prod-cluster/cluster"
        prefixes = ["app-", "service-"]
      }
    }
  }

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

otelcol.processor.batch "default" {
  output {
    logs = [otelcol.exporter.otlp.default.input]
  }
}

otelcol.exporter.otlp "default" {
  client {
    endpoint = env("<OTLP_ENDPOINT>")
  }
}

Compatible components

otelcol.receiver.awscloudwatch can accept arguments from the following components:

Note

Connecting some components may not be sensible or components may require further configuration to make the connection work correctly. Refer to the linked documentation for more details.