feat(opentelemetry sink): add gRPC transport support#24972
feat(opentelemetry sink): add gRPC transport support#24972thomasqueirozb wants to merge 69 commits into
Conversation
8891353 to
6526e41
Compare
This comment has been minimized.
This comment has been minimized.
…and GrpcCompression type
…equests to prevent retry duplicates
…rd health protocol
|
thanks for the PR! i've created an editorial review card, and someone on the docs team will take a look soon: https://datadoghq.atlassian.net/browse/DOCS-13836 |
…strict input type, reject template URIs for gRPC
…vent! macros with named functions
… eliminate hot-path expect() calls
…s — no external consumers
…ed_bytes, drop dead encoded_len wrapper
…s warnings for all signal types
… inline signal detection into encode_event
… remove duplicate implementations
…s to exercise the full config path
…te-size runtime behavior" This reverts commit dd97e14.
…ch settings with byte-size flush
…t is primary flush trigger
…e partial-success failures
… URIs with path prefixes
…scheme prefix at startup
…mixed http/https URIs
…s-vector features
|
Hi! Thank you for the great work on supporting the gRPC transport for the OpenTelemetry sink. I decided to try using the gRPC sink in my setup. After making a few adjustments, everything worked out — now I’m using this new transport to send logs in my env. That’s why I want to help with the current PR and am attaching my modifications as a PR to this branch. |
@sakateka thanks! @thomasqueirozb can you review and pull fixes into this PR? Let's drive this to completion. |
OliviaShoup
left a comment
There was a problem hiding this comment.
Thanks for this! Nice cleanup. The flattened protocol config reads much more clearly, and it's applied consistently across both highlight examples and the opentelemetry.cue reference 💃
A couple of small docs notes:
- Version caveat on Example 2 — Example 1 has the helpful note that the config requires Vector
>= 0.51, but Example 2 uses the same new flattened syntax without it. Could we add the same caveat there so folks on older versions aren't tripped up? - Minor typo (pre-existing, in case you want to grab it while you're here) — in the Summary, "This now possible by using the
use_otlp_decodingoption." is missing a verb: "This is now possible...". Totally optional, since it's outside the scope of your change
Otherwise this looks good from a docs perspective. Thanks again!
Summary
Adds gRPC transport to the OpenTelemetry sink, complementing the existing HTTP transport. The sink now supports
protocol.type = "grpc"using tonic over HTTP/2, with support for TLS, compression, batching, and retry logic matching the source's gRPC implementation.Vector configuration
How did you test this PR?
src/sinks/opentelemetry/grpc.rscovering config parsing and URI scheme handlingvector_grpc.yamlconfig (telemetrygen → OTel collector → Vector gRPC sink → OTel collector sink → file)src/sinks/opentelemetry/integration_tests.rs(gated onopentelemetry-integration-testsfeature) that sends OTLP log events to a live OTel collector via gRPCChange Type
Is this a breaking change?
Does this PR include user facing changes?
no-changeloglabel to this PR.References