---
title: Monitoring metric types
description: This page describes the monitoring metric types that are available in AM.
component: pingam
version: 7.3
page_id: pingam:maintenance-guide:monitoring-metric-types
canonical_url: https://docs.pingidentity.com/pingam/8/maintenance/monitoring-metrics.html
llms_txt: https://docs.pingidentity.com/pingam/llms.txt
docs_for_agents: https://developer.pingidentity.com/build-with-ai/docs-for-agents.md
keywords: ["Monitoring"]
section_ids:
  Summary: Summary
  fields: Fields
  prometheus_fields: Prometheus fields
  Timer: Timer
  fields_2: Fields
  prometheus_fields_2: Prometheus fields
  Gauge: Gauge
  fields_3: Fields
  prometheus_fields_3: Prometheus fields
  DistinctCounter: Distinct counter
  fields_4: Fields
  prometheus_fields_4: Prometheus fields
---

# Monitoring metric types

This page describes the monitoring metric types that are available in AM.

## Summary

Metric that samples observations, providing a count of observations, sum total of observed amounts, average rate of events, and moving average rates across sliding time windows.

### Fields

When using the Common REST, JMX, or Graphite interfaces, the `Summary` metric type has the following fields:

| Field       | Description                                                                                                                           |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| `_id`       | The metric ID.                                                                                                                        |
| `_type`     | The metric type.                                                                                                                      |
| `count`     | The number of events recorded for this metric.                                                                                        |
| `total`     | The sum of the values of events recorded for this metric.	As the increment is always 1, the total and the count will always be equal. |
| `m1_rate`   | The one-minute average rate.                                                                                                          |
| `m5_rate`   | The five-minute average rate.                                                                                                         |
| `m15_rate`  | The fifteen-minute average rate.                                                                                                      |
| `mean_rate` | The average rate.                                                                                                                     |
| `units`     | A description of the units the metric is presented in.                                                                                |

The following is an example of the `authentication.success` metric from the Common REST endpoint:

```json
{
  "_id" : "authentication.success",
  "_type" : "summary",
  "count" : 2,
  "total" : 2.0,
  "m1_rate" : 3.2668341885586836E-14,
  "m5_rate" : 7.794695663154025E-5,
  "m15_rate" : 0.01377545747021923,
  "mean_rate" : 8.238608027596704E-4,
  "units" : "events/second"
}
```

### Prometheus fields

The Prometheus endpoint does not provide rate-based statistics, as rates can be calculated from the time-series data.

When using the Prometheus interface, the `Summary` metric type has the following fields:

| Field    | Description                                      |
| -------- | ------------------------------------------------ |
| `# TYPE` | The metric ID, and type. Formatted as a comment. |
| `_count` | The number of events recorded.                   |
| `_total` | The sum of the amounts of events recorded        |

The following is an example of the `am_authentication{outcome="success"}` metric from the Prometheus endpoint:

```none
# TYPE am_authentication summary
am_authentication_count{outcome="success"} 2.0
am_authentication_total{outcome="success"} 2.0
```

## Timer

Metric that combines both rate and duration information.

### Fields

When using the Common REST, JMX, or Graphite interfaces, the `Timer` metric type has the following fields:

| Field            | Description                                                   |
| ---------------- | ------------------------------------------------------------- |
| `_id`            | The metric ID.                                                |
| `_type`          | The metric type.                                              |
| `count`          | The number of events recorded for this metric.                |
| `total`          | The sum of the durations recorded for this metric.            |
| `min`            | The minimum duration recorded for this metric.                |
| `max`            | The maximum duration recorded for this metric.                |
| `mean`           | The mean average duration recorded for this metric.           |
| `stddev`         | The standard deviation of durations recorded for this metric. |
| `duration_units` | The units used for measuring the durations in the metric.     |
| `p50`            | 50% of the durations recorded are at or below this value.     |
| `p75`            | 75% of the durations recorded are at or below this value.     |
| `p95`            | 95% of the durations recorded are at or below this value.     |
| `p98`            | 98% of the durations recorded are at or below this value.     |
| `p99`            | 99% of the durations recorded are at or below this value.     |
| `p999`           | 99.9% of the durations recorded are at or below this value.   |
| `m1_rate`        | The one-minute average rate.                                  |
| `m5_rate`        | The five-minute average rate.                                 |
| `m15_rate`       | The fifteen-minute average rate.                              |
| `mean_rate`      | The average rate.                                             |
| `rate_units`     | The units used for measuring the rate of the metric.          |

|   |                                                                                                                                                                                                                                                                                              |
| - | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|   | Duration-based values, such as `min`, `max`, and `p50`, are weighted towards newer data. By representing approximately the last five minutes of data, the timers make it easier to see recent changes in behavior, rather than a uniform average of recordings since the server was started. |

The following is an example of the `cts.connection.success` metric from the Common REST endpoint:

```json
{
  "_id" : "cts.connection.success",
  "_type" : "timer",
  "count" : 486,
  "total" : 80.0,
  "min" : 0.0,
  "max" : 1.0,
  "mean" : 0.1905615495053855,
  "stddev" : 0.39274399467782056,
  "duration_units" : "milliseconds",
  "p50" : 0.0,
  "p75" : 0.0,
  "p95" : 1.0,
  "p98" : 1.0,
  "p99" : 1.0,
  "p999" : 1.0,
  "m1_rate" : 0.1819109974890356,
  "m5_rate" : 0.05433445522996721,
  "m15_rate" : 0.03155662103953588,
  "mean_rate" : 0.020858521722211427,
  "rate_units" : "calls/second"
}
```

