• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Logflare / logflare / de8a820cc27a4efe435cfc280b6f393966b36897 / 1
81%
main: 81%

Build:
DEFAULT BRANCH: main
Ran 27 Jul 2026 06:01PM UTC
Files 495
Run time 24s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

27 Jul 2026 05:48PM UTC coverage: 81.472% (+0.008%) from 81.464%
de8a820cc27a4efe435cfc280b6f393966b36897.1

push

github

web-flow
fix+perf: removes DateTime usage from BQ hot code path, unix ns handling (#3557)

* fix+perf: removes DateTime usage from BQ hot code path, and refines the schema determination for otel timestamp fields

* chore: PR comments

* fix: share one OTel timestamp predicate between BQ schema typing and value conversion (#3742)

* fix: share one OTel timestamp predicate between BQ schema typing and value conversion

The BigQuery path had two independent definitions of "start_time/end_time
is a timestamp": SchemaBuilder typed the column via TypeDetection.detect/1
while convert_to_seconds/1 converted values on field name + magnitude alone.
When they disagreed (e.g. a plain log with a nanosecond-range integer
start_time), a float value was ingested into an INTEGER-typed column.

Introduce TypeDetection.otel_timestamps?/1 as the single shared predicate
(detected :metric/:trace, or OTel-shaped resource+scope payloads) and use it
in both paths. le_to_bq_row/1 and log_event_to_df_struct/1 compute it on the
raw event body before ingest transformation, since map-wrapping breaks the
metadata.type fast path.

Also fixes the convert_to_seconds/2 microsecond clause writing the timestamp
value into the field under conversion, and restores the resource+scope
behavior asserted by schema_builder_test (failing on CI).


* fix: detect otel_timestamps once at ingest and store on LogEvent

Avoids re-running OTel detection in the BQ hot path: LogEvent.make/3 and
make_from_spool/2 compute the flag once (reusing the already-detected
event_type) and le_to_bq_row/1 / log_event_to_df_struct/1 read it off the
struct. Also use :math.pow for the second-conversion divisors.


* fix: narrow otel_timestamps to the metric/trace signal and condense conversion

Drops the resource+scope shape heuristic - otel_timestamps?/1 now accepts raw
params or a precomputed event type and only honors detected :metric/:trace.
OTel test payloads carry metadata.type, matching what the OTEL processors set.
Cond... (continued)

13631 of 16731 relevant lines covered (81.47%)

11948.6 hits per line

Source Files on job de8a820cc27a4efe435cfc280b6f393966b36897.1
  • Tree
  • List 495
  • Changed 12
  • Source Changed 0
  • Coverage Changed 12
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 0
  • de8a820c on github
  • Prev Job for on main (#6163f93b6c076a7bc18f083734bff25ad6c042dd.1)
  • Next Job for on main (#b353c287ad82729c43ce269d595aef5f64a4e237.1)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc