# Monitoring

Part of AppEngine API Documentation. Full index: https://appengine.appmint.io/documentation.md
## GET /monitoring/overview

**Get the system overview**

`operationId: MonitoringController_getSystemOverview`

The operational dashboard in one call — health, resources, queues and recent alerts together. The first thing to look at when something is wrong.

#### Signature

```http
GET /monitoring/overview () -> The overview
```

#### Access

Public — no credentials required.

#### Notes

- Unauthenticated — this controller is entirely public.

#### Errors

Plus the standard platform errors: `429`, `500`.

#### See also

- `GET /monitoring/health`

### Responses

| Status | Meaning |
| --- | --- |
| `200` | The overview |
| `429` | Too Many Requests — More than 100,000 requests from one IP within 5 minutes (configurable per deployment). CORS preflights and requests from inside the platform cluster are not counted. The limiter answers before the error filter, so the body is `{ statusCode, error, message }` with no `path`, `method` or `timeStamp`; the `RateLimit-*` response headers say when the window resets. |
| `500` | An unexpected error occurred. Our team has been notified. — An unhandled server-side failure. |

## GET /monitoring/historical

**Get historical metrics**

`operationId: MonitoringController_getHistoricalMetrics`

Metrics over a time range, for spotting a trend rather than a moment. `range` names the window.

#### Signature

```http
GET /monitoring/historical (range?: string) -> Historical metrics
```

#### Access

Public — no credentials required.

#### Notes

- Unauthenticated — this controller is entirely public.

#### Errors

Plus the standard platform errors: `429`, `500`.

#### See also

- `GET /monitoring/system-metrics`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `range` | query | string | — | Time range, e.g. `1h`, `24h`, `7d`. |

### Responses

| Status | Meaning |
| --- | --- |
| `200` | Historical metrics |
| `429` | Too Many Requests — More than 100,000 requests from one IP within 5 minutes (configurable per deployment). CORS preflights and requests from inside the platform cluster are not counted. The limiter answers before the error filter, so the body is `{ statusCode, error, message }` with no `path`, `method` or `timeStamp`; the `RateLimit-*` response headers say when the window resets. |
| `500` | An unexpected error occurred. Our team has been notified. — An unhandled server-side failure. |

## GET /monitoring/health

**Get detailed health checks**

`operationId: MonitoringController_getHealthCheck`

Per-component health for every system dependency — database, Redis, queues, external services. More detailed than a liveness probe: a component can be degraded while the process is alive.

This path is exempt from rate limiting, so it is safe to poll from a monitor.

#### Signature

```http
GET /monitoring/health () -> Component health
```

#### Access

Public — no credentials required.

#### Notes

- Unauthenticated — this controller is entirely public.

#### Errors

Plus the standard platform errors: `429`, `500`.

#### See also

- `GET /monitoring/system-metrics`

### Responses

| Status | Meaning |
| --- | --- |
| `200` | Component health |
| `429` | Too Many Requests — More than 100,000 requests from one IP within 5 minutes (configurable per deployment). CORS preflights and requests from inside the platform cluster are not counted. The limiter answers before the error filter, so the body is `{ statusCode, error, message }` with no `path`, `method` or `timeStamp`; the `RateLimit-*` response headers say when the window resets. |
| `500` | An unexpected error occurred. Our team has been notified. — An unhandled server-side failure. |

## GET /monitoring/system-metrics

**Get system resource metrics**

`operationId: MonitoringController_getSystemMetrics`

CPU, memory and process metrics for the running instance.

#### Signature

```http
GET /monitoring/system-metrics () -> Resource metrics
```

#### Access

Public — no credentials required.

#### Notes

- Unauthenticated — this controller is entirely public.

#### Errors

Plus the standard platform errors: `429`, `500`.

#### See also

- `GET /monitoring/historical`

### Responses

| Status | Meaning |
| --- | --- |
| `200` | Resource metrics |
| `429` | Too Many Requests — More than 100,000 requests from one IP within 5 minutes (configurable per deployment). CORS preflights and requests from inside the platform cluster are not counted. The limiter answers before the error filter, so the body is `{ statusCode, error, message }` with no `path`, `method` or `timeStamp`; the `RateLimit-*` response headers say when the window resets. |
| `500` | An unexpected error occurred. Our team has been notified. — An unhandled server-side failure. |

## GET /monitoring/queues

**Get queue statistics**

`operationId: MonitoringController_getQueueStats`

Job counts and processing rates across queues. Rising waiting counts with a flat completed rate is the signature of a stalled worker.

#### Signature

```http
GET /monitoring/queues () -> Queue statistics
```

#### Access

Public — no credentials required.

#### Notes

- Unauthenticated — this controller is entirely public.

#### Errors

Plus the standard platform errors: `429`, `500`.

#### See also

- `GET /monitoring/queues/{queueName}`

### Responses

| Status | Meaning |
| --- | --- |
| `200` | Queue statistics |
| `429` | Too Many Requests — More than 100,000 requests from one IP within 5 minutes (configurable per deployment). CORS preflights and requests from inside the platform cluster are not counted. The limiter answers before the error filter, so the body is `{ statusCode, error, message }` with no `path`, `method` or `timeStamp`; the `RateLimit-*` response headers say when the window resets. |
| `500` | An unexpected error occurred. Our team has been notified. — An unhandled server-side failure. |

## GET /monitoring/queues/{queueName}

**Get one queue's statistics**

`operationId: MonitoringController_getQueueDetails`

Statistics for a single queue.

#### Signature

```http
GET /monitoring/queues/{queueName} (queueName: string) -> Queue statistics
```

#### Access

Public — no credentials required.

#### Notes

- Unauthenticated — this controller is entirely public.

#### Errors

Plus the standard platform errors: `429`, `500`.

#### See also

- `GET /monitoring/queues`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `queueName` | path | string | yes | Queue name. |

### Responses

| Status | Meaning |
| --- | --- |
| `200` | Queue statistics |
| `429` | Too Many Requests — More than 100,000 requests from one IP within 5 minutes (configurable per deployment). CORS preflights and requests from inside the platform cluster are not counted. The limiter answers before the error filter, so the body is `{ statusCode, error, message }` with no `path`, `method` or `timeStamp`; the `RateLimit-*` response headers say when the window resets. |
| `500` | An unexpected error occurred. Our team has been notified. — An unhandled server-side failure. |

## GET /monitoring/alerts

**Get recent alerts**

`operationId: MonitoringController_getRecentAlerts`

Alerts and notifications the system has raised, newest first.

#### Signature

```http
GET /monitoring/alerts (limit?: integer) -> Alerts
```

#### Access

Public — no credentials required.

#### Notes

- Unauthenticated — this controller is entirely public.

#### Errors

Plus the standard platform errors: `429`, `500`.

#### See also

- `GET /monitoring/alert-notifications`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `limit` | query | integer | — |  |

### Responses

| Status | Meaning |
| --- | --- |
| `200` | Alerts |
| `429` | Too Many Requests — More than 100,000 requests from one IP within 5 minutes (configurable per deployment). CORS preflights and requests from inside the platform cluster are not counted. The limiter answers before the error filter, so the body is `{ statusCode, error, message }` with no `path`, `method` or `timeStamp`; the `RateLimit-*` response headers say when the window resets. |
| `500` | An unexpected error occurred. Our team has been notified. — An unhandled server-side failure. |

## GET /monitoring/user-activity

**Get user activity metrics**

`operationId: MonitoringController_getUserActivity`

Current user activity across the platform — sessions and request volume.

#### Signature

```http
GET /monitoring/user-activity () -> Activity metrics
```

#### Access

Public — no credentials required.

#### Notes

- Unauthenticated — this controller is entirely public.
- Reads across organizations, not just the calling one.

#### Errors

Plus the standard platform errors: `429`, `500`.

#### See also

- `GET /monitoring/web-activity`

### Responses

| Status | Meaning |
| --- | --- |
| `200` | Activity metrics |
| `429` | Too Many Requests — More than 100,000 requests from one IP within 5 minutes (configurable per deployment). CORS preflights and requests from inside the platform cluster are not counted. The limiter answers before the error filter, so the body is `{ statusCode, error, message }` with no `path`, `method` or `timeStamp`; the `RateLimit-*` response headers say when the window resets. |
| `500` | An unexpected error occurred. Our team has been notified. — An unhandled server-side failure. |

## GET /monitoring/company-creation

**Monitor company creation**

`operationId: MonitoringController_getCompanyCreationMetrics`

New organization registrations recorded in the **root org** — a growth signal for operators.

Because it reads root-org records on an unauthenticated route, it discloses who has recently signed up to anyone who can reach it.

#### Signature

```http
GET /monitoring/company-creation () -> Recent company creations
```

#### Access

Public — no credentials required.

#### Notes

- Unauthenticated — this controller is entirely public.
- Reads across organizations, not just the calling one.
- Discloses recent signups.

#### Errors

Plus the standard platform errors: `429`, `500`.

#### See also

- `GET /monitoring/domain-mappings`

### Responses

