Skip to content

Conversation

@kinyoklion
Copy link
Member

@kinyoklion kinyoklion commented Oct 29, 2025

Adds support for an OTEL tracing hook.

Unlike other packages we will not be providing a build of this package. A customer wanting to use this package will need to build the SDK themselves in the correct configuration. This allows for the hook to use the version of OpenTelemetry that they are using with their application.


Note

Introduces a new server-side OpenTelemetry integration (libs/server-sdk-otel) with a tracing hook, example app, build flags, CI workflow, and release config.

  • Server OTEL Integration:
    • New package libs/server-sdk-otel implementing TracingHook with options (TracingHookOptions, builder), headers, implementation, unit tests, CMakeLists.txt, CHANGELOG.md, and README.md.
    • Exposes target alias launchdarkly::server_otel.
  • Example:
    • Adds examples/hello-cpp-server-otel (CMake, README, main) demonstrating OTLP HTTP tracing and hook usage.
  • Build/Config:
    • Top-level: new options LD_BUILD_OTEL_SUPPORT, LD_BUILD_OTEL_FETCH_DEPS, LD_OTEL_CPP_VERSION; conditionally add_subdirectory(libs/server-sdk-otel) and example; docs updated in README.md.
    • libs/server-sdk-otel/CMakeLists.txt: optional FetchContent of OpenTelemetry (when LD_BUILD_OTEL_FETCH_DEPS=ON), link to opentelemetry-cpp::api.
    • scripts/build.sh: auto-enables OTEL flags for launchdarkly-cpp-server-otel and test targets.
    • cmake/json.cmake: rename FetchContent target to nlohmann_json.
  • CI/Release:
    • New workflow .github/workflows/server-otel.yml (Ubuntu/macOS/Windows) building launchdarkly-cpp-server-otel with CURL dev libs.
    • Composite action .github/actions/ci: adds install_curl input and broadens CURL install condition; passes CMAKE_PREFIX_PATH.
    • release-please config/manifests updated to include libs/server-sdk-otel (initial version 0.1.0).
    • Manual docs workflow: adds libs/server-sdk-otel option.

Written by Cursor Bugbot for commit 0771956. This will update automatically on new commits. Configure here.

