Skip to content

[awsfirehose] Bug receiving Cloudwatch logs #38433

Closed
@shivanshs9

Description

@shivanshs9

Component(s)

receiver/awsfirehose

What happened?

Description

I have couple of Cloudwatch log groups that I'm trying to stream to Open Telemetry using Firehose. However it's unable to process the event sometimes and logs the error.
Some logs are successfully being processed and some are facing this issue.

Steps to Reproduce

Use Firehose receiver to receive cloudwatch logs stream as per the AWS doc: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/SubscriptionFilters.html#FirehoseExample

Expected Result

Logs to be processed successfully by the receiver.

Actual Result

Receiving following error in the firehose receiver plugin.

Collector version

0.120.0

Environment information

Environment

OS: (e.g., "Ubuntu 20.04")
Compiler(if manually compiled): (e.g., "go 14.2")

OpenTelemetry Collector configuration

receivers:
  awsfirehose/cwlogs:
    endpoint: 0.0.0.0:4343
    record_type: cwlogs
exporters:
  otlp:
    endpoint: ${env:OTEL_EXPORTER_OTLP_ENDPOINT}
    headers:
      signoz-access-token: ${env:SIGNOZ_API_KEY}
    tls:
      insecure: ${env:OTEL_EXPORTER_OTLP_INSECURE}
      insecure_skip_verify: ${env:OTEL_EXPORTER_OTLP_INSECURE_SKIP_VERIFY}
  batch:
    send_batch_size: 10000
    timeout: 10s
  memory_limiter:
    check_interval: 1s
    limit_percentage: 75
    spike_limit_percentage: 15
  resource/deployenv:
    attributes:
      - action: insert
        key: deployment.environment
        value: ${env:DEPLOYMENT_ENVIRONMENT}
  resourcedetection:
    detectors:
      - env
    override: false
    timeout: 2s
extensions:
  health_check:
    endpoint: 0.0.0.0:13133
service:
  extensions:
    - health_check
  telemetry:
    metrics:
      address: 0.0.0.0:8888
  pipelines:
    logs/cwstream:
      exporters:
        - otlp
      processors:
        - resource/deployenv
        - resourcedetection
        - memory_limiter
        - batch
      receivers:
        - awsfirehose/cwlogs

Log output

2025-03-06T15:40:56.198Z	error	cwlog/unmarshaler.go:85	Invalid log	{"otelcol.component.id": "awsfirehose/cwlogs", "otelcol.component.kind": "Receiver", "otelcol.signal": "logs", "datum_index": 0}
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsfirehosereceiver/internal/unmarshaler/cwlog.(*Unmarshaler).UnmarshalLogs
	github.com/open-telemetry/opentelemetry-collector-contrib/receiver/[email protected]/internal/unmarshaler/cwlog/unmarshaler.go:85
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsfirehosereceiver.(*logsConsumer).Consume
	github.com/open-telemetry/opentelemetry-collector-contrib/receiver/[email protected]/logs_receiver.go:72
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsfirehosereceiver.(*firehoseReceiver).ServeHTTP
	github.com/open-telemetry/opentelemetry-collector-contrib/receiver/[email protected]/receiver.go:222
go.opentelemetry.io/collector/config/confighttp.(*decompressor).ServeHTTP
	go.opentelemetry.io/collector/config/[email protected]/compression.go:183
go.opentelemetry.io/collector/config/confighttp.(*ServerConfig).ToServer.maxRequestBodySizeInterceptor.func2
	go.opentelemetry.io/collector/config/[email protected]/confighttp.go:578
net/http.HandlerFunc.ServeHTTP
	net/http/server.go:2294
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp.(*middleware).serveHTTP
	go.opentelemetry.io/contrib/instrumentation/net/http/[email protected]/handler.go:179
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp.NewMiddleware.func1.1
	go.opentelemetry.io/contrib/instrumentation/net/http/[email protected]/handler.go:67
net/http.HandlerFunc.ServeHTTP
	net/http/server.go:2294
go.opentelemetry.io/collector/config/confighttp.(*clientInfoHandler).ServeHTTP
	go.opentelemetry.io/collector/config/[email protected]/clientinfohandler.go:26
net/http.serverHandler.ServeHTTP
	net/http/server.go:3301
net/http.(*conn).serve
	net/http/server.go:2102
2025-03-06T15:40:56.198Z	error	[email protected]/receiver.go:224	Unable to consume records	{"otelcol.component.id": "awsfirehose/cwlogs", "otelcol.component.kind": "Receiver", "otelcol.signal": "logs", "error": "record format invalid"}
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsfirehosereceiver.(*firehoseReceiver).ServeHTTP
	github.com/open-telemetry/opentelemetry-collector-contrib/receiver/[email protected]/receiver.go:224
go.opentelemetry.io/collector/config/confighttp.(*decompressor).ServeHTTP
	go.opentelemetry.io/collector/config/[email protected]/compression.go:183
go.opentelemetry.io/collector/config/confighttp.(*ServerConfig).ToServer.maxRequestBodySizeInterceptor.func2
	go.opentelemetry.io/collector/config/[email protected]/confighttp.go:578
net/http.HandlerFunc.ServeHTTP
	net/http/server.go:2294
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp.(*middleware).serveHTTP
	go.opentelemetry.io/contrib/instrumentation/net/http/[email protected]/handler.go:179
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp.NewMiddleware.func1.1
	go.opentelemetry.io/contrib/instrumentation/net/http/[email protected]/handler.go:67
net/http.HandlerFunc.ServeHTTP
	net/http/server.go:2294
go.opentelemetry.io/collector/config/confighttp.(*clientInfoHandler).ServeHTTP
	go.opentelemetry.io/collector/config/[email protected]/clientinfohandler.go:26
net/http.serverHandler.ServeHTTP
	net/http/server.go:3301
net/http.(*conn).serve
	net/http/server.go:2102
2025-03-06T15:54:41.410Z	error	cwlog/unmarshaler.go:52	Expected *gzip.Reader, got *gzip.Reader	{"otelcol.component.id": "awsfirehose/cwlogs", "otelcol.component.kind": "Receiver", "otelcol.signal": "logs"}
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsfirehosereceiver/internal/unmarshaler/cwlog.(*Unmarshaler).UnmarshalLogs
	github.com/open-telemetry/opentelemetry-collector-contrib/receiver/[email protected]/internal/unmarshaler/cwlog/unmarshaler.go:52
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsfirehosereceiver.(*logsConsumer).Consume
	github.com/open-telemetry/opentelemetry-collector-contrib/receiver/[email protected]/logs_receiver.go:72
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsfirehosereceiver.(*firehoseReceiver).ServeHTTP
	github.com/open-telemetry/opentelemetry-collector-contrib/receiver/[email protected]/receiver.go:222
go.opentelemetry.io/collector/config/confighttp.(*decompressor).ServeHTTP
	go.opentelemetry.io/collector/config/[email protected]/compression.go:183
go.opentelemetry.io/collector/config/confighttp.(*ServerConfig).ToServer.maxRequestBodySizeInterceptor.func2
	go.opentelemetry.io/collector/config/[email protected]/confighttp.go:578
net/http.HandlerFunc.ServeHTTP
	net/http/server.go:2294
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp.(*middleware).serveHTTP
	go.opentelemetry.io/contrib/instrumentation/net/http/[email protected]/handler.go:179
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp.NewMiddleware.func1.1
	go.opentelemetry.io/contrib/instrumentation/net/http/[email protected]/handler.go:67
net/http.HandlerFunc.ServeHTTP
	net/http/server.go:2294
go.opentelemetry.io/collector/config/confighttp.(*clientInfoHandler).ServeHTTP
	go.opentelemetry.io/collector/config/[email protected]/clientinfohandler.go:26
net/http.serverHandler.ServeHTTP
	net/http/server.go:3301
net/http.(*conn).serve
	net/http/server.go:2102

Additional context

No response

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions