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

# Observe

> Configuring the Observe backend (Managed)

### Getting Started

<img src="https://d15jtxgb40qetw.cloudfront.net/observe.svg" alt="observe" className="not-prose h-20" />

**Creating an ingest token**<br />
Data is sent to Observe's OTLP collection endpoint, which requires a **Datastream ingest token** (a user/API token will be rejected with `401`). Create one in the Observe UI under **Datastreams**, following [Configure your own OTel collector without Kubernetes](https://docs.observeinc.com/docs/configure-your-own-otel-collector-in-a-non-kubernetes-environment).

**Collection endpoint**<br />
By default the endpoint is `https://<customer_id>.collect.observeinc.com/v2/otel`. For regional tenants or other overrides, set the optional `OBSERVE_ENDPOINT` field. See [Configure your own OTel collector](https://docs.observeinc.com/docs/configure-your-own-otel-collector) for the endpoint format.

### Configuring Destination Fields

<Accordion title="Supported Signals:">
  ✅ Traces
  ✅ Metrics
  ✅ Logs
  ❌ Profiles
</Accordion>

* **OBSERVE\_CUSTOMER\_ID** `string` : Customer ID. The Customer ID is the first part of your Observe URL. For example, if your Observe URL is `https://<customer_id>.observe.com`, then the Customer ID is `<customer_id>`.
  * This field is required
* **OBSERVE\_TOKEN** `string` : Token. A Datastream ingest token (not a user/API token). Create one in the Observe UI under "Datastreams". See [https://docs.observeinc.com/docs/configure-your-own-otel-collector-in-a-non-kubernetes-environment](https://docs.observeinc.com/docs/configure-your-own-otel-collector-in-a-non-kubernetes-environment) for how to create an ingest token.
  * This field is required
* **OBSERVE\_ENDPOINT** `string` : Collection Endpoint. Optional. The full OTLP/HTTP collection endpoint. Set this to override the default, for example for a regional tenant such as `https://<customer_id>.collect.eu1.observeinc.com/v2/otel`. When empty, it is derived from the Customer ID. See [https://docs.observeinc.com/docs/configure-your-own-otel-collector](https://docs.observeinc.com/docs/configure-your-own-otel-collector) for the endpoint format.
  * This field is optional
  * Example: `https://<customer_id>.collect.observeinc.com/v2/otel`

<Check>
  By default the endpoint is derived from your Customer ID as `https://${OBSERVE_CUSTOMER_ID}.collect.observeinc.com/v2/otel`.
  To send to a different endpoint (for example a regional tenant), set the optional `OBSERVE_ENDPOINT` field.
  For details on the collection endpoint and creating an ingest token, see Observe's guides for [configuring your own OTel collector](https://docs.observeinc.com/docs/configure-your-own-otel-collector) and [configuring it without Kubernetes](https://docs.observeinc.com/docs/configure-your-own-otel-collector-in-a-non-kubernetes-environment).
</Check>

### Adding Destination to Odigos

There are two primary methods for configuring destinations in Odigos:

##### **Using the UI**

<Steps>
  <Step>
    Use the [Odigos CLI](https://docs.odigos.io/cli/odigos_ui) to access the UI

    ```bash theme={null}
    odigos ui
    ```
  </Step>

  <Step>
    Click on `Add Destination`, select `Observe` and follow the on-screen instructions
  </Step>
</Steps>

##### **Using Kubernetes manifests**

<Steps>
  <Step>
    Save the YAML below to a file (e.g. `observe.yaml`)

    ```yaml theme={null}
    apiVersion: odigos.io/v1alpha1
    kind: Destination
    metadata:
      name: observe-example
      namespace: odigos-system
    spec:
      data:
        OBSERVE_CUSTOMER_ID: <Customer ID>
        # Note: The commented fields below are optional.
        # OBSERVE_ENDPOINT: <Collection Endpoint>
      destinationName: observe
      secretRef:
        name: observe-secret
      signals:
      - TRACES
      - METRICS
      - LOGS
      type: observe

    ---

    apiVersion: v1
    data:
      OBSERVE_TOKEN: <Base64 Token>
    kind: Secret
    metadata:
      name: observe-secret
      namespace: odigos-system
    type: Opaque
    ```
  </Step>

  <Step>
    Apply the YAML using `kubectl`

    ```bash theme={null}
    kubectl apply -f observe.yaml
    ```
  </Step>
</Steps>
