# Diagnostics and Troubleshooting

This guide explains how to **retrieve diagnostics information** from EventSourcingDB. It covers how to access **system**, **version**, **license**, and **configuration data** that can support **troubleshooting and operational monitoring**.

## Overview

EventSourcingDB provides a **diagnostics endpoint** that returns **system-level and configuration details**. This information can help **verify runtime settings**, **identify resource limitations**, or **validate license status**.

Diagnostics data can be retrieved **at any time during normal operation** by sending an authorized request.

## Requesting Diagnostics

To request diagnostics information, send an HTTP **`GET`** request to **`/api/v1/diagnostics`** with the required authorization header:

```shell
curl -i \
  -H "Authorization: Bearer <API_TOKEN>" \
  http://localhost:3000/api/v1/diagnostics
```

The server responds with a JSON document containing several sections:

- **`version`**: The running **EventSourcingDB version** and build revision.
- **`system`**: Information about the **operating system**, **CPU architecture**, **CPU cores**, and **total memory**.
- **`license`**: Details about the **current license**, including **validity** and **event capacity limits**.
- **`options`**: Runtime **configuration settings** such as **ports**, **data directory locations**, and other options.

The exact fields and structure may evolve over time as new features are added.

> **Version-Specific Output**
>
> The format and fields of the diagnostics response **may change across versions**. Always **use the response dynamically** rather than relying on a fixed structure.

## Typical Use Cases

Diagnostics information is useful in **various operational scenarios**. It verifies that the correct EventSourcingDB version and build are deployed, for example after an upgrade. It also helps to **inspect system resources** such as CPU cores and memory size **when investigating performance issues**.

Additionally, diagnostics provide **details about the license status**, including **validity** and **expiration dates**, which can help **prevent unexpected disruptions**. Reviewing runtime configuration settings further supports troubleshooting by **highlighting misconfigurations** or unexpected option values.

Diagnostics information provides an **immediate overview** of the database's operational environment, helping to **detect issues early** and **maintain system stability**.
