otelcol.receiver.awss3
EXPERIMENTAL: This is an experimental component. Experimental components are subject to frequent breaking changes, and may be removed with no equivalent replacement. To enable and use an experimental component, you must set the
stability.levelflag toexperimental.
otelcol.receiver.awss3 receives traces previously stored in S3 by the AWS S3 Exporter.
Warning
otelcol.receiver.awss3is a wrapper over the upstream OpenTelemetry Collectorawss3receiver. Bug reports or feature requests will be redirected to the upstream repository, if necessary.
The receiver has two modes of operation:
- Time Range Mode - Specify start and end to fetch data from a specific time range.
- SQS Message Mode - Subscribe to SQS messages to process new objects as they arrive.
The receiver supports following encodings:
- otlp_json (OpenTelemetry Protocol format represented as json) with a suffix of
.json - otlp_proto (OpenTelemetry Protocol format represented as Protocol Buffers) with a suffix of
.binpb
Note
Currently,
otelcol.receiver.awss3receiver doesn’t support encoding extensions.
You can specify multiple otelcol.receiver.awss3 components by giving them different labels.
Usage
otelcol.receiver.awss3 "<LABEL>" {
start_time = "..."
end_time = "..."
s3downloader {
s3_bucket = "..."
s3_prefix = "..."
}
output {
logs = [...]
metrics = [...]
trace = [...]
}
}Arguments
You can use the following arguments with otelcol.receiver.awss3:
The start_time and end_time fields time format is either RFC3339, YYYY-MM-DD HH:MM or simply YYYY-MM-DD, in which case the time is assumed to be 00:00.
Note
Time-based configuration (
start_timeandend_timearguments) cannot be combined together withsqsblock.
Refer to the upstream receiver documentation for more details.
Blocks
You can use the following blocks with otelcol.receiver.awss3:
s3downloader
RequiredThe s3downloader block contains AWS S3 downloader related config to control things like bucket, prefix, batching, connections, retries, etc.
The following arguments are supported:
sqs
The sqs block holds SQS queue configuration for receiving object change notifications.
The following arguments are supported:
Note
You must configure your S3 bucket to send event notifications to the SQS queue. Time-based configuration (
start_time/end_time) and SQS configuration cannot be used together.
output
RequiredThe output block configures a set of components to forward resulting telemetry data to.
The following arguments are supported:
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.awss3 doesn’t export any fields.
Component health
otelcol.receiver.awss3 is only reported as unhealthy if given an invalid configuration.
Debug information
otelcol.receiver.awss3 doesn’t expose any component-specific debug information.
Example
This example forwards received traces through a batch processor before finally sending it to an OTLP-capable endpoint:
// Time range mode:
otelcol.receiver.awss3 "default" {
start_time = "2024-01-01 01:00"
end_time = "2024-01-02"
s3downloader {
region = "us-west-1"
s3_bucket = "mybucket"
s3_prefix = "trace"
s3_partition = "minute"
}
output {
traces = [otelcol.processor.batch.default.input]
}
}
// SQS message mode:
otelcol.receiver.awss3 "sqs_traces" {
s3downloader {
region = "us-east-1"
s3_bucket = "mybucket"
s3_prefix = "mytrace"
}
sqs {
queue_url = "https://sqs.us-east-1.amazonaws.com/123456789012/test-queue"
region = "us-east-1"
}
output {
traces = [otelcol.processor.batch.default.input]
}
}
otelcol.processor.batch "default" {
output {
metrics = [otelcol.exporter.otlp.default.input]
logs = [otelcol.exporter.otlp.default.input]
traces = [otelcol.exporter.otlp.default.input]
}
}
otelcol.exporter.otlp "default" {
client {
endpoint = sys.env("<OTLP_ENDPOINT>")
}
}Compatible components
otelcol.receiver.awss3 can accept arguments from the following components:
- Components that export OpenTelemetry
otelcol.Consumer
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.