@kinyoklion kinyoklion force-pushed the rlamb/tracing-hook branch 3 times, most recently from 6fb57c5 to f1afdd0 Compare October 29, 2025 17:59
]
},
"libs/server-sdk-otel": {
"release-as": "0.1.0",
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Temporary change for first release.

@kinyoklion kinyoklion force-pushed the rlamb/tracing-hook branch 4 times, most recently from 1eed2db to c3a092c Compare October 29, 2025 20:06
package-server-tag: ${{ steps.release.outputs['libs/server-sdk--tag_name'] }}
package-server-redis-released: ${{ steps.release.outputs['libs/server-sdk-redis-source--release_created'] }}
package-server-redis-tag: ${{ steps.release.outputs['libs/server-sdk-redis-source--tag_name'] }}
package-server-otel-released: ${{ steps.release.outputs['libs/server-sdk-otel--release_created'] }}
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We aren't doing a build, so strictly speaking we don't need these, but I wonder if we should just leave them for consistency.

@kinyoklion kinyoklion force-pushed the rlamb/tracing-hook branch 5 times, most recently from c6010c5 to 2254a4e Compare October 29, 2025 23:23
@kinyoklion kinyoklion marked this pull request as ready for review October 30, 2025 18:43
@kinyoklion kinyoklion requested a review from a team as a code owner October 30, 2025 18:43
cursor[bot]

This comment was marked as outdated.

cursor[bot]

This comment was marked as outdated.

cursor[bot]

This comment was marked as outdated.

@kinyoklion kinyoklion merged commit 7eb5a2e into main Oct 30, 2025
44 checks passed
@kinyoklion kinyoklion deleted the rlamb/tracing-hook branch October 30, 2025 21:58
@github-actions github-actions bot mentioned this pull request Oct 30, 2025
kinyoklion pushed a commit that referenced this pull request Nov 3, 2025
🤖 I have created a release *beep* *boop*
---


<details><summary>launchdarkly-cpp-client: 3.11.0</summary>

##
[3.11.0](launchdarkly-cpp-client-v3.10.1...launchdarkly-cpp-client-v3.11.0)
(2025-11-03)


### Features

* Add proxy support when using CURL networking.
([c9a6b17](c9a6b17))
* Add support for CURL networking.
([c9a6b17](c9a6b17))


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * launchdarkly-cpp-internal bumped from 0.12.1 to 0.13.0
    * launchdarkly-cpp-common bumped from 1.10.0 to 1.11.0
    * launchdarkly-cpp-sse-client bumped from 0.5.5 to 0.6.0
</details>

<details><summary>launchdarkly-cpp-common: 1.11.0</summary>

##
[1.11.0](launchdarkly-cpp-common-v1.10.0...launchdarkly-cpp-common-v1.11.0)
(2025-11-03)


### Features

* Add proxy support when using CURL networking.
([c9a6b17](c9a6b17))
* Add support for CURL networking.
([c9a6b17](c9a6b17))


### Bug Fixes

* Correctly handle a wrapper name without a wrapper version.
([245dd97](245dd97))
</details>

<details><summary>launchdarkly-cpp-internal: 0.13.0</summary>

##
[0.13.0](launchdarkly-cpp-internal-v0.12.1...launchdarkly-cpp-internal-v0.13.0)
(2025-11-03)


### Features

* Add proxy support when using CURL networking.
([c9a6b17](c9a6b17))
* Add support for CURL networking.
([c9a6b17](c9a6b17))


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * launchdarkly-cpp-common bumped from 1.10.0 to 1.11.0
    * launchdarkly-cpp-networking bumped from 0.1.0 to 0.2.0
</details>

<details><summary>launchdarkly-cpp-networking: 0.2.0</summary>

##
[0.2.0](launchdarkly-cpp-networking-v0.1.0...launchdarkly-cpp-networking-v0.2.0)
(2025-11-03)


### Features

* Add proxy support when using CURL networking.
([c9a6b17](c9a6b17))
* Add support for CURL networking.
([c9a6b17](c9a6b17))
</details>

<details><summary>launchdarkly-cpp-server: 3.10.0</summary>

##
[3.10.0](launchdarkly-cpp-server-v3.9.1...launchdarkly-cpp-server-v3.10.0)
(2025-11-03)


### Features

* Add proxy support when using CURL networking.
([c9a6b17](c9a6b17))
* Add support for CURL networking.
([c9a6b17](c9a6b17))
* Add support for hooks.
([03e2a59](03e2a59))


### Bug Fixes

* Discard track events when the associated context is invalid.
([03e2a59](03e2a59))
* Handle null payloads.
([#497](#497))
([d12b7a0](d12b7a0))


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * launchdarkly-cpp-internal bumped from 0.12.1 to 0.13.0
    * launchdarkly-cpp-common bumped from 1.10.0 to 1.11.0
    * launchdarkly-cpp-sse-client bumped from 0.5.5 to 0.6.0
</details>

<details><summary>launchdarkly-cpp-server-otel: 0.1.0</summary>

## 0.1.0 (2025-11-03)


### Features

* Add tracing hook.
([#496](#496))
([7eb5a2e](7eb5a2e))


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * launchdarkly-cpp-server bumped from 3.9.1 to 3.10.0
</details>

<details><summary>launchdarkly-cpp-server-redis-source: 2.2.1</summary>

##
[2.2.1](launchdarkly-cpp-server-redis-source-v2.2.0...launchdarkly-cpp-server-redis-source-v2.2.1)
(2025-11-03)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * launchdarkly-cpp-server bumped from 3.9.1 to 3.10.0
</details>

<details><summary>launchdarkly-cpp-sse-client: 0.6.0</summary>

##
[0.6.0](launchdarkly-cpp-sse-client-v0.5.5...launchdarkly-cpp-sse-client-v0.6.0)
(2025-11-03)


### Features

* Add proxy support when using CURL networking.
([c9a6b17](c9a6b17))
* Add support for CURL networking.
([c9a6b17](c9a6b17))


### Bug Fixes

* Handle null payloads.
([#497](#497))
([d12b7a0](d12b7a0))


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * launchdarkly-cpp-networking bumped from 0.1.0 to 0.2.0
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Publish workspace releases adding CURL networking with proxy support,
server hooks, new server OTEL integration, and synchronized
dependency/version updates.
> 
> - **Releases**:
>   - **Client SDK `3.11.0`**:
>     - Features: CURL networking + proxy support.
> - Deps: `launchdarkly-cpp-internal@0.13.0`,
`launchdarkly-cpp-common@1.11.0`, `launchdarkly-cpp-sse-client@0.6.0`.
>     - Version constants/tests/CMake updated.
>   - **Server SDK `3.10.0`**:
>     - Features: CURL networking + proxy support; hooks support.
> - Bug fixes: discard track events with invalid context; handle null
payloads.
>     - Deps: bumped to internal/common/sse versions above.
>     - Version constants/tests/CMake updated.
> - **SSE Client `0.6.0`**: CURL networking + proxy support; fix null
payloads; dep on `launchdarkly-cpp-networking@0.2.0`.
>   - **Networking `0.2.0`**: add CURL networking + proxy support.
> - **Common `1.11.0`**: add CURL networking + proxy support; fix
wrapper name without version.
> - **Internal `0.13.0`**: add CURL networking + proxy support; deps
updated.
> - **Server Redis Source `2.2.1`**: dep bump to
`launchdarkly-cpp-server@3.10.0`; CMake/package version updates.
> - **New: Server OTEL `0.1.0`**: tracing hook integration; dep on
`launchdarkly-cpp-server@3.10.0`.
> - **Repo**:
> - `.release-please-manifest.json` updated to new versions across
`libs/*`.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
5a6226c. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
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.

3 participants