Configuration for server-side observability
Configuration for server-side observability
Overview
This topic explains how to configure the observability plugin for server-side SDKs.
The observability plugin collects and sends observability data to LaunchDarkly, so you can review error monitoring, logs, traces, and more from within the LaunchDarkly UI.
To get started with the observability plugin, read the observability reference guide for your SDK. Use the docs site navigation on the left, or find your SDK under Observability SDKs.
Details about each SDK’s configuration are available in the SDK-specific sections below:
Network requirements
The observability plugin sends OpenTelemetry data to LaunchDarkly at https://otel.observability.app.launchdarkly.com:4318 by default. Port 4318 is the standard OpenTelemetry HTTP/Protobuf port.
If your network restricts outbound traffic to port 443, override the OTLP endpoint to use HTTPS on port 443. You have two ways to override the endpoint:
- Use the configuration option for your SDK. For example, in .NET, call
WithOtlpEndpoint("https://otel.observability.app.launchdarkly.com:443")when you build the plugin. - Set the
OTEL_EXPORTER_OTLP_ENDPOINTenvironment variable tohttps://otel.observability.app.launchdarkly.com:443. This variable works with all server-side SDKs.
If your application emits OpenTelemetry data locally but none of it appears in LaunchDarkly, check whether your network allows outbound traffic to port 4318. A restrictive firewall is a common cause of missing backend observability data.
Server-side SDKs
This feature is available in the observability plugin for the following server-side SDKs:
.NET (server-side)
Expand .NET (server-side) code sample
You can configure the observability plugin for the .NET (server-side) SDK through a mix of environment variables, OpenTelemetry configuration options, and plugin configuration options.
Use the ObservabilityPlugin.ObservabilityPluginBuilder to set the options. In many cases, you can use an OpenTelemetry-specific environment variable instead, if you prefer. For example, if you want to set a custom OTLP endpoint, you can either set OtlpEndpoint in your ObservabilityPlugin.ObservabilityPluginBuilder, or you can set the OTEL_EXPORTER_OTLP_ENDPOINT environment variable.
Here’s how:
For a complete list of configuration options, read ObservabilityPlugin.ObservabilityPluginBuilder.
Go
Node.js (server-side)
Expand Node.js (server-side) code sample
You can configure the observability plugin for the Node.js (server-side) SDK through a mix of environment variables, OpenTelemetry configuration options, and plugin configuration options.
Environment variables
The environment variables specify where to enable instrumentation:
LAUNCHDARKLY_OTEL_NODE_ENABLE_FILESYSTEM_INSTRUMENTATIONenables file system instrumentation. It defaults tofalse.LAUNCHDARKLY_OTEL_NODE_ENABLE_OUTGOING_HTTP_INSTRUMENTATIONenables outgoing HTTP instrumentation. It defaults totrue. It only affects outgoing HTTP requests instrumented by@opentelemetry/instrumentation-http.
OpenTelemetry configuration options
If you are already using OpenTelemetry configuration options for Node in your application, you can continue to use them.
When you use the observability plugin, the @opentelemetry/instrumentation-fs instrumentation behaves as follows:
- The instrumentation will only be enabled if
LAUNCHDARKLY_OTEL_NODE_ENABLE_FILESYSTEM_INSTRUMENTATIONistrue. - The instruction is unaffected by the
OTEL_NODE_ENABLED_INSTRUMENTATIONSandOTEL_NODE_DISABLED_INSTRUMENTATIONSOpenTelemetry environment variables.
Plugin configuration options
To specify the observability plugin configuration options, use the NodeOptions interface to set the options.
Here’s how:
For a complete list of configuration options, read NodeOptions.
Python
Expand Python code sample
You can configure the observability plugin for the Python SDK through a mix of environment variables, OpenTelemetry configuration options, and plugin configuration options.
Use the ObservabilityConfig class to set the options. In many cases, you can use an OpenTelemetry-specific environment variable instead, if you prefer. For example, if you want to set a custom OTLP endpoint, you can either set otlp_endpoint in your ObservabilityConfig, or you can set the OTEL_EXPORTER_OTLP_ENDPOINT environment variable.
Here’s how:
For a complete list of configuration options, read ObservabilityConfig.
Ruby
Expand Ruby code sample
You can configure options for the Ruby observability plugin when you initialize the SDK, or using environment variables.
Plugin configuration options
The plugin constructor accepts optional keyword arguments for configuration.
Here’s how:
For a complete list of configuration options, read Plugin Options.
Environment variables
The environment variables specify where to enable instrumentation:
LAUNCHDARKLY_SDK_KEYprovides the LaunchDarkly SDK key. This key is automatically extracted from the client during initialization.OTEL_EXPORTER_OTLP_ENDPOINTprovides a custom OTLP endpoint.OTEL_SERVICE_NAMEprovides the service name, if not specified in plugin options.
Environment configuration is automatic
The environment associated with your SDK key is automatically determined by the backend, so you don’t need to configure it separately.