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

# Severities

> aciona.me's four severities and how each tool's values are translated.

aciona.me works with a closed set of four severities.

| Severity   | Typical use                                     | Push |
| ---------- | ----------------------------------------------- | ---- |
| `critical` | Direct customer impact; someone must act now.   | ✅    |
| `high`     | Meaningful degradation; needs prompt attention. | ✅    |
| `warning`  | A warning sign; can wait for business hours.    | ✅    |
| `info`     | Informational; a record with no urgency.        | —    |

<Warning>
  Incidents with `info` severity **do not generate push notifications**. Email, Slack and Microsoft Teams are still sent.
</Warning>

## Recognized synonyms

Free-form values sent by tools are normalized. Comparison ignores case and whitespace.

| Final severity | Accepted values                                                                              |
| -------------- | -------------------------------------------------------------------------------------------- |
| `critical`     | `critical`, `crit`, `fatal`, `emergency`, `page`, `p1`, `sev1`                               |
| `high`         | `high`, `error`, `err`, `major`, `p2`, `sev2`                                                |
| `warning`      | `warning`, `warn`, `medium`, `minor`, `p3`, `sev3`                                           |
| `info`         | `info`, `information`, `informational`, `notice`, `low`, `debug`, `p4`, `p5`, `sev4`, `sev5` |

Missing or unrecognized values fall back to **`warning`**.

## Mapping per tool

<Tabs>
  <Tab title="Prometheus / Grafana">
    Taken from the `severity` label. Without it, `warning`.

    ```yaml theme={null}
    labels:
      severity: critical
      service: payments-api
    ```
  </Tab>

  <Tab title="Datadog">
    Taken from the **monitor priority** (`$ALERT_PRIORITY`):

    | Priority   | Severity   |
    | ---------- | ---------- |
    | `P1`       | `critical` |
    | `P2`       | `high`     |
    | `P3`       | `warning`  |
    | `P4`, `P5` | `info`     |

    With no priority, the alert type is used as a fallback.
  </Tab>

  <Tab title="New Relic">
    Taken from `priority`:

    | `priority` | Severity   |
    | ---------- | ---------- |
    | `CRITICAL` | `critical` |
    | `HIGH`     | `high`     |
    | `MEDIUM`   | `warning`  |
    | `LOW`      | `info`     |
  </Tab>

  <Tab title="Zabbix">
    Taken from the numeric event priority:

    | Zabbix             | Severity   |
    | ------------------ | ---------- |
    | 5 — Disaster       | `critical` |
    | 4 — High           | `high`     |
    | 3 — Average        | `warning`  |
    | 2 — Warning        | `warning`  |
    | 1 — Information    | `info`     |
    | 0 — Not classified | `info`     |
  </Tab>

  <Tab title="CloudWatch">
    CloudWatch has no native severity. The transform Lambda resolves it in layers:

    1. A marker in `AlarmDescription`: `[severity:critical]`
    2. A keyword in the alarm name: `critical`, `high`, `warning`, `info`
    3. Default: `warning`
  </Tab>
</Tabs>

## Best practices

<AccordionGroup>
  <Accordion title="Reserve critical for what wakes someone up" icon="siren">
    If everything is `critical`, nothing is. Severity should answer: "does this justify pulling someone out of bed?".
  </Accordion>

  <Accordion title="Use info for things that are only a record" icon="file-text">
    Deploys, successful job runs and configuration changes get recorded without generating push.
  </Accordion>

  <Accordion title="Standardize across tools" icon="equal">
    If Grafana uses `critical` and Datadog uses `P1`, both arrive as `critical` — but aligning the vocabulary makes life easier for whoever reads the alert.
  </Accordion>
</AccordionGroup>