### Prometheus fields

The Prometheus endpoint does not provide rate-based statistics, as rates can be calculated from the time-series data.

When using the Prometheus interface, the `Timer` metric type has the following fields:

| Field                | Description                                                                                                         |
| -------------------- | ------------------------------------------------------------------------------------------------------------------- |
| `# TYPE`             | The metric ID, and type. Note that the `Timer` metric type is reported as a `Summary` type. Formatted as a comment. |
| `_count`             | The number of events recorded.                                                                                      |
| `_total`             | The sum of the durations recorded.                                                                                  |
| `{quantile="0.5"}`   | 50% of the durations are at or below this value.                                                                    |
| `{quantile="0.75"}`  | 75% of the durations are at or below this value.                                                                    |
| `{quantile="0.95"}`  | 95% of the durations are at or below this value.                                                                    |
| `{quantile="0.98"}`  | 98% of the durations are at or below this value.                                                                    |
| `{quantile="0.99"}`  | 99% of the durations are at or below this value.                                                                    |
| `{quantile="0.999"}` | 99.9% of the durations are at or below this value.                                                                  |

|   |                                                                                                                                                                                                                                                                     |
| - | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|   | Duration-based quantile values are weighted towards newer data. By representing approximately the last five minutes of data, the timers make it easier to see recent changes in behavior, rather than a uniform average of recordings since the server was started. |

The following is an example of the `am_cts_connection_seconds{outcome="success"}` metric from the Prometheus endpoint:

```none
# TYPE am_cts_connection_seconds summary
am_cts_connection_seconds{outcome="success",quantile="0.5",} 0.0
am_cts_connection_seconds{outcome="success",quantile="0.75",} 0.0
am_cts_connection_seconds{outcome="success",quantile="0.95",} 0.001
am_cts_connection_seconds{outcome="success",quantile="0.98",} 0.001
am_cts_connection_seconds{outcome="success",quantile="0.99",} 0.001
am_cts_connection_seconds{outcome="success",quantile="0.999",} 0.001
am_cts_connection_count{outcome="success",} 492.0
am_cts_connection_seconds_total{outcome="success",} 0.081
```

## Gauge

Metric for a numerical value that can increase or decrease. The value for a gauge is calculated when requested, and represents the state of the metric at that specific time.

### Fields

When using the Common REST, JMX, or Graphite interfaces, the `Gauge` metric type has the following fields:

| Field   | Description                      |
| ------- | -------------------------------- |
| `_id`   | The metric ID.                   |
| `_type` | The metric type.                 |
| `value` | The current value of the metric. |

The following is an example of the `jvm.used-memory` metric from the Common REST endpoint:

```json
{
  "_id" : "jvm.used-memory",
  "_type" : "gauge",
  "value" : 2.13385216E9
}
```

### Prometheus fields

When using the Prometheus interface, the `Timer` metric type has the following fields:

| Field         | Description                                                                  |
| ------------- | ---------------------------------------------------------------------------- |
| `# TYPE`      | The metric ID, and type. Formatted as a comment.                             |
| `{Metric ID}` | The current value. Large values may be represented in scientific E-notation. |

The following is an example of the `am_jvm_used_memory_bytes` metric from the Prometheus endpoint:

```none
# TYPE am_jvm_used_memory_bytes gauge
am_jvm_used_memory_bytes 2.13385216E9
```

## Distinct counter

Metric providing an estimate of the number of *unique* values recorded.

For example, this could be used to estimate the number of unique users who have authenticated, or unique client IP addresses.

|   |                                                                                                                                            |
| - | ------------------------------------------------------------------------------------------------------------------------------------------ |
|   | The `DistinctCounter` metric is calculated per instance of AM, and cannot be aggregated across multiple instances to get a site-wide view. |

### Fields

When using the Common REST, JMX, or Graphite interfaces, the `DistinctCounter` metric type has the following fields:

| Field   | Description                                                                                                            |
| ------- | ---------------------------------------------------------------------------------------------------------------------- |
| `_id`   | The metric ID.                                                                                                         |
| `_type` | The metric type. Note that the `distinctCounter` type is reported as a `gauge` type. The output formats are identical. |
| `value` | The calculated estimate of the number of unique values recorded in the metric.                                         |

The following is an example of the `authentication.unique-uuid.success` metric from the Common REST endpoint:

```json
{
  "_id" : "authentication.unique-uuid.success",
  "_type" : "gauge",
  "value" : 3.0
}
```

### Prometheus fields

When using the Prometheus interface, the `distinctCounter` metric type has the following fields:

| Field         | Description                                                                                                                                            |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `# TYPE`      | The metric ID, and type. Note that the `distinctCounter` type is reported as a `gauge` type. The output formats are identical. Formatted as a comment. |
| `{Metric ID}` | The calculated estimate of the number of unique values recorded in the metric.                                                                         |

The following is an example of the `am_authentication_unique_uuid{outcome="success"}` metric from the Prometheus endpoint:

```none
# TYPE am_authentication_unique_uuid gauge
am_authentication_unique_uuid{outcome="success"} 3.0
```
