Skip to content

Conversation

@solnic
Copy link
Collaborator

@solnic solnic commented Feb 9, 2026

⚠️ Proposed plan for 12.0.0 release

  1. Structured logging included using Telemetry Processor by default
  2. Remaining categories (:errors, :check_ins, :transactions) can be enabled for Telemetry Processor using a new option called telemetry_processor_categories - I'll add those in separate PRs
  3. At some point original sender gets deprecated
  4. In 13.0.0 we replace sender with telemetry processor

Summary

Introduce the TelemetryProcessor — an OTP Supervisor that buffers, batches, and ships log events to Sentry asynchronously, implementing the Backend Telemetry Processor spec.

This is step 1 and currently only the :log category is routed through it. Errors, transactions, and check-ins continue using existing transport paths.

Architecture

  • Buffer — Fixed-capacity FIFO queue (1000 items), drops oldest on overflow
  • Scheduler — Signal-based drain coordination with weighted round-robin priority and integrated bounded transport queue (1000 items), sequential HTTP sends via spawn_monitor
  • TelemetryProcessor — Supervisor owning Buffer + Scheduler, exposes add/2 and flush/0

Data flow

flowchart TD
    L["Logger"] --> LB["LogsBackend"]
    LB --> TP["TelemetryProcessor.add/2"]
    TP -->|cast| B["Buffer (1000 items)"]
    TP -->|cast| S["Scheduler"]
    S -->|poll| B
    B -->|batch| S
    S -->|spawn_monitor| HTTP["HTTP POST to Sentry"]
Loading

@solnic solnic force-pushed the solnic/telemetry-processor-logs branch 10 times, most recently from 0b4004a to 897eb10 Compare February 12, 2026 10:08
@solnic solnic force-pushed the solnic/telemetry-processor-logs branch from 897eb10 to 1fb8bc7 Compare February 12, 2026 10:20
@solnic solnic changed the title WIP: introduce TelemetryProcessor for Logs Introduce Telemetry Processor Feb 12, 2026
@solnic solnic marked this pull request as ready for review February 12, 2026 11:35
@dingsdax dingsdax requested a review from giortzisg February 12, 2026 12:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant