# Observe Inc.

Observe Inc. (Observe by Snowflake) is an observability platform. It keeps traces and logs in datasets. Relyance AI reads the OpenTelemetry span datasets and the log datasets in your Observe tenant. Relyance AI uses this data to find your services, the data flows between them and the data types in your logs.

:::info
This integration is not visible by default. Contact your Relyance account team to enable this integration.
:::

### What Relyance AI reads

Relyance AI uses two Observe API endpoints. Both are read-only.

| Endpoint | What Relyance AI does with it |
| --- | --- |
| `GET /v1/datasets` | Lists your datasets. Relyance AI finds the span datasets (content type `OTelSpan`) and the log datasets (content type `Log`). |
| `POST /v1/meta/export/query` | Runs read-only OPAL export queries on the span datasets and the log datasets. |

A scan does these steps:

1. Relyance AI makes an index of your services.
2. Relyance AI reads a sample of spans for each service.
3. Relyance AI reads a sample of log records for each service.

Spans show data flows from your services to databases, HTTP services, RPC services and message queues. Relyance AI classifies the log samples for data types.

Relyance AI does not write data to Observe.

### What you need

- Your Observe customer ID. It is the first part of your Observe URL: `https://<customer_id>.observeinc.com`.
- The region of your Observe tenant.
- An API token of an Observe service account. An ingest token does not work.

### Permissions Relyance AI needs

| Permission | Used for |
| --- | --- |
| Dataset read | Viewing and querying the span datasets and the log datasets. The token also needs access to the export query API. |

Use a service account for this integration, not a personal user account. Give the service account view permission on the span datasets and the log datasets only. Your Observe administrator sets these permissions with Observe RBAC.

### In Observe

1. Find your customer ID in your Observe URL. For `https://123456789012.observeinc.com`, the customer ID is `123456789012`.
2. Find your region in your Observe URL. If the URL ends in `observeinc.com` with no region label, the region is US West. If the URL ends in `eu-1.observeinc.com`, the region is eu-1.
3. In the left navigation, select **Admin > Service account**.
4. Click **Create service account**.
5. Enter a name, a group and a description. For example, use the name `relyance-ai`.
6. Click **Create**.
7. In the list of service accounts, click the name of the new service account.
8. Click **Create service account token**.
9. Enter a name, a description and an expiration for the token.
10. Click **Create**.
11. Copy the API token. Observe shows the token one time only.
12. Confirm that you saved the token, then click **Finish**.
13. Ask your Observe administrator to give the service account view permission on the span datasets and the log datasets.

For more information, refer to the Observe documentation: [Manage service accounts using the UI](https://docs.observeinc.com/docs/manage-service-accounts-using-the-ui).

### In the Relyance AI application

1. Log in to your Relyance AI account.
2. Go to **Settings** > **Integrations**.
3. In the search box, type `Observe`.
4. Open the **Observe, Inc.** card.
5. Click **Add Connection**.
6. Enter a name for the connection, then click **Add**.
7. On the **Overview** step, select the features that you want to use. Then click **Continue**. For more information, refer to [Integration Features](/docs/introduction-to-relyance-ai/integration-features/).
8. On the **Connection** step, set the **Rescan Frequency**.
9. Select at least one **Business Atlas Associations** value, then click **Continue**. For more information, refer to [Business Atlas](/docs/other-settings/business-atlas-overview/).
10. On the **Authentication** step, select **API Token** as the authentication method.
11. Enter the values in the fields. Refer to [Authentication fields](#authentication-fields).
12. Click **Authenticate**.
13. If you selected **Data Inspection** on the **Overview** step, set the **Minimum Confidence Level**. Then click **Continue**.
14. On the **Completion** step, examine the summary, then click **Finish**.
15. Make sure that the connection status is **Connected**.

### Authentication fields

| Field | Required | Value |
| --- | --- | --- |
| **Customer ID** | Yes | Your Observe customer ID, for example `123456789012`. Use letters, digits and dashes only. Do not include the domain. |
| **Region** | No | The region of your Observe tenant. The default is **US West (observeinc.com)**. |
| **API Token** | Yes | The API token of the Observe service account. |

The **Region** dropdown has these values:

| Region | Domain |
| --- | --- |
| US West | `observeinc.com` |
| us-2 | `us-2.observeinc.com` |
| eu-1 | `eu-1.observeinc.com` |
| eu-2 | `eu-2.observeinc.com` |
| ap-1 | `ap-1.observeinc.com` |
| au-1 | `au-1.observeinc.com` |
| ca-1 | `ca-1.observeinc.com` |

Relyance AI sends requests to `https://<customer_id>.<domain>`, with the header `Authorization: Bearer <customer_id> <api_token>`. To test the connection, Relyance AI sends `GET /v1/datasets?limit=1`.

### Outpost with In Host BYOK

For an Outpost connection in **In Host BYOK** mode, keep the credentials in AWS Secrets Manager. Enter only the secret ARN on the connection. For the full procedure, refer to [Store Outpost Credentials in a Customer-Managed Secret](/docs/introduction-to-relyance-ai/outpost-connection-credentials/).

The secret value is a JSON object with these three fields. Put all three fields in the secret. The customer ID and the domain are not secret, but the scanner needs them to make the API host.

```json
{
  "customer_id": "123456789012",
  "domain": "observeinc.com",
  "api_token": "replace-with-your-api-token"
}
```

Set `domain` to the domain of your region from the table in [Authentication fields](#authentication-fields), for example `eu-1.observeinc.com`.

### Troubleshooting

| Problem | What to do |
| --- | --- |
| Authentication fails with HTTP 401 or 403. | Make sure that the token is a service account API token, not an ingest token. Make sure that the customer ID and the region are correct. Make sure that the token did not expire. |
| Authentication fails with a customer ID error. | Enter only the customer ID, for example `123456789012`. Do not enter the full URL or the domain. |
| The connection is **Connected**, but the scan finds no services. | Make sure that the service account can view the span datasets and the log datasets. Make sure that your Observe tenant has OpenTelemetry span data or log data. |
