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

# Test and live modes

Foveus separates telemetry into two modes:

| Mode   | Use for                                                |
| ------ | ------------------------------------------------------ |
| `test` | Local development, sandbox testing, QA, and onboarding |
| `live` | Production telemetry                                   |

Use Test mode while setting up Foveus.

Use Live mode when you are ready to send production telemetry.

## Test mode

Test mode is the default.

When you install the SDK and pass a test API key, you do not need to set `Mode`.

```csharp theme={null}
builder.Services.AddFoveus("fov_test_...");
```

Foveus uses Test mode automatically.

Use Test mode for:

* local development
* sandbox services
* QA environments
* staging validation
* private beta setup
* SDK integration testing

## Live mode

Use Live mode for production telemetry.

To send live telemetry, use a live API key and set `Mode` to `live`.

```json theme={null}
{
  "Foveus": {
    "ApiKey": "fov_live_...",
    "ServiceName": "orders-api",
    "Environment": "production",
    "Mode": "live"
  }
}
```

<Warning>
  Do not use a live key in local development. Do not use a test key for production telemetry.
</Warning>

## Mode is different from environment

`Mode` controls the Foveus data boundary.

`Environment` describes where your service is running.

They are related, but they are not the same thing.

| Concept     | Example      | Meaning                                       |
| ----------- | ------------ | --------------------------------------------- |
| Service     | `orders-api` | The application or worker producing telemetry |
| Environment | `staging`    | Where the service is running                  |
| Mode        | `test`       | The Foveus telemetry boundary                 |

For example, a staging service can send telemetry in Test mode:

```json theme={null}
{
  "Foveus": {
    "ApiKey": "fov_test_...",
    "ServiceName": "orders-api",
    "Environment": "staging"
  }
}
```

A production service should send telemetry in Live mode:

```json theme={null}
{
  "Foveus": {
    "ApiKey": "fov_live_...",
    "ServiceName": "orders-api",
    "Environment": "production",
    "Mode": "live"
  }
}
```

## Service names are yours

Foveus works with the service names your team already uses.

Some teams use stable logical names:

```text theme={null}
orders-api
payments-worker
identity-service
```

Other teams include the deployment environment in the service name:

```text theme={null}
orders-api-dev
orders-api-staging
orders-api-prod
```

Both can work.

If you are setting up a new service, a stable service name plus an explicit environment is easier to compare across deployments.

```json theme={null}
{
  "Foveus": {
    "ApiKey": "fov_live_...",
    "ServiceName": "orders-api",
    "Environment": "production",
    "Mode": "live"
  }
}
```

If your organization already uses environment-specific service names, you can keep using them.

## API keys and modes

Foveus API keys are mode-aware.

| Key type | Example        | Mode   |
| -------- | -------------- | ------ |
| Test key | `fov_test_...` | `test` |
| Live key | `fov_live_...` | `live` |

During private beta:

* test keys are created automatically during onboarding
* live keys are created manually from Settings
* test key rotation from Settings is not available yet

## Dashboard mode

The dashboard can show Test or Live telemetry.

If you are using a test key and do not see executions, make sure the dashboard is showing Test mode.

If you are using a live key, make sure the dashboard is showing Live mode.

## Common setups

### Local development

```json theme={null}
{
  "Foveus": {
    "ApiKey": "fov_test_..."
  }
}
```

Foveus uses:

| Option        | Default                 |
| ------------- | ----------------------- |
| `ServiceName` | Project assembly name   |
| `Environment` | Current app environment |
| `Mode`        | `test`                  |

### Staging

```json theme={null}
{
  "Foveus": {
    "ApiKey": "fov_test_...",
    "ServiceName": "orders-api",
    "Environment": "staging"
  }
}
```

Staging can use Test mode unless you intentionally want production-grade Live telemetry for that environment.

### Production

```json theme={null}
{
  "Foveus": {
    "ApiKey": "fov_live_...",
    "ServiceName": "orders-api",
    "Environment": "production",
    "Mode": "live"
  }
}
```

Production should use a live key and `Mode: "live"`.

## Troubleshooting

### I do not see my executions

Check that:

* your API key is valid
* the dashboard is showing the same mode your service is sending to
* your service can reach Foveus
* your time range includes the request
* your service name matches the value you are searching for

### My telemetry appears in Test mode

Foveus defaults to Test mode.

If you are sending production telemetry, set `Mode` to `live` and use a live key.

```json theme={null}
{
  "Foveus": {
    "ApiKey": "fov_live_...",
    "Mode": "live"
  }
}
```

### My service name includes dev, staging, or prod

That is okay.

Foveus can work with your existing naming convention.

If you want cleaner cross-environment comparison later, you can standardize service naming and use `Environment` to separate deployments.

## What to do next

* Create an API key: [Create an API key](/get-started/create-api-key)
* Install the .NET SDK: [Install the .NET SDK](/get-started/install-dotnet-sdk)
* Learn about services and environments: [Services and environments](/concepts/services-and-environments)
* View your first execution: [View your first execution](/get-started/view-your-first-execution)
