> ## Documentation Index
> Fetch the complete documentation index at: https://launchdarkly.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Observability SDKs

export const SdkGrid = ({items = [], arrow = true, cols = 3}) => {
  return <Columns className="sdk_grid" cols={cols}>
      {items.map(({title, href, icon, iconLight, iconDark, iconPrefix = ""}) => <div key={`${href}::${title}`} className="contents">
          <Card title={title} href={href} icon={`/assets/icons/${iconPrefix}light/${iconLight || icon}.svg`} horizontal className="block dark:hidden" arrow={arrow} />
          <Card title={title} href={href} icon={`/assets/icons/${iconPrefix}dark/${iconDark || icon}.svg`} horizontal className="hidden dark:block" arrow={arrow} />
        </div>)}
    </Columns>;
};

<View title="Developer" />

<View title="Federal docs" />

<View title="EU docs" />

This category contains documentation topics explaining the observability capabilities available for LaunchDarkly SDKs. These include session replay, error monitoring, logging, and tracing.

The functionality is available through [observability SDKs](https://github.com/launchdarkly/observability-sdk), which are implemented as plugins to LaunchDarkly server-side and client-side SDKs. You can enable this functionality when you initialize a LaunchDarkly SDK client in your app:

* **Observability plugin** for error monitoring, logging, and tracing. Available in both client-side and server-side SDKs.
* **Session replay plugin** for session replays. Available in client-side SDKs only.

After you initialize the server-side or client-side SDK and one or more observability plugins, your application automatically starts sending observability data back to LaunchDarkly. You can review this information in the LaunchDarkly user interface. To learn how, read the [Observability](/docs/home/observability) product overview.

## Endpoints

The observability SDKs communicate with two LaunchDarkly endpoints:

<View title="EU docs">
  <Tip>
    **Set the EU endpoints explicitly**

    The observability SDKs are not region-aware. They default to the LaunchDarkly commercial endpoints, so in the LaunchDarkly EU instance you must configure both endpoints yourself. To learn how, read the configuration reference for your SDK: [Configuration for client-side observability](/docs/sdk/features/observability-config-client-side) or [Configuration for server-side observability](/docs/sdk/features/observability-config-server-side).
  </Tip>
</View>

### Telemetry data endpoint

<View title="EU docs">`https://otel.observability.app.eu.launchdarkly.com`</View>

<View title="Developer">`https://otel.observability.app.launchdarkly.com`</View>

<View title="Federal docs">`https://otel.observability.app.launchdarkly.com`</View>

This endpoint receives OpenTelemetry Protocol (OTLP) data from the SDKs over HTTPS. All telemetry data, including traces, logs, and metrics, is sent here.

The endpoint accepts data on the following paths:

| Path | Data type | Protocol |
| - | - | - |
| `/v1/traces` | Trace spans | HTTP/Protobuf |
| `/v1/logs` | Log records | HTTP/Protobuf |
| `/v1/metrics` | Metric data points | HTTP/Protobuf |

All data is compressed with gzip before transmission. The default port is 4318 (OTLP HTTP). Server-side SDKs may also use gRPC on port 4317.

### Configuration endpoint

<View title="EU docs">`https://pub.observability.app.eu.launchdarkly.com`</View><View title="Developer">`https://pub.observability.app.launchdarkly.com`</View><View title="Federal docs">`https://pub.observability.app.launchdarkly.com`</View>

This endpoint serves SDK configuration, including sampling rules. The SDKs query this endpoint using GraphQL over HTTPS to retrieve their sampling configuration during initialization. This allows LaunchDarkly to dynamically control sampling rates without requiring SDK restarts.

### Firewall and proxy requirements

You may need to update your infrastructure to allow the SDK to reach both of these domains. To learn more, read [Accessing LaunchDarkly by domain](/docs/sdk/concepts/domain-list#accessing-launchdarkly-by-domain).

If requests to these endpoints are being blocked, you can set up a proxy through your own domain using CNAME records. To learn more, read [Using a proxy](/docs/sdk/features/observability-config-client-side#using-a-proxy).

## Observability SDKs

<SdkGrid
  items={[
{ title: ".NET", href: "/sdk/observability/dotnet", icon: "dotnet" },
{ title: ".NET MAUI", href: "/sdk/observability/maui", icon: "dotnet" },
{ title: "Android", href: "/sdk/observability/android", icon: "android" },
{ title: "Flutter", href: "/sdk/observability/flutter", icon: "flutter" },
{ title: "iOS", href: "/sdk/observability/ios", icon: "ios" },
{ title: "Go", href: "/sdk/observability/go", icon: "go" },
{ title: "JavaScript", href: "/sdk/observability/javascript", icon: "javascript" },
{ title: "Node.js", href: "/sdk/observability/node-js", icon: "node" },
{ title: "Python", href: "/sdk/observability/python", icon: "python" },
{ title: "Ruby", href: "/sdk/observability/ruby", icon: "ruby" },
{ title: "React Web", href: "/sdk/observability/react-web", icon: "react" },
{ title: "React Native", href: "/sdk/observability/react-native", icon: "react" },
{ title: "Vue", href: "/sdk/observability/vue", icon: "vue" },
]}
/>
