# `limit_violations`

## Purpose

The **limit_violations** dataset records each time a configured limit is exceeded, capturing the limit’s name/type, evaluation mode (per-event vs. periodic window with duration), configured threshold and unit, the observed value at violation time, and optional contextual dimensions (e.g., team, connector, route). This enables teams to monitor throttling and policy breaches, pinpoint noisy or abusive workloads, validate routing and delivery protections, and right-size limits to balance reliability and cost.

## Schema description

| Full JSON path                                     | Field data type          | Field data example                                                    | description                                      |
| -------------------------------------------------- | ------------------------ | --------------------------------------------------------------------- | ------------------------------------------------ |
| `limit_name`                                       | String                   | `"notifications-per-minute"`                                          | Human-readable name of the enforced limit.       |
| `limit_type`                                       | String                   | `"rate_limit"`                                                        | Implementation/type of limit (policy class).     |
| `limit_interval_type`                              | Enum                     | `"periodic"`                                                          | Evaluation mode: `per_event` or `periodic`.      |
| `limit_interval_periodic_details`                  | Object (when `periodic`) | `{ "duration_seconds": 60 }`                                          | Settings for periodic/windowed evaluation.       |
| `limit_interval_periodic_details.duration_seconds` | Number (integer, ≥1)     | `60`                                                                  | Window length in seconds.                        |
| `limit_threshold`                                  | Number (integer)         | `100`                                                                 | Configured threshold value.                      |
| `limit_threshold_unit`                             | Enum                     | `"count"`                                                             | Unit of the threshold: `count` or `chars`.       |
| `limit_event_type`                                 | String                   | `"notification"`                                                      | Event category the limit applies to.             |
| `limit_value`                                      | Number (integer)         | `137`                                                                 | Observed value that triggered the violation.     |
| `violation_context`                                | Object / Null            | `{ "teamId": 42, "connectorId": "slack-oncall", "route": "primary" }` | Dimension map (string/integer values) or `null`. |

______________________________________________________________________

## `labs.limit_violations` schema

{ `limitViolation`

Represents a single violation of an enforced limit, including threshold, interval semantics, and contextual dimensions.

`limit_name`

type: `string`\
Human-readable name of the enforced limit. *(required)*

`limit_type`

type: `string`\
Implementation/type of limit (e.g., internal code or policy class). *(required)*

`limit_interval_type`

Enum: `per_event`, `periodic`\
How the limit is evaluated: per individual event or over a rolling/periodic window. *(required)*

{ `limit_interval_periodic_details`

type: `object`\
Additional settings when `limit_interval_type = periodic`.

`duration_seconds`

type: `number` (integer, ≥ 1)\
Length of the evaluation window in seconds. *(required when periodic)*

}

`limit_threshold`

type: `number` (integer)\
Configured threshold for the limit (e.g., max messages). *(required)*

`limit_threshold_unit`

Enum: `count`, `chars`\
Unit for the threshold (items vs. characters). *(required)*

`limit_event_type`

type: `string`\
Event category the limit applies to (e.g., `notification`, `render`, `api_call`). *(required)*

`limit_value`

type: `number` (integer)\
Observed value that violated the limit (e.g., actual count/size). *(required)*

`violation_context`

type: `object` | `null`\
Key/value map with extra dimensions (e.g., `teamId`, `connectorId`, `route`). Values are strings or integers. *(required; may be null)*

}

______________________________________________________________________

## Next steps

Monitor notification delivery success and failure rates with [`notification.deliveries`](https://coralogix.com/docs/user-guides/data-layer/system_dataspace/notification_deliveries/index.md).
