-
Notifications
You must be signed in to change notification settings - Fork 151
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
splunk_hec exporter sending events larger than default HEC maxEventSize #696
Comments
@matthewmodestino this scenario is reproducible if the length of one log message is > than splunk's limit. Example to clear this out: LogA Current implementation will group {LogA, LogB} and {LogC, LogD} but it's can't break down LogA into multiple batches |
Ah Ok! I will test this locally, so it does seem to be the default splunk-otel-collector-chart/examples/only-logs-otel/rendered_manifests/configmap-agent.yaml Lines 162 to 168 in 3471875
splunk-otel-collector-chart/examples/only-logs-otel/rendered_manifests/configmap-agent.yaml Lines 175 to 181 in 3471875
splunk-otel-collector-chart/examples/only-logs-otel/rendered_manifests/configmap-agent.yaml Lines 187 to 193 in 3471875
I am curious as to why the hec exporter |
I have successfully replicated this issue by enabling compression on the exporter and generating sample events over 5MB. When compression is disabled, the exporter does not allow the batches to be sent due to the
However when compression is enabled, we no longer it the max content length and the events are sent to splunk where they are rejected:
This will likely result in us needing some logic to either, truncate events in the processing pipeline, or to extract what the users are interested in, then dump the rest of the payload. Will work with some customers to see what the events are and whether they are even necessary. |
@matthewmodestino is |
So here's a thing. Uncompressed size: 7MB, above Splunk limit I think the setting Script:
|
Yes Splunk will receive, decompress then parse/index. It will be based on the raw event size in the batch. post decompress. One thing i noticed is otel has a truncate processor function. One thing we could do is truncate events at the max_content_length. That way we at least send most of the event to splunk instead of dropping it on otel side. |
well, for the splunk-hec-exporter side, we can't do much.
|
We can ask client to set |
Simply removing compression is not an acceptable resolution. I am working with some high volume customers that rely on the compression to reduce the impact on the network. We will need to put logic either in the batch or otherwise to protect against 5MB+ payloads. On prem users can up the limit on their HFs to workaround, but customer sending directly to cloud generally can't. |
I understand, we can ask them to increase maxEventSize limit. |
We can do that on-prem but not in cloud. We will need to find a resolution to this in the collector logic. |
@matthewmodestino, what I'm thinking: |
@atoulme can we close this one? |
Closing. Thanks! |
Hey Team,
In working with multiple cloud customers, I am seeing the OTel collector frequently encountering
400 Bad Request
exporter error:When checking on the Splunk side we can see this due to an event in the batch exceeding default event limit of 5MB
inputs.conf.spec
https://docs.splunk.com/Documentation/SplunkCloud/latest/Data/TroubleshootHTTPEventCollector
The HEC exporter is supposed to have a limit of 2MiB by default, so wondering if we have an edge case where the limit is not respected? My intial hunch is it may be possibly due to our default recombine operator, as k8s container engines would be splitting anything over 8192 in containerd or 16384 in Docker....
Customers will file tickets internally, please have a look and advise.
The text was updated successfully, but these errors were encountered: