Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Max Export Size for Metrics/Logs/Traces #2772

Open
tsloughter opened this issue Sep 5, 2022 · 3 comments
Open

Max Export Size for Metrics/Logs/Traces #2772

tsloughter opened this issue Sep 5, 2022 · 3 comments
Assignees
Labels
spec:protocol Related to the specification/protocol directory triaged-needmoreinfo The issue is triaged - the OTel community needs more information to decide

Comments

@tsloughter
Copy link
Member

What are you trying to achieve?

Reliable and consistent across languages exporting of metrics, logs and tracing over grpc.

I saw Python has added max_export_batch_size open-telemetry/opentelemetry-python#2809 to deal with the collector having a 4MB message size limit for grpc.

Since this is an issue across languages I thought it best to open an issue here, esp since a bit of googling and I see posts about increasing the size limit to 64MB (at last in Java), so I'm unsure what the expected limits going forward will be.

Before I would write up a PR I wanted to check how people thought it should be handled as well.

  • Should max_export_batch_size be added to the spec for metrics?
    -Should this be a function of the exporter or reader? As in, the batch processor for traces has a size limit (maxExportBatchSize`) instead of being in the exporter -- I know these sizes (batch queue and proto message) are different but it should be smaller once serialized and compressed.
    • Needed for logs as well?
  • Would be nice if the collector could tell the client what the size limit is?
  • Partial success from the collector doesn't work here because the collector will be dropping the entire message, right?
@tsloughter tsloughter added the spec:protocol Related to the specification/protocol directory label Sep 5, 2022
@rbailey7210 rbailey7210 added the triaged-accepted The issue is triaged and accepted by the OTel community, one can proceed with creating a PR proposal label Sep 9, 2022
@rbailey7210 rbailey7210 assigned reyang and unassigned tigrannajaryan Sep 9, 2022
@rbailey7210 rbailey7210 added triaged-needmoreinfo The issue is triaged - the OTel community needs more information to decide and removed triaged-accepted The issue is triaged and accepted by the OTel community, one can proceed with creating a PR proposal labels Sep 9, 2022
@reyang
Copy link
Member

reyang commented Sep 9, 2022

Couple more things we need to think about:

  1. What size limit do we need - transport layer (e.g. UDP MTU) or L7 (e.g. data before compression) or something else?
  2. Do we need this across all targets (e.g. OTLP, Zipkin, Jaeger, whatever vendor specific exporters)?
  3. What about other limits that are not directly tight to bytes (e.g. maximum number of points in a metric stream, maximum number of histogram buckets allowed in a single point, maximum number of attributes allowed, etc.)?

@AkselAllas
Copy link

AkselAllas commented Dec 21, 2023

I think increasing max export size makes sense at the metric exporter level.

@jmichalek132
Copy link

As discussed in this issue open-telemetry/opentelemetry-java#5394, the GRPC exporter can send bigger GRPC messages than what the limit is at the receiving end. In case you have control over the receiving end, the limit is something you could increase. But in case of sending directly to i.e. vendor you might not be able to.

So I think it would make sense to introduce an option that would limit the max size of grpc message and split the data into multiple messages in that case. Mentioning it here since this would require updating the spec.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
spec:protocol Related to the specification/protocol directory triaged-needmoreinfo The issue is triaged - the OTel community needs more information to decide
Projects
None yet
Development

No branches or pull requests

6 participants