Conversation
Implements the standard OpenTelemetry collector services (TraceService,
LogsService, MetricsService) in-process via gRPC:
- vendored opentelemetry-proto v1.3.2 definitions (proto/, Apache-2.0),
compiled at build time with protoc + grpc_cpp_plugin
- requests convert through protobuf's canonical OTLP/JSON mapping and flow
through the exact same native ingestion path as the HTTP API, so the two
transports cannot diverge
- bearer-token auth and x-rawduck-{traces,logs,metrics}-table routing via
gRPC metadata; OTLP partialSuccess with signal-specific rejected counts
- dependencies via vcpkg (grpc, protobuf; platform '!emscripten & !mingw');
CMake auto-detects and degrades gracefully - builds without gRPC compile
the same functions, which raise NotImplemented with guidance
- existing code paths untouched; wasm builds unaffected
- verified with grpcurl: export success, auth rejection, custom-table
routing, flattened columns queryable; lifecycle sqllogictest gated behind
RAWDUCK_GRPC_TESTS
Co-Authored-By: Claude Fable 5 <[email protected]>
The Catalog::GetEntry<T> template references T::Name (static constexpr const char *), which our translation units materialized as strong definitions colliding with DuckDB core's own under the Linux CI toolchain (GCC 14, multiple definition of TableCatalogEntry::Name / AggregateFunctionCatalogEntry::Name at libduckdb.so link time). Use the non-template GetEntry(EntryLookupInfo) API + Cast<>() instead. Note: EntryLookupInfo holds the entry name by reference, so it must outlive the lookup. Co-Authored-By: Claude Fable 5 <[email protected]>
The gRPC dependency pulls host-tool builds (protoc, grpc_cpp_plugin) under the default host triplets, which build the entire grpc/protobuf/abseil stack twice (debug + release). Overlay the default linux/osx triplets with VCPKG_BUILD_TYPE=release so host builds are release-only, roughly halving cold vcpkg time and cache size. Target triplets were already *-release; subsequent runs restore from the binary cache either way. Co-Authored-By: Claude Fable 5 <[email protected]>
gRPC/abseil require C++17 and CMake propagates that requirement through the static extension library into DuckDB's own tools (plan_serializer), while core stayed C++11. Mixed standards make 'static constexpr' members duplicate definitions under GNU ld (BufferedFileWriter::DEFAULT_OPEN_FLAGS et al). Setting CMAKE_CXX_STANDARD 17 in extension_config.cmake applies to every target in the build (it is included in root scope before add_subdirectory), making constexpr statics implicitly inline everywhere. Verified: clean full local rebuild + 404 test assertions. Co-Authored-By: Claude Fable 5 <[email protected]>
Newer DuckLake releases restrict ALTER type changes to their widening promotion set (INTEGER -> BIGINT etc.); BIGINT -> DOUBLE is rejected with 'only widening type promotions are allowed', so asserting it made the test depend on which ducklake version INSTALL resolves. Exercise INTEGER -> BIGINT widening instead, which is supported across versions. Co-Authored-By: Claude Fable 5 <[email protected]>
Mirrors the automatic wasm exclusion as an explicit user choice: the OTLP/gRPC server is skipped at build time while OTLP/HTTP stays fully functional, and raw_serve_grpc explains why it is unavailable. Co-Authored-By: Claude Fable 5 <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Implements OTLP/GRPC ingestion endpoint