Splunk HEC exporter in OpenTelemetry drops timestamp precision to 3 digits
search cancel

Splunk HEC exporter in OpenTelemetry drops timestamp precision to 3 digits

book

Article ID: 436145

calendar_today

Updated On:

Products

VMware Tanzu Platform - Cloud Foundry

Issue/Introduction

If you use the Splunk HEC exporter in OpenTelemetry in TAS; you drop to only 3 digits of timestamp precision because the Splunk exporter casts the time_unix_nano to float64.

Cause

Splunk HEC supports up to nanosecond precision in the time field of event payloads. However, the nanoTimestampToEpochMilliseconds function is rounding timestamps to milliseconds using .Round(time.Millisecond), and timestampToSecondsWithMillisecondPrecision is using math.Round(float64(ts)/1e6) / 1e3 for metrics — both silently discarding sub-millisecond precision from the original signal.

An example of this can be seen in the image below:

You can find more detailed information about this issue here:

Improve timestamp precision in HEC events: https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47175

Fix timestamp precision in Splunk HEC exporter: https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/47195

Resolution

This is a known issue and fix will be included in future releases. Please review release notes periodically for updates.