Skip to content

in_zipkin: add Zipkin v2 trace receiver - #12348

Draft
edsiper wants to merge 2 commits into
masterfrom
in_zipkin-receiver
Draft

in_zipkin: add Zipkin v2 trace receiver#12348
edsiper wants to merge 2 commits into
masterfrom
in_zipkin-receiver

Conversation

@edsiper

@edsiper edsiper commented Aug 29, 2026

Copy link
Copy Markdown
Member

Summary

Add a native Zipkin v2 JSON trace receiver backed by CTrace. The input listens on port 9411 by default, accepts POST /api/v2/spans, translates Zipkin spans into native traces, supports TLS and generic HTTP server workers, and implements checked pause/resume behavior.

The decoder validates identifiers, timestamps, durations, endpoints, tags, annotations, kinds, and status fields. Invalid batches are rejected atomically. The optional parse_string_tags setting converts compatible string values to booleans, integers, or doubles.

Compatibility

  • Supports Zipkin v2 JSON.
  • Zipkin v1 and protobuf payloads are not accepted.
  • Supports single-listener and multi-worker ingress paths.
  • No bundled library changes or new external dependencies.

Testing

  • Example configuration file for the change
  • Debug log output from testing the change
  • Strict Valgrind completed with no leaks or memory corruption

Verification commands:

cmake -S . -B build -DFLB_TESTS_RUNTIME=On -DFLB_TESTS_INTERNAL=On
cmake --build build -j8
tests/integration/.venv/bin/python -m pytest tests/integration/scenarios/in_zipkin/tests/test_in_zipkin.py -q
VALGRIND=1 VALGRIND_STRICT=1 tests/integration/.venv/bin/python -m pytest tests/integration/scenarios/in_zipkin/tests/test_in_zipkin.py -q

Both integration runs passed all 16 cases. The strict Valgrind run reported no leaks or memory errors.

Packaging changes are not part of this pull request.

  • Run local packaging test: [N/A]
  • Set ok-package-test label: [N/A]

Documentation

  • Documentation required for this feature

A follow-up fluent-bit-docs change is required for the new input configuration reference.

Backporting

  • Backport to latest stable release: [N/A]

Fluent Bit is licensed under Apache 2.0, by submitting this pull request I understand that this code will be released under the terms of that license.

Signed-off-by: Eduardo Silva <eduardo@chronosphere.io>
Signed-off-by: Eduardo Silva <eduardo@chronosphere.io>
@coderabbitai

coderabbitai Bot commented Aug 29, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant