Skip to content

GRPC Exporter sends messages bigger than gRPC protocol allows #5394

Description

@kaplin

Describe the bug
I started getting the following error from OkHttpGrpcExporter in my logs:

Failed to export metrics. The request could not be executed. Full error message: stream was reset: NO_ERROR

Turned out, this happens because the exporter sends messages too big (default limit is 4mb). This is what I see on receiving side:

Header: grpc-message: grpc: received message larger than max (6117815 vs. 4194304)
    Name Length: 12
    Name: grpc-message
    Value Length: 60
    Value: grpc: received message larger than max (6117815 vs. 4194304)
    [Unescaped: grpc: received message larger than max (6117815 vs. 4194304)]
    Representation: Literal Header Field with Incremental Indexing - New Name

Steps to reproduce
I suppose I'm just sending a large number of metrics.

However, it might be reproducible by increasing the publishing interval (io.opentelemetry.sdk.metrics.export.PeriodicMetricReaderBuilder#setInterval(java.time.Duration)).
This will make the meter accumulate more data before sending.

What did you expect to see?

  1. I would expect the exporter to respect 4mb gRPC message limit and send more than one message in this case
  2. I would like to have a clearer error message about it. In this particular case, it would be useful to print response details (including headers)

What did you see instead?
The error message mentioned above, and it was not particularly helpful.

What version and what artifacts are you using?

io.opentelemetry:opentelemetry-api:1.18.0
io.opentelemetry:opentelemetry-context:1.18.0
io.opentelemetry:opentelemetry-exporter-common:1.18.0
io.opentelemetry:opentelemetry-exporter-otlp:1.18.0
io.opentelemetry:opentelemetry-exporter-otlp-common:1.18.0
io.opentelemetry:opentelemetry-sdk:1.18.0
io.opentelemetry:opentelemetry-sdk-common:1.18.0
io.opentelemetry:opentelemetry-sdk-logs:1.18.0-alpha
io.opentelemetry:opentelemetry-sdk-metrics:1.18.0
io.opentelemetry:opentelemetry-sdk-trace:1.18.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions