---
title: Optional Hosted Observability
description: Configure DurableStack to publish runtime events to the hosted observability site.
order: 45
---

# Optional Hosted Observability

Hosted observability is optional.

When configured, DurableStack publishes runtime events to the hosted platform.

Start at [https://app.durablestack.com](https://app.durablestack.com) to register, create a tenant, and retrieve the tenant ID and client secret needed for runtime integration.

## Required settings

Set these options in your `AddDurableStack...` block:

- `options.Eventing.TenantId`
- `options.Eventing.ClientSecret`

When both `TenantId` and `ClientSecret` are set, ingestion sink registration is automatic.
In this mode, posted ingestion data includes runtime information.

## Example

```csharp
builder.Services.AddDurableStackPostgres(connectionString, options =>
{
    options.Eventing.TenantId = "tenant_...";
    options.Eventing.ClientSecret = "secret_...";
});
```

## Validation checklist

### 1) Confirm runtime identity mapping

- Ensure each runtime instance is associated with the intended organization/project/tenant scope.
- Keep naming consistent between runtime configuration and site configuration.

### 2) Verify credentials and environment settings

- Configure secrets through your secure secret store (not source control).
- Validate that production and staging use separate credentials and scopes.

### 3) Validate end-to-end visibility

- Trigger a known job run.
- Confirm it appears in the observability dashboard and run views.
- Confirm failures and retries are represented correctly.

### 4) Operational hardening

- Rotate credentials on a regular schedule.
- Alert on connection gaps so missing telemetry is detected quickly.
- Re-check mapping after tenant/project reorganizations.

Detailed ingestion protocol and endpoint contracts are intentionally outside this guide.
