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

# APM settings

> Set the health lines, the default Apdex threshold, long tasks, catalog requirements, service naming, environment mapping, and aliases; and, for the platform, cardinality limits and trace sampling.

**APM → Settings** holds what an organization sets for APM. Each card saves on its own with
**Save**, and **Undo changes** drops what was typed since. Saving requires `apm.manage`; owners,
administrators, and editors hold it. Without it the page reads the settings and changes nothing.

A saved setting applies at once on the node that saved it and within 30 seconds on the others.
Naming rules and the environment mapping apply to the spans read from then on; what APM already kept
keeps its names. Health lines, the default Apdex threshold, aliases, and catalog requirements apply
to every read, data already kept included.

## Collection quality

The first card reads the past day and lists what needs a fix and what a setting would improve:

| Finding | Meaning |
| - | - |
| Past the cardinality limits | Names of a kind, such as endpoints, went past their hourly limit and the rest were counted as **Other**. **Raise the limits** leads to the limits card for whoever manages the platform settings. |
| APM missed spans | The projection left gaps in the day. |
| APM is behind | The last complete minute is older than a few minutes. |
| Services that report no attribute | Services without `deployment.environment.name`, `service.version`, or `service.instance.id`. **Set it up** opens the OpenTelemetry guide. |
| Environments that differ only in case | Such as `Production` and `production`. **Read all as** adds the mapping to the environment card. |
| A name with a generated suffix | A service named like a pod, such as `checkout-7d9f8b6c5-x2x7k`. **Add a naming rule** adds a rule that reads it as `checkout`. |

A suggestion added to a card waits there until **Save**.

## Health and thresholds

| Setting | Default | Range |
| - | - | - |
| Error rate, **Warning from** and **Critical from** | 2% and 10% | The warning line is above 0 and below the critical one, which is at most 100%. |
| P95, **Warning from** and **Critical from** | 500 ms and 2,000 ms | The warning line is above 0 and below the critical one, which is at most 10 minutes. |
| **Default Apdex** T | 500 ms | Above 0, at most a minute. A service whose catalog entry sets its own T keeps it. The overview reads all services together at this T. |
| **Long task**, P99 from | 1,000 ms | 1 ms to 10 minutes. The endpoint list counts an endpoint as a long task from this P99. |

The lines decide the health of each service in the catalog, on its page, on the map, and in the
overview's health trend.

## Catalog requirements

For each of **Team**, **Owner**, and **Repository**, the tier from which the catalog asks for it:
**Not required**, or a tier and every tier above it. A service of such a tier without that field
reads **Needs** with the missing fields in the catalog. A service without a tier is asked nothing.

## Service naming

Naming rules rewrite service names as spans are read. Each rule is a regular expression and a
replacement, which may name the expression's groups as `$1` or `${name}`. The rules are tried in
order, and the first whose expression matches the name rewrites it; a rewrite to an empty name keeps
the name. **Try a service name** shows what a name would be read as.

An organization keeps up to 20 rules. Traces keep the names that spans carry, so a trace search uses
the name before the rule.

## Environment mapping

Each mapping reads an environment named one way as another, ignoring case, as spans are read: for
example `Production` and `prod` both as `production`. An environment is mapped at most once, and an
organization keeps up to 50 mappings.

## Service aliases

An alias names a service by an older name, each side with its namespace, `default` when left blank.
What the alias reported is read as the service's on every APM page, merged with what the service
reported itself, data already kept included. The service map and deployment reports follow the
aliases too. Removing an alias reads the two apart again.

A service is not its own alias, a name is an alias once, and an alias never leads to another alias.
An organization keeps up to 100 aliases. A page opened on the alias itself, from an older link,
still reads the alias's own data.

## Cardinality limits

Shown to whoever holds `sys.settings.manage`. The limits hold for the whole platform: each hour, APM
keeps apart at most this many of each kind and counts the rest as **Other**.

| Limit | Default |
| - | - |
| Services per organization | 200 |
| Endpoints per service | 32 |
| Dependencies per service | 16 |
| Operations per dependency | 32 |
| Error groups per service | 16 |
| Versions per service | 16 |
| Instances per service | 256 |

Each limit is a whole number from 1 to 100,000. Every node reads the limits again every 30 seconds.

## Trace sampling

Shown to whoever holds `sys.telemetry.read`; changing it requires `sys.telemetry.manage`. The policy
decides which traces the platform keeps once they end:

* **Normal traces kept** is the share kept of the traces that no rule, error, or slowness keeps;
  10% by default.
* Each rule matches the traces whose spans carry the **Service**, **Route**, and **Operation** it
  names, are at least **From ms** long, and failed when **Errors only** is set. The rule then keeps,
  drops, or keeps a share of them. Rules are tried in order before the normal share.

Saving publishes a new version of the policy to every node. APM counts every trace before sampling,
so the policy never changes APM figures, only which traces can be opened.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.