diff --git a/pkgs/dotnet-server-sdk-consul/src/LaunchDarkly.ServerSdk.Consul.csproj b/pkgs/dotnet-server-sdk-consul/src/LaunchDarkly.ServerSdk.Consul.csproj index 0ebac19b..99c2e5e5 100644 --- a/pkgs/dotnet-server-sdk-consul/src/LaunchDarkly.ServerSdk.Consul.csproj +++ b/pkgs/dotnet-server-sdk-consul/src/LaunchDarkly.ServerSdk.Consul.csproj @@ -20,6 +20,7 @@ true snupkg LaunchDarkly.Sdk.Server.Integrations + README.md Debug;Release;DebugLocalReferences AnyCPU @@ -47,24 +48,31 @@ - + CHANGELOG.md - - + false + + CONTRIBUTING.md - - + false + + docfx.json - - + false + + index.md - - + false + + README.md - - + true + \ + + SECURITY.md - + false + diff --git a/pkgs/dotnet-server-sdk-dynamodb/src/LaunchDarkly.ServerSdk.DynamoDB.csproj b/pkgs/dotnet-server-sdk-dynamodb/src/LaunchDarkly.ServerSdk.DynamoDB.csproj index 501eb0d5..d8b08c1f 100644 --- a/pkgs/dotnet-server-sdk-dynamodb/src/LaunchDarkly.ServerSdk.DynamoDB.csproj +++ b/pkgs/dotnet-server-sdk-dynamodb/src/LaunchDarkly.ServerSdk.DynamoDB.csproj @@ -20,6 +20,7 @@ true snupkg LaunchDarkly.Sdk.Server.Integrations + README.md Debug;Release;DebugLocalReferences AnyCPU @@ -42,24 +43,31 @@ - + CHANGELOG.md - - + false + + CONTRIBUTING.md - - + false + + docfx.json - - + false + + index.md - - + false + + README.md - - + true + \ + + SECURITY.md - + false + diff --git a/pkgs/dotnet-server-sdk-redis/src/LaunchDarkly.ServerSdk.Redis.csproj b/pkgs/dotnet-server-sdk-redis/src/LaunchDarkly.ServerSdk.Redis.csproj index 3e1278f5..f98fa57f 100644 --- a/pkgs/dotnet-server-sdk-redis/src/LaunchDarkly.ServerSdk.Redis.csproj +++ b/pkgs/dotnet-server-sdk-redis/src/LaunchDarkly.ServerSdk.Redis.csproj @@ -20,6 +20,7 @@ true snupkg LaunchDarkly.Sdk.Server.Integrations + README.md Debug;Release;DebugLocalReferences AnyCPU @@ -42,21 +43,27 @@ - + CHANGELOG.md - - + false + + CONTRIBUTING.md - - + false + + docfx.json - - + false + + README.md - - + true + \ + + SECURITY.md - + false + diff --git a/pkgs/sdk/client/src/LaunchDarkly.ClientSdk.csproj b/pkgs/sdk/client/src/LaunchDarkly.ClientSdk.csproj index 137d2e75..2fc4b326 100644 --- a/pkgs/sdk/client/src/LaunchDarkly.ClientSdk.csproj +++ b/pkgs/sdk/client/src/LaunchDarkly.ClientSdk.csproj @@ -37,6 +37,7 @@ 1570,1571,1572,1573,1574,1580,1581,1584,1591,1710,1711,1712 + README.md Debug;Release;DebugLocalReferences AnyCPU @@ -125,21 +126,27 @@ - + CHANGELOG.md - - + false + + CONTRIBUTING.md - - + false + + index.md - - + false + + README.md - - + true + \ + + toc.yml - + false + ../../../../LaunchDarkly.ClientSdk.snk diff --git a/pkgs/sdk/server-ai/src/LaunchDarkly.ServerSdk.Ai.csproj b/pkgs/sdk/server-ai/src/LaunchDarkly.ServerSdk.Ai.csproj index beee0887..ab0ac230 100644 --- a/pkgs/sdk/server-ai/src/LaunchDarkly.ServerSdk.Ai.csproj +++ b/pkgs/sdk/server-ai/src/LaunchDarkly.ServerSdk.Ai.csproj @@ -35,6 +35,7 @@ 1570,1571,1572,1573,1574,1580,1581,1584,1591,1710,1711,1712 + README.md Debug;Release;DebugLocalReferences AnyCPU @@ -57,27 +58,35 @@ - + CHANGELOG.md - - + false + + CONTRIBUTING.md - - + false + + docfx.json - - + false + + docs-src\namespaces\LaunchDarkly.Sdk.Server.Ai.md - - + false + + docs-src\README.md - - + false + + index.md - - + false + + README.md - + true + \ + diff --git a/pkgs/sdk/server/src/LaunchDarkly.ServerSdk.csproj b/pkgs/sdk/server/src/LaunchDarkly.ServerSdk.csproj index 7ec5ba1b..f8222970 100644 --- a/pkgs/sdk/server/src/LaunchDarkly.ServerSdk.csproj +++ b/pkgs/sdk/server/src/LaunchDarkly.ServerSdk.csproj @@ -35,6 +35,7 @@ 1570,1571,1572,1573,1574,1580,1581,1584,1591,1710,1711,1712 + README.md Debug;Release;DebugLocalReferences AnyCPU @@ -58,42 +59,55 @@ - + CHANGELOG.md - - + false + + CONTRIBUTING.md - - + false + + docfx.json - - + false + + docs-src\namespaces\LaunchDarkly.Sdk.Json.md - - + false + + docs-src\namespaces\LaunchDarkly.Sdk.md - - + false + + docs-src\namespaces\LaunchDarkly.Sdk.Server.Integrations.md - - + false + + docs-src\namespaces\LaunchDarkly.Sdk.Server.Interfaces.md - - + false + + docs-src\namespaces\LaunchDarkly.Sdk.Server.md - - + false + + docs-src\namespaces\LaunchDarkly.Sdk.Server.Subsystems.md - - + false + + docs-src\README.md - - + false + + index.md - - + false + + README.md - + true + \ + diff --git a/pkgs/telemetry/README.md b/pkgs/telemetry/README.md new file mode 100644 index 00000000..06019add --- /dev/null +++ b/pkgs/telemetry/README.md @@ -0,0 +1,77 @@ +# LaunchDarkly Server-Side SDK for .NET - Telemetry + +[![NuGet](https://img.shields.io/nuget/v/LaunchDarkly.ServerSdk.Telemetry.svg?style=flat-square)](https://www.nuget.org/packages/LaunchDarkly.ServerSdk.Telemetry/) + +This library provides OpenTelemetry integration for the [LaunchDarkly Server-Side .NET SDK](https://github.com/launchdarkly/dotnet-core/tree/main/pkgs/sdk/server). It includes a `TracingHook` that automatically creates OpenTelemetry spans for feature flag evaluations using `System.Diagnostics.Activity`. + +For more information, see: [OpenTelemetry](https://docs.launchdarkly.com/sdk/features/opentelemetry). + +## Supported .NET versions + +This version of the library is built for the following targets: + +* .NET 8.0: runs on .NET 8.0 and above (including higher major versions). +* .NET Framework 4.6.2: runs on .NET Framework 4.6.2 and above. +* .NET Standard 2.0: runs in any project that is targeted to .NET Standard 2.x rather than to a specific runtime platform. + +The .NET build tools should automatically load the most appropriate build of the library for whatever platform your application or library is targeted to. + +## Getting started + +Install the NuGet package: + +``` +dotnet add package LaunchDarkly.ServerSdk.Telemetry +``` + +Then register the `TracingHook` with the LaunchDarkly SDK: + +```csharp +var hook = LaunchDarkly.Sdk.Server.Telemetry.TracingHook + .Builder() + .Build(); + +var config = Configuration.Builder("my-sdk-key") + .Hooks(Components.Hooks().Add(hook)) + .Build(); + +var client = new LdClient(config); +``` + +## Signing + +The published version of this assembly is digitally signed with Authenticode and [strong-named](https://docs.microsoft.com/en-us/dotnet/framework/app-domains/strong-named-assemblies). Building the code locally in the default Debug configuration does not use strong-naming and does not require a key file. The public key file is in this repository at `LaunchDarkly.pk` as well as here: + +``` +Public Key: +0024000004800000940000000602000000240000525341310004000001000100f121bbf427e4d7 +edc64131a9efeefd20978dc58c285aa6f548a4282fc6d871fbebeacc13160e88566f427497b625 +56bf7ff01017b0f7c9de36869cc681b236bc0df0c85927ac8a439ecb7a6a07ae4111034e03042c +4b1569ebc6d3ed945878cca97e1592f864ba7cc81a56b8668a6d7bbe6e44c1279db088b0fdcc35 +52f746b4 + +Public Key Token: f86add69004e6885 +``` + +## Contributing + +We encourage pull requests and other contributions from the community. Check out our [contributing guidelines](CONTRIBUTING.md) for instructions on how to contribute to this project. + + +## Verifying build provenance with the SLSA framework + +LaunchDarkly uses the [SLSA framework](https://slsa.dev/spec/v1.0/about) (Supply-chain Levels for Software Artifacts) to help developers make their supply chain more secure by ensuring the authenticity and build integrity of our published packages. To learn more, see the [provenance guide](PROVENANCE.md). + +## About LaunchDarkly + +* LaunchDarkly is a continuous delivery platform that provides feature flags as a service and allows developers to iterate quickly and safely. We allow you to easily flag your features and manage them from the LaunchDarkly dashboard. With LaunchDarkly, you can: + * Roll out a new feature to a subset of your users (like a group of users who opt-in to a beta tester group), gathering feedback and bug reports from real-world use cases. + * Gradually roll out a feature to an increasing percentage of users, and track the effect that the feature has on key metrics (for instance, how likely is a user to complete a purchase if they have feature A versus feature B?). + * Turn off a feature that you realize is causing performance problems in production, without needing to re-deploy, or even restart the application with a changed configuration file. + * Grant access to certain features based on user attributes, like payment plan (eg: users on the 'gold' plan get access to more features than users in the 'silver' plan). Disable parts of your application to facilitate maintenance, without taking everything offline. +* LaunchDarkly provides feature flag SDKs for a wide variety of languages and technologies. Read [our documentation](https://docs.launchdarkly.com/sdk) for a complete list. +* Explore LaunchDarkly + * [launchdarkly.com](https://www.launchdarkly.com/ "LaunchDarkly Main Website") for more information + * [docs.launchdarkly.com](https://docs.launchdarkly.com/ "LaunchDarkly Documentation") for our documentation and SDK reference guides + * [apidocs.launchdarkly.com](https://apidocs.launchdarkly.com/ "LaunchDarkly API Documentation") for our API documentation + * [blog.launchdarkly.com](https://blog.launchdarkly.com/ "LaunchDarkly Blog Documentation") for the latest product updates diff --git a/pkgs/telemetry/src/LaunchDarkly.ServerSdk.Telemetry.csproj b/pkgs/telemetry/src/LaunchDarkly.ServerSdk.Telemetry.csproj index 6c6a78d6..e6c73b35 100644 --- a/pkgs/telemetry/src/LaunchDarkly.ServerSdk.Telemetry.csproj +++ b/pkgs/telemetry/src/LaunchDarkly.ServerSdk.Telemetry.csproj @@ -34,6 +34,7 @@ 1570,1571,1572,1573,1574,1580,1581,1584,1591,1710,1711,1712 + README.md Debug;Release;DebugLocalReferences AnyCPU @@ -58,15 +59,23 @@ - + CHANGELOG.md - - + false + + docfx.json - - + false + + index.md - + false + + + README.md + true + \ +