| Status | Meaning |
| --- | --- |
| `200` | Recent company creations |
| `429` | Too Many Requests — More than 100,000 requests from one IP within 5 minutes (configurable per deployment). CORS preflights and requests from inside the platform cluster are not counted. The limiter answers before the error filter, so the body is `{ statusCode, error, message }` with no `path`, `method` or `timeStamp`; the `RateLimit-*` response headers say when the window resets. |
| `500` | An unexpected error occurred. Our team has been notified. — An unhandled server-side failure. |

## GET /monitoring/domain-mappings

**Monitor domain mappings**

`operationId: MonitoringController_getDomainMappingMetrics`

Domain mappings recorded in the root org — which hostnames route where across the platform. Cross-org, and unauthenticated: it maps customers to their domains.

#### Signature

```http
GET /monitoring/domain-mappings () -> Domain mappings
```

#### Access

Public — no credentials required.

#### Notes

- Unauthenticated — this controller is entirely public.
- Reads across organizations, not just the calling one.
- Discloses customer domains.

#### Errors

Plus the standard platform errors: `429`, `500`.

#### See also

- `GET /monitoring/company-creation`

### Responses

| Status | Meaning |
| --- | --- |
| `200` | Domain mappings |
| `429` | Too Many Requests — More than 100,000 requests from one IP within 5 minutes (configurable per deployment). CORS preflights and requests from inside the platform cluster are not counted. The limiter answers before the error filter, so the body is `{ statusCode, error, message }` with no `path`, `method` or `timeStamp`; the `RateLimit-*` response headers say when the window resets. |
| `500` | An unexpected error occurred. Our team has been notified. — An unhandled server-side failure. |

## GET /monitoring/alert-notifications

**Monitor alerts and notifications**

`operationId: MonitoringController_getAlertNotificationMetrics`

Alerts and notifications recorded in the shared and root orgs — the platform-wide notification stream.

#### Signature

```http
GET /monitoring/alert-notifications () -> Alert notifications
```

#### Access

Public — no credentials required.

#### Notes

- Unauthenticated — this controller is entirely public.
- Reads across organizations, not just the calling one.

#### Errors

Plus the standard platform errors: `429`, `500`.

#### See also

- `GET /monitoring/alerts`

### Responses

| Status | Meaning |
| --- | --- |
| `200` | Alert notifications |
| `429` | Too Many Requests — More than 100,000 requests from one IP within 5 minutes (configurable per deployment). CORS preflights and requests from inside the platform cluster are not counted. The limiter answers before the error filter, so the body is `{ statusCode, error, message }` with no `path`, `method` or `timeStamp`; the `RateLimit-*` response headers say when the window resets. |
| `500` | An unexpected error occurred. Our team has been notified. — An unhandled server-side failure. |

## GET /monitoring/usage

**Monitor platform usage**

`operationId: MonitoringController_getUsageMetrics`

Platform usage and API consumption figures across organizations.

#### Signature

```http
GET /monitoring/usage () -> Usage statistics
```

#### Access

Public — no credentials required.

#### Notes

- Unauthenticated — this controller is entirely public.
- Reads across organizations, not just the calling one.

#### Errors

Plus the standard platform errors: `429`, `500`.

#### See also

- `GET /monitoring/overview`

### Responses

| Status | Meaning |
| --- | --- |
| `200` | Usage statistics |
| `429` | Too Many Requests — More than 100,000 requests from one IP within 5 minutes (configurable per deployment). CORS preflights and requests from inside the platform cluster are not counted. The limiter answers before the error filter, so the body is `{ statusCode, error, message }` with no `path`, `method` or `timeStamp`; the `RateLimit-*` response headers say when the window resets. |
| `500` | An unexpected error occurred. Our team has been notified. — An unhandled server-side failure. |

## GET /monitoring/web-activity

**Monitor web activity**

`operationId: MonitoringController_getWebActivityMetrics`

Site visits and user interactions recorded across the platform.

#### Signature

```http
GET /monitoring/web-activity () -> Web activity
```

#### Access

Public — no credentials required.

#### Notes

- Unauthenticated — this controller is entirely public.
- Reads across organizations, not just the calling one.

#### Errors

Plus the standard platform errors: `429`, `500`.

#### See also

- `GET /monitoring/user-activity`

### Responses

| Status | Meaning |
| --- | --- |
| `200` | Web activity |
| `429` | Too Many Requests — More than 100,000 requests from one IP within 5 minutes (configurable per deployment). CORS preflights and requests from inside the platform cluster are not counted. The limiter answers before the error filter, so the body is `{ statusCode, error, message }` with no `path`, `method` or `timeStamp`; the `RateLimit-*` response headers say when the window resets. |
| `500` | An unexpected error occurred. Our team has been notified. — An unhandled server-side failure. |

