---
title: Monitoring metrics
description: AM exposes the monitoring metrics described in this page.
component: pingam
version: 7.4
page_id: pingam:maintenance:monitoring-metrics
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"]
page_aliases: ["maintenance-guide:monitoring-metrics.adoc"]
superseded_by: https://docs.pingidentity.com/pingam/8/maintenance/monitoring-metrics.html
section_ids:
  ref-authentication-metrics: Authentication metrics
  ref-authorization-metrics: Authorization Metrics
  ref-blacklisting-metrics: Denylisting metrics
  ref-CTS-metrics: CTS metrics
  ref-JVM-metrics: JVM metrics
  ref-oauth2-metrics: OAuth 2.0 metrics
  ref-session-metrics: Session metrics
---

# Monitoring metrics

AM exposes the monitoring metrics described in this page.

## Authentication metrics

AM exposes the following authentication-related monitoring metrics:

* `authentication.module.<auth-module-name>.<outcome>`

  Rate of successful/unsuccessful authentication module outcomes. (Summary)

  *Prometheus* syntax: `am_authentication_module{module=<auth-module-name>,outcome=<outcome>}`

  *Labels:*

  * `<auth-module-name>`

    Classname of the authentication module, for example:

    `Application`

    `DataStore`

  * `<outcome>`

    `success`

    `failure`

    `timeout`

* `authentication.unique-uuid.success`

  Count of unique identities which have successfully logged in. (DistinctCounter)

  *Prometheus* syntax: `am_authentication_unique_uuid{outcome=success}`

* `authentication.<outcome>`

  Rate of successful/unsuccessful/timed-out authentication flows. (Summary)

  *Prometheus* syntax: `am_authentication{outcome=<outcome>}`

  *Labels:*

  * `<outcome>`

    `success`

    `failure`

    `timeout`

## Authorization Metrics

AM exposes the following authorization-related monitoring metrics:

* `authorization.policy-set.<policy-set-name>.evaluate.action.<policy-action-name>.<outcome>`

  Rate of policy evaluation allowed/denied actions being returned under a given policy set. (Summary)

  *Prometheus* syntax: `am_authorization_policy_set_evaluate_action{policy_set=<policy-set-name>, action-type=<policy-action-name>,outcome=<outcome>}`

  *Labels:*

  * `<policy-set-name>`

    Name of the policy set, for example:

    `iPlanetAMWebAgentService`

    `oauth2Scopes`

  * `<policy-action-name>`

    Name of the action as specified in the policy, for example:

    `GET`

    `POST`

    `GRANT`

  * `<outcome>`

    `allow`

    `deny`

* `authorization.policy-set.<policy-set-name>.evaluate.advice.<policy-advice-type-name>`

  Rate of policy evaluation advice types being returned under a given policy set. (Summary)

  *Prometheus* syntax: `am_authorization_policy_set_evaluate_advice{policy_set=<policy-set-name>,advice-type=<policy-advice-type-name>}`

  *Labels:*

  * `<policy-set-name>`

    Name of the policy set, for example:

    `iPlanetAMWebAgentService`

    `oauth2Scopes`

  * `<policy-advice-type-name>`

    Name of the policy condition advice, for example:

    `AuthSchemeConditionAdvice`

    `AuthenticateToServiceConditionAdvice`

    `AuthLevelConditionAdvice`

    `AuthenticateToTreeConditionAdvice`

    `AuthenticateToRealmConditionAdvice`

    `TransactionConditionAdvice`

* `authorization.policy-set.evaluate.subject-cache.size`

  Number of cached subject membership relationships. (Gauge)

  *Prometheus* syntax: `am_authorization_policy_set_evaluate_subject_cache_size`

* `authorization.policy-set.<policy-set-name>.evaluate.<outcome>`

  Rate of successful/unsuccessful policy evaluation calls under a given policy set and time taken to perform this operation. (Timer)

  *Prometheus* syntax: `am_authorization_policy_set_evaluate{policy_set=<policy-set-name>,outcome=<outcome>}`

  *Labels:*

  * `<policy-set-name>`

    Name of the policy set, for example:

    `iPlanetAMWebAgentService`

    `oauth2Scopes`

  * `<outcome>`

    `success`

    `failure`

    `timeout`

* `authorization.policy-set.<policy-set-name>.policy.<operation>`

  Number of policies created/updated/deleted under a given policy set since this AM instance was started. (Summary)

  *Prometheus* syntax: `am_authorization_policy_set_policy{policy_set=<policy-set-name>,operation=<operation>}`

  *Labels:*

  * `<policy-set-name>`

    Name of the policy set, for example:

    `iPlanetAMWebAgentService`

    `oauth2Scopes`

  * `<operation>`

    `create`

    `update`

    `delete`

## Denylisting metrics

AM exposes the following denylisting monitoring metrics:

* `<blacklist-type>.blacklist.bloomfilter.check.<outcome>`

  Rate of bloom filter denylist checks. (Summary)

  *Prometheus* syntax: `am_blacklist_bloomfilter_check{blacklist_type=<blacklist-type>,outcome=<outcome>}`

  *Labels:*

  * `<blacklist-type>`

    `session.client-based` (Prometheus: `session_client_based`)

    `oauth2`

  * `<outcome>`

    `negative`. The bloom filter reports that the checked token is not blacklisted.

    `false-positive`. The bloom filter reports that the checked token may be blacklisted, but the token was not blacklisted.

    `positive`. The bloom filter reports that the checked token may be blacklisted, and this was found to be true.

* `<blacklist-type>.blacklist.cache.hit`

  Rate of cache hits of the denylist cache layer. (Summary)

  *Prometheus* syntax: `am_blacklist_cache{blacklist_type=<blacklist-type>,outcome=hit}`

  *Labels:*

  * `<blacklist-type>`

    `session.client-based` (Prometheus: `session_client_based`)

    `oauth2`

* `<blacklist-type>.blacklist.cache.miss`

  Rate of cache misses of the denylist cache layer. (Summary)

  *Prometheus* syntax: `am_blacklist_cache{blacklist_type=<blacklist-type>,outcome=miss}`

  *Labels:*

  * `<blacklist-type>`

    `session.client-based` (Prometheus: `session_client_based`)

    `oauth2`

* `<blacklist-type>.blacklist.check.<outcome>`

  Rate of denylist checks. (Summary)

  *Prometheus* syntax: `am_blacklist_check{blacklist_type=<blacklist-type>,outcome=<outcome>}`

  *Labels:*

  * `<blacklist-type>`

    `session.client-based` (Prometheus: `session_client_based`)

    `oauth2`

  * `<outcome>`

    `true`. The token is blacklisted.

    `false`. The token is not blacklisted.

* `<blacklist-type>.blacklist.cts.search.result`

  Rate of denylist entries returned by searches. (Summary)

  *Prometheus* syntax: `am_blacklist_cts_search_result{blacklist_type=<blacklist-type>}`

  *Labels:*

  * `<blacklist-type>`

    `session.client-based` (Prometheus: `session_client_based`)

    `oauth2`

* `<blacklist-type>.blacklist.cts.search.<outcome>`

  Tracks time to search CTS for denylist entries. (Timer)

  *Prometheus* syntax: `am_blacklist_cts_search{blacklist_type=<blacklist-type>,outcome=<outcome>}`

  *Labels:*

  * `<blacklist-type>`

    `session.client-based` (Prometheus: `session_client_based`)

    `oauth2`

  * `<outcome>`

    `success`

    `failure`

## CTS metrics

AM exposes the following CTS-related monitoring metrics:

* `cts.connection.<outcome>`

  Rate of successful/unsuccessful CTS connections to DS and time taken to obtain the connection. (Timer)

  *Prometheus* syntax: `am_cts_connection{outcome=<outcome>}`

  *Labels:*

  * `<outcome>`

    `success`

    `failure`

* `cts.connection.state.<status>`

  The number of connections in each state. (Counter)

  *Prometheus* syntax: `am_cts_connection_state{status=<status>}`

  *Labels:*

  * `<status>`

    `out`

    `pending`

* `cts.reaper.cache.size`

  Number of entries in the token reaper cache. (Gauge)

  *Prometheus* syntax: `am_cts_reaper_cache_size`

* `cts.reaper.cache.<token-type>.deletion.<outcome>`

  Rate of successful/unsuccessful token deletions from cache by token type. (Summary)

  *Prometheus* syntax: `am_cts_reaper_deletion{reaper_type=cache,token_type=<token-type>,outcome=<outcome>}`

  *Labels:*

  * `<token-type>`

    `session`

    `saml2`

    `oauth2`

    `rest`

    `oauth2-csrf-protection` (Prometheus: `oauth2_csrf_protection`)

    `resource-set` (Prometheus: `resource_set`)

    `uma-permission-ticket` (Prometheus: `uma_permission_ticket`)

    `uma-requesting-party` (Prometheus: `uma_requesting_party`)

    `uma-audit-entry` (Prometheus: `uma_audit_entry`)

    `session-blacklist` (Prometheus: `session_blacklist`)

    `uma-pending-request` (Prometheus: `uma_pending_request`)

    `sts`

    `oauth2-blacklist` (Prometheus: `oauth2_blacklist`)

    `oauth2-stateless` (Prometheus: `oauth2_stateless`)

    `push-notification` (Prometheus: `push_notification`)

    `cluster-notification` (Prometheus: `cluster_notification`)

    `oauth2-stateless-grant` (Prometheus: `oauth2_stateless_grant`)

    `transaction`

    `authentication-whitelist` (Prometheus: `authentication_whitelist`)

    `oauth2-grant-set` (Prometheus: `oauth2_grant_set`)

  * `<outcome>`

    `success`

    `failure`

* `cts.reaper.search.<token-type>.deletion.<outcome>`

  Rate of successful/unsuccessful token deletions from search by token type. (Summary)

  *Prometheus* syntax: `am_cts_reaper_deletion{reaper_type=search,token_type=<token-type>,outcome=<outcome>}`

  *Labels:*

  * `<token-type>`

    `session`

    `saml2`

    `oauth2`

    `rest`

    `oauth2-csrf-protection` (Prometheus: `oauth2_csrf_protection`)

    `resource-set` (Prometheus: `resource_set`)

    `uma-permission-ticket` (Prometheus: `uma_permission_ticket`)

    `uma-requesting-party` (Prometheus: `uma_requesting_party`)

    `uma-audit-entry` (Prometheus: `uma_audit_entry`)

    `session-blacklist` (Prometheus: `session_blacklist`)

    `uma-pending-request` (Prometheus: `uma_pending_request`)

    `sts`

    `oauth2-blacklist` (Prometheus: `oauth2_blacklist`)

    `oauth2-stateless` (Prometheus: `oauth2_stateless`)

    `push-notification` (Prometheus: `push_notification`)

    `cluster-notification` (Prometheus: `cluster_notification`)

    `oauth2-stateless-grant` (Prometheus: `oauth2_stateless_grant`)

    `transaction`

    `authentication-whitelist` (Prometheus: `authentication_whitelist`)

    `oauth2-grant-set` (Prometheus: `oauth2_grant_set`)

  * `<outcome>`

    `success`

    `failure`

* `cts.reaper.search.<outcome>`

  Rate of successful/unsuccessful search and time taken to perform this operation. (Timer)

  *Prometheus* syntax: `am_cts_reaper_search{outcome=<outcome>}`

  *Labels:*

  * `<outcome>`

    `success`

    `failure`

* `cts_task.<token-type>.<operation-type>.<outcome>`

  Rate of successful/unsuccessful CTS operation types, by token type and time taken to perform them. (Timer)

  *Prometheus* syntax: `am_cts_task{operation=<operation-type>,token-type=<token-type>,outcome=<outcome>}`

  *Labels:*

  * `<token-type>`

    `session`

    `saml2`

    `oauth2`

    `rest`

    `oauth2-csrf-protection` (Prometheus: `oauth2_csrf_protection`)

    `resource-set` (Prometheus: `resource_set`)

    `uma-permission-ticket` (Prometheus: `uma_permission_ticket`)

    `uma-requesting-party` (Prometheus: `uma_requesting_party`)

    `uma-audit-entry` (Prometheus: `uma_audit_entry`)

    `session-blacklist` (Prometheus: `session_blacklist`)

    `uma-pending-request` (Prometheus: `uma_pending_request`)

    `sts`

    `oauth2-blacklist` (Prometheus: `oauth2_blacklist`)

    `oauth2-stateless` (Prometheus: `oauth2_stateless`)

    `push-notification` (Prometheus: `push_notification`)

    `cluster-notification` (Prometheus: `cluster_notification`)

    `oauth2-stateless-grant` (Prometheus: `oauth2_stateless_grant`)

    `transaction`

    `authentication-whitelist` (Prometheus: `authentication_whitelist`)

    `oauth2-grant-set` (Prometheus: `oauth2_grant_set`)

  * `<operation-type>`

    `create`

    `read`

    `update`

    `delete`

    `patch`

    `query`

    `partial-query` (Prometheus: `partial_query`)

  * `<outcome>`

    `success`

    `failure`

## JVM metrics

AM exposes the JVM-related monitoring metrics covered in this section.

To get the metric name used by Prometheus, prepend `am_` to the names below, and replace period (`.`)) and hyphen (`-`) characters with underscore (`_`) characters.

For example, the `jvm.available-cpus` metric is named `am_jvm_available_cpus` in Prometheus.

|   |                                                                                                                                                                                                                                                                      |
| - | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|   | These metrics may depend on the JVM version and configuration. In particular, garbage-collector-related metrics depend on the garbage collector that the server uses. The garbage-collector metric names are *unstable*, and can change even in a minor JVM release. |

**JVM metrics by name**

| Name                                                                | Description                                                                                                                                        |
| ------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| `jvm.available-cpus`                                                | Number of processors available to the Java virtual machine. (Gauge)                                                                                |
| `jvm.class-loading.loaded`                                          | Number of classes loaded since the Java virtual machine started. (Gauge)                                                                           |
| `jvm.class-loading.unloaded`                                        | Number of classes unloaded since the Java virtual machine started. (Gauge)                                                                         |
| `jvm.free-used-memory`                                              | Amount of free memory.                                                                                                                             |
| `jvm.used-memory`                                                   | Amount of used memory.                                                                                                                             |
| `jvm.max-memory`                                                    | Maximum amount of memory.                                                                                                                          |
| `jvm.garbage-collector.Copy.count`                                  | Number of collections performed by the "copy" garbage collection algorithm. (Gauge)                                                                |
| `jvm.garbage-collector.Copy.time`                                   | Approximate accumulated time taken by the "copy" garbage collection algorithm. (Gauge)                                                             |
| `jvm.garbage-collector.MarkSweepCompact.count`                      | Number of collections performed by the "mark sweep" garbage collection algorithm. (Gauge)                                                          |
| `jvm.garbage-collector.MarkSweepCompact.time`                       | Approximate accumulated time taken by the "mark sweep" garbage collection algorithm. (Gauge)                                                       |
| `jvm.memory-usage.heap.init`                                        | Amount of heap memory the Java virtual machine initially requested from the operating system. (Gauge)                                              |
| `jvm.memory-usage.heap.max`                                         | Maximum amount of heap memory the Java virtual machine attempts to use. (Gauge)                                                                    |
| `jvm.memory-usage.heap.committed`                                   | Amount of heap memory committed for the Java virtual machine to use. (Gauge)                                                                       |
| `jvm.memory-usage.heap.used`                                        | Amount of heap memory used by the Java virtual machine. (Gauge)                                                                                    |
| `jvm.memory-usage.heap.usage`                                       | Percentage of heap memory used out of the maximum available. (Gauge).                                                                              |
| `jvm.memory-usage.non-heap.init`                                    | Amount of non-heap memory the Java virtual machine initially requested from the operating system. (Gauge)                                          |
| `jvm.memory-usage.non-heap.max`                                     | Maximum amount of non-heap memory the Java virtual machine attempts to use. (Gauge)                                                                |
| `jvm.memory-usage.non-heap.committed`                               | Amount of non-heap memory that is committed for the Java virtual machine to use. (Gauge)                                                           |
| `jvm.memory-usage.non-heap.used`                                    | Amount of non-heap memory used by the Java virtual machine. (Gauge)                                                                                |
| `jvm.memory-usage.non-heap.usage`                                   | Percentage of non-heap memory used out of the maximum available. (Gauge)                                                                           |
| `jvm.memory-usage.pools.Compressed-Class-Space.init`                | Amount of "compressed class space" memory the Java virtual machine initially requested from the operating system. (Gauge)                          |
| `jvm.memory-usage.pools.Compressed-Class-Space.max`                 | Maximum amount of "compressed class space" memory the Java virtual machine attempts to use. (Gauge)                                                |
| `jvm.memory-usage.pools.Compressed-Class-Space.committed`           | Amount of "compressed class space" memory committed for the Java virtual machine to use. (Gauge)                                                   |
| `jvm.memory-usage.pools.Compressed-Class-Space.used`                | Amount of "compressed class space" memory used by the Java virtual machine. (Gauge)                                                                |
| `jvm.memory-usage.pools.Compressed-Class-Space.usage`               | Percentage of "compressed class space" memory used out of the maximum available. (Gauge)                                                           |
| `jvm.memory-usage.pools.CodeHeap-'non-nmethods'.init`               | Amount of CodeHeap "non-nmethods" memory the Java virtual machine initially requested from the operating system. (Gauge)                           |
| `jvm.memory-usage.pools.CodeHeap-'non-nmethods'.max`                | Maximum amount of CodeHeap "non-nmethods" memory the Java virtual machine attempts to use. (Gauge)                                                 |
| `jvm.memory-usage.pools.CodeHeap-'non-nmethods'.committed`          | Amount of CodeHeap "non-nmethods" memory committed for the Java virtual machine to use. (Gauge)                                                    |
| `jvm.memory-usage.pools.CodeHeap-'non-nmethods'.used`               | Amount of CodeHeap "non-nmethods" memory used by the Java virtual machine. (Gauge)                                                                 |
| `jvm.memory-usage.pools.CodeHeap-'non-nmethods'.usage`              | Percentage of CodeHeap "non-nmethods" memory used out of the maximum available. (Gauge)                                                            |
| `jvm.memory-usage.pools.CodeHeap-'non-profiled-nmethods'.init`      | Amount of CodeHeap "non-profiled-nmethods" memory the Java virtual machine initially requested from the operating system. (Gauge)                  |
| `jvm.memory-usage.pools.CodeHeap-'non-profiled-nmethods'.max`       | Maximum amount of CodeHeap "non-profiled-nmethods" memory the Java virtual machine attempts to use. (Gauge)                                        |
| `jvm.memory-usage.pools.CodeHeap-'non-profiled-nmethods'.committed` | Amount of CodeHeap "non-profiled-nmethods" memory committed for the Java virtual machine to use. (Gauge)                                           |
| `jvm.memory-usage.pools.CodeHeap-'non-profiled-nmethods'.used`      | Amount of CodeHeap "non-profiled-nmethods" memory used by the Java virtual machine. (Gauge)                                                        |
| `jvm.memory-usage.pools.CodeHeap-'non-profiled-nmethods'.usage`     | Percentage of CodeHeap "non-profiled-nmethods" memory used out of the maximum available. (Gauge)                                                   |
| `jvm.memory-usage.pools.CodeHeap-'profiled-nmethods'.init`          | Amount of CodeHeap "profiled-nmethods" memory the Java virtual machine initially requested from the operating system. (Gauge)                      |
| `jvm.memory-usage.pools.CodeHeap-'profiled-nmethods'.max`           | Maximum amount of CodeHeap "profiled-nmethods" memory the Java virtual machine attempts to use. (Gauge)                                            |
| `jvm.memory-usage.pools.CodeHeap-'profiled-nmethods'.committed`     | Amount of CodeHeap "profiled-nmethods" memory committed for the Java virtual machine to use. (Gauge)                                               |
| `jvm.memory-usage.pools.CodeHeap-'profiled-nmethods'.used`          | Amount of CodeHeap "profiled-nmethods" memory used by the Java virtual machine. (Gauge)                                                            |
| `jvm.memory-usage.pools.CodeHeap-'profiled-nmethods'.usage`         | Percentage of CodeHeap "profiled-nmethods" memory used out of the maximum available. (Gauge)                                                       |
| `jvm.memory-usage.pools.Metaspace.init`                             | Amount of "metaspace" memory the Java virtual machine initially requested from the operating system. (Gauge)                                       |
| `jvm.memory-usage.pools.Metaspace.max`                              | Maximum amount of "metaspace" memory the Java virtual machine attempts to use. (Gauge)                                                             |
| `jvm.memory-usage.pools.Metaspace.committed`                        | Amount of "metaspace" memory committed for the Java virtual machine to use. (Gauge)                                                                |
| `jvm.memory-usage.pools.Metaspace.used`                             | Amount of "metaspace" memory used by the Java virtual machine. (Gauge)                                                                             |
| `jvm.memory-usage.pools.Metaspace.usage`                            | Percentage of "metaspace" memory used out of the maximum available. (Gauge)                                                                        |
| `jvm.memory-usage.pools.Eden-Space.init`                            | Amount of "eden space" memory the Java virtual machine initially requested from the operating system. (Gauge)                                      |
| `jvm.memory-usage.pools.Eden-Space.max`                             | Maximum amount of "eden space" memory (young generation) the Java virtual machine attempts to use. (Gauge)                                         |
| `jvm.memory-usage.pools.Eden-Space.committed`                       | Amount of "eden space" memory (young generation) committed for the Java virtual machine to use. (Gauge)                                            |
| `jvm.memory-usage.pools.Eden-Space.used-after-gc`                   | Amount of "eden space" memory (young generation) after the last time garbage collection recycled unused objects in this memory pool. (Gauge)       |
| `jvm.memory-usage.pools.Eden-Space.used`                            | Amount of "eden space" memory (young generation) used by the Java virtual machine. (Gauge)                                                         |
| `jvm.memory-usage.pools.Eden-Space.usage`                           | Percentage of "eden space" memory (young generation) used out of the maximum available. (Gauge)                                                    |
| `jvm.memory-usage.pools.Tenured-Gen.init`                           | Amount of "tenured generation" (old generation) memory the Java virtual machine initially requested from the operating system. (Gauge)             |
| `jvm.memory-usage.pools.Tenured-Gen.max`                            | Maximum amount of "tenured generation" (old generation) memory the Java virtual machine attempts to use. (Gauge)                                   |
| `jvm.memory-usage.pools.Tenured-Gen.committed`                      | Amount of "tenured generation" memory (old generation) committed for the Java virtual machine to use. (Gauge)                                      |
| `jvm.memory-usage.pools.Tenured-Gen.used-after-gc`                  | Amount of "tenured generation" memory (old generation) after the last time garbage collection recycled unused objects in this memory pool. (Gauge) |
| `jvm.memory-usage.pools.Tenured-Gen.used`                           | Amount of "tenured generation" memory (old generation) used by the Java virtual machine. (Gauge)                                                   |
| `jvm.memory-usage.pools.Tenured-Gen.usage`                          | Percentage of "tenured generation" memory (old generation) used out of the maximum available. (Gauge)                                              |
| `jvm.memory-usage.pools.Survivor-Space.init`                        | Amount of "survivor space" memory (young generation) the Java virtual machine initially requested from the operating system. (Gauge)               |
| `jvm.memory-usage.pools.Survivor-Space.max`                         | Maximum amount of "survivor space" memory (young generation) the Java virtual machine attempts to use. (Gauge)                                     |
| `jvm.memory-usage.pools.Survivor-Space.committed`                   | Amount of "survivor space" memory (young generation) committed for the Java virtual machine to use. (Gauge)                                        |
| `jvm.memory-usage.pools.Survivor-Space.used-after-gc`               | Amount of "survivor space" memory (young generation) after the last time garbage collection recycled unused objects in this memory pool. (Gauge)   |
| `jvm.memory-usage.pools.Survivor-Space.used`                        | Amount of "survivor space" memory (young generation) used by the Java virtual machine. (Gauge)                                                     |
| `jvm.memory-usage.pools.Survivor-Space.usage`                       | Percentage of "survivor space" memory (young generation) used out of the maximum available. (Gauge)                                                |
| `jvm.memory-usage.total.committed`                                  | Amount of memory committed for the Java virtual machine to use. (Gauge)                                                                            |
| `jvm.memory-usage.total.init`                                       | Amount of memory the Java virtual machine initially requested from the operating system. (Gauge)                                                   |
| `jvm.memory-usage.total.max`                                        | Maximum amount of memory the Java virtual machine attempts to use. (Gauge)                                                                         |
| `jvm.memory-usage.total.used`                                       | Amount of memory used by the Java virtual machine. (Gauge)                                                                                         |
| `jvm.thread-state.blocked.count`                                    | Number of threads in the BLOCKED state. (Gauge)                                                                                                    |
| `jvm.thread-state.count`                                            | Number of live threads including both daemon and non-daemon threads. (Gauge)                                                                       |
| `jvm.thread-state.daemon.count`                                     | Number of live daemon threads. (Gauge)                                                                                                             |
| `jvm.thread-state.new.count`                                        | Number of threads in the NEW state. (Gauge)                                                                                                        |
| `jvm.thread-state.runnable.count`                                   | Number of threads in the RUNNABLE state. (Gauge)                                                                                                   |
| `jvm.thread-state.terminated.count`                                 | Number of threads in the TERMINATED state. (Gauge)                                                                                                 |
| `jvm.thread-state.timed_waiting.count`                              | Number of threads in the TIMED_WAITING state. (Gauge)                                                                                              |
| `jvm.thread-state.waiting.count`                                    | Number of threads in the WAITING state. (Gauge)                                                                                                    |

## OAuth 2.0 metrics

AM exposes the following OAuth 2.0 monitoring metrics:

* `oauth2.grant.<grant-type>`

  Rate of OAuth 2.0 grant completion by grant type. (Summary)

  *Prometheus* syntax: `am_oauth2_grant{grant_type=<grant-type>}`

  *Labels:*

  * `<grant-type>`

    `authorization-code` (Prometheus: `authorization_code`)

    `client-credentials` (Prometheus: `client_credentials`)

    `device-code` (Prometheus: `device_code`)

    `implicit`

    `refresh`

    `resource-owner-password` (Prometheus: `resource_owner_password`)

* `oauth2.grant.revoke`

  Rate of OAuth 2.0 grant revocation. (Summary)

  *Prometheus* syntax: \`am_oauth2_grant_revoke

* `oauth2.token.<token-type>.issue`

  Rate of OAuth 2.0 token issuance by token type. (Summary)

  *Prometheus* syntax: `am_oauth2_token_issue{token_type=<token-type>}`

  *Labels:*

  * `<token-type>`

    `access-token` (Prometheus: `access_token`)

    `authorization-code` (Prometheus: `authorization_code`)

    `device-code` (Prometheus: `device_code`)

    `id-token`. OpenID Connect ID token. (Prometheus: `id_token`)

    `ops`. OpenID Connect Ops token for session management.

    `permission-ticket`. User-Managed Access permission ticket. (Prometheus: `permission_ticket`)

    `refresh-token` (Prometheus: `refresh_token`)

* `oauth2.token.access-token.revoke`

  Rate of OAuth 2.0 access token revocation. (Summary)

  *Prometheus* syntax: `am_oauth2_token_revoke{token_type=access_token}`

* `oauth2.token.read-as-jwt.<outcome>`

  Rate of successfully/unsuccessfully reading OAuth 2.0 JSON Web Tokens (JWT). (Timer)

  *Prometheus* syntax: `am_oauth2_token_read_as_jwt{outcome=<outcome>}`

  *Labels:*

  * `<outcome>`

    `success`

    `failure`

## Session metrics

AM exposes the following session-related monitoring metrics:

* `session.authentication-in-memory.store.size`

  Number of authentication sessions stored in the in-memory authentication session store. (Gauge)

  *Prometheus* syntax: `am_session_authentication_in_memory_store_size`

* `session.cts-based.cache.eviction`

  Rate of evictions from the session cache. (Summary)

  *Prometheus* syntax: `am_session_cts_based_cache_eviction`

* `session.cts-based.cache.size`

  Number of sessions in the session cache. (Gauge)

  *Prometheus* syntax: `am_session_cts_based_cache_size`

* `session.cts-based.cache.hit`

  Rate of cache hits for the session cache. (Summary)

  *Prometheus* syntax: `am_session_cts_based_cache{outcome=hit}`

* `session.cts-based.cache.miss`

  Rate of cache misses for the session cache. (Summary)

  *Prometheus* syntax: `am_session_cts_based_cache{outcome=miss}`

* `session.<session-type>.lifetime`

  Rate of session lifetimes. (Timer)

  *Prometheus* syntax: `am_session_lifetime{session_type=<session-type>}`

  *Labels:*

  * `<session-type>`

    `authentication-in-memory`. In-memory *authentication* sessions used to track authentication progress. (Prometheus: `authentication_in_memory`)

    `authentication-cts-based`. Server-side *authentication* sessions used to track authentication progress. (Prometheus: `authentication_cts_based`)

    `authentication-client-based`. Client-side *authentication* sessions used to track authentication progress. (Prometheus: `authentication_client_based`)

    `cts-based`. Server-side sessions issued after successful authentication. (Prometheus: `cts_based`)

    `client-based`. Client-side sessions; for example in a browser cookie, issued after successful authentication. (Prometheus: `client_based`)

* `session.<session-type>.add-listener.<outcome>`

  Rate of successful/unsuccessful p-search listener adds and time taken to perform this operation. (Timer)

  *Prometheus* syntax: `am_session{session_type=<session-type>,operation=add-listener, outcome=<outcome>}`

  *Labels:*

  * `<session-type>`

    `authentication-in-memory`. In-memory *authentication* sessions used to track authentication progress. (Prometheus: `authentication_in_memory`)

    `authentication-cts-based`. Server-side *authentication* sessions used to track authentication progress. (Prometheus: `authentication_cts_based`)

    `authentication-client-based`. Client-side *authentication* sessions used to track authentication progress. (Prometheus: `authentication_client_based`)

    `cts-based`. Server-side sessions issued after successful authentication. (Prometheus: `cts_based`)

    `client-based`. Client-side sessions; for example in a browser cookie, issued after successful authentication. (Prometheus: `client_based`)

  * `<outcome>`

    `success`

    `failure`

* `session.<session-type>.add-pll-listener.<outcome>`

  Rate of successful/unsuccessful PLL listener adds and time taken to perform this operation. (Timer)

  *Prometheus* syntax: `am_session{session_type=<session-type>,operation=add-pll-listener, outcome=<outcome>}`

  *Labels:*

  * `<session-type>`

    `authentication-in-memory`. In-memory *authentication* sessions used to track authentication progress. (Prometheus: `authentication_in_memory`)

    `authentication-cts-based`. Server-side *authentication* sessions used to track authentication progress. (Prometheus: `authentication_cts_based`)

    `authentication-client-based`. Client-side *authentication* sessions used to track authentication progress. (Prometheus: `authentication_client_based`)

    `cts-based`. Server-side sessions issued after successful authentication. (Prometheus: `cts_based`)

    `client-based`. Client-side sessions; for example in a browser cookie, issued after successful authentication. (Prometheus: `client_based`)

  * `<outcome>`

    `success`

    `failure`

* `session.<session-type>.check-exists.<outcome>`

  Rate of successful/unsuccessful calls to check if a session exists and time taken to perform this operation. (Timer)

  *Prometheus* syntax: `am_session{session_type=<session-type>,operation=check-exists, outcome=<outcome>}`

  *Labels:*

  * `<session-type>`

    `authentication-in-memory`. In-memory *authentication* sessions used to track authentication progress. (Prometheus: `authentication_in_memory`)

    `authentication-cts-based`. Server-side *authentication* sessions used to track authentication progress. (Prometheus: `authentication_cts_based`)

    `authentication-client-based`. Client-side *authentication* sessions used to track authentication progress. (Prometheus: `authentication_client_based`)

    `cts-based`. Server-side sessions issued after successful authentication. (Prometheus: `cts_based`)

    `client-based`. Client-side sessions; for example in a browser cookie, issued after successful authentication. (Prometheus: `client_based`)

  * `<outcome>`

    `success`

    `failure`

* `session.<session-type>.create.<outcome>`

  Rate of successful/unsuccessful session creation and time taken to perform this operation. (Timer)

  *Prometheus* syntax: `am_session{session_type=<session-type>,operation=create, outcome=<outcome>}`

  *Labels:*

  * `<session-type>`

    `authentication-in-memory`. In-memory *authentication* sessions used to track authentication progress. (Prometheus: `authentication_in_memory`)

    `authentication-cts-based`. Server-side *authentication* sessions used to track authentication progress. (Prometheus: `authentication_cts_based`)

    `authentication-client-based`. Client-side *authentication* sessions used to track authentication progress. (Prometheus: `authentication_client_based`)

    `cts-based`. Server-side sessions issued after successful authentication. (Prometheus: `cts_based`)

    `client-based`. Client-side sessions; for example in a browser cookie, issued after successful authentication. (Prometheus: `client_based`)

  * `<outcome>`

    `success`

    `failure`

* `session.<session-type>.destroy.<outcome>`

  Rate of successful/unsuccessful session destroy and time taken to perform this operation. (Timer)

  *Prometheus* syntax: `am_session{session_type=<session-type>,operation=destroy, outcome=<outcome>}`

  *Labels:*

  * `<session-type>`

    `authentication-in-memory`. In-memory *authentication* sessions used to track authentication progress. (Prometheus: `authentication_in_memory`)

    `authentication-cts-based`. Server-side *authentication* sessions used to track authentication progress. (Prometheus: `authentication_cts_based`)

    `authentication-client-based`. Client-side *authentication* sessions used to track authentication progress. (Prometheus: `authentication_client_based`)

    `cts-based`. Server-side sessions issued after successful authentication. (Prometheus: `cts_based`)

    `client-based`. Client-side sessions; for example in a browser cookie, issued after successful authentication. (Prometheus: `client_based`)

  * `<outcome>`

    `success`

    `failure`

* `session.<session-type>.get-restricted-token-id.<outcome>`

  Rate of successful/unsuccessful restricted token ID dereferencing and time taken to perform this operation. (Timer)

  *Prometheus* syntax: `am_session{session_type=<session-type>,operation=get-restricted-token-id, outcome=<outcome>}`

  *Labels:*

  * `<session-type>`

    `authentication-in-memory`. In-memory *authentication* sessions used to track authentication progress. (Prometheus: `authentication_in_memory`)

    `authentication-cts-based`. Server-side *authentication* sessions used to track authentication progress. (Prometheus: `authentication_cts_based`)

    `authentication-client-based`. Client-side *authentication* sessions used to track authentication progress. (Prometheus: `authentication_client_based`)

    `cts-based`. Server-side sessions issued after successful authentication. (Prometheus: `cts_based`)

    `client-based`. Client-side sessions; for example in a browser cookie, issued after successful authentication. (Prometheus: `client_based`)

  * `<outcome>`

    `success`

    `failure`

* `session.<session-type>.idle-timeout.<outcome>`

  Rate of successful/unsuccessful session idle time out and time taken to perform this operation. (Timer)

  *Prometheus* syntax: `am_session{session_type=<session-type>,operation=idle-timeout, outcome=<outcome>}`

  *Labels:*

  * `<session-type>`

    `authentication-in-memory`. In-memory *authentication* sessions used to track authentication progress. (Prometheus: `authentication_in_memory`)

    `authentication-cts-based`. Server-side *authentication* sessions used to track authentication progress. (Prometheus: `authentication_cts_based`)

    `authentication-client-based`. Client-side *authentication* sessions used to track authentication progress. (Prometheus: `authentication_client_based`)

    `cts-based`. Server-side sessions issued after successful authentication. (Prometheus: `cts_based`)

    `client-based`. Client-side sessions; for example in a browser cookie, issued after successful authentication. (Prometheus: `client_based`)

  * `<outcome>`

    `success`

    `failure`

* `session.<session-type>.logout.<outcome>`

  Rate of successful/unsuccessful session logout and time taken to perform this operation. (Timer)

  *Prometheus* syntax: `am_session{session_type=<session-type>,operation=logout, outcome=<outcome>}`

  *Labels:*

  * `<session-type>`

    `authentication-in-memory`. In-memory *authentication* sessions used to track authentication progress. (Prometheus: `authentication_in_memory`)

    `authentication-cts-based`. Server-side *authentication* sessions used to track authentication progress. (Prometheus: `authentication_cts_based`)

    `authentication-client-based`. Client-side *authentication* sessions used to track authentication progress. (Prometheus: `authentication_client_based`)

    `cts-based`. Server-side sessions issued after successful authentication. (Prometheus: `cts_based`)

    `client-based`. Client-side sessions; for example in a browser cookie, issued after successful authentication. (Prometheus: `client_based`)

  * `<outcome>`

    `success`

    `failure`

* `session.<session-type>.max-timeout.<outcome>`

  Rate of successful/unsuccessful session end of life and time taken to perform this operation. (Timer)

  *Prometheus* syntax: `am_session{session_type=<session-type>,operation=max-timeout, outcome=<outcome>}`

  *Labels:*

  * `<session-type>`

    `authentication-in-memory`. In-memory *authentication* sessions used to track authentication progress. (Prometheus: `authentication_in_memory`)

    `authentication-cts-based`. Server-side *authentication* sessions used to track authentication progress. (Prometheus: `authentication_cts_based`)

    `authentication-client-based`. Client-side *authentication* sessions used to track authentication progress. (Prometheus: `authentication_client_based`)

    `cts-based`. Server-side sessions issued after successful authentication. (Prometheus: `cts_based`)

    `client-based`. Client-side sessions; for example in a browser cookie, issued after successful authentication. (Prometheus: `client_based`)

  * `<outcome>`

    `success`

    `failure`

* `session.<session-type>.read-all.<outcome>`

  Rate of successful/unsuccessful requests to read all sessions and time taken to perform this operation. (Timer)

  *Prometheus* syntax: `am_session{session_type=<session-type>,operation=read-all, outcome=<outcome>}`

  *Labels:*

  * `<session-type>`

    `authentication-in-memory`. In-memory *authentication* sessions used to track authentication progress. (Prometheus: `authentication_in_memory`)

    `authentication-cts-based`. Server-side *authentication* sessions used to track authentication progress. (Prometheus: `authentication_cts_based`)

    `authentication-client-based`. Client-side *authentication* sessions used to track authentication progress. (Prometheus: `authentication_client_based`)

    `cts-based`. Server-side sessions issued after successful authentication. (Prometheus: `cts_based`)

    `client-based`. Client-side sessions; for example in a browser cookie, issued after successful authentication. (Prometheus: `client_based`)

  * `<outcome>`

    `success`

    `failure`

* `session.<session-type>.read.<outcome>`

  Rate of successful/unsuccessful session reads and time taken to perform this operation. (Timer)

  *Prometheus* syntax: `am_session{session_type=<session-type>,operation=read, outcome=<outcome>}`

  *Labels:*

  * `<session-type>`

    `authentication-in-memory`. In-memory *authentication* sessions used to track authentication progress. (Prometheus: `authentication_in_memory`)

    `authentication-cts-based`. Server-side *authentication* sessions used to track authentication progress. (Prometheus: `authentication_cts_based`)

    `authentication-client-based`. Client-side *authentication* sessions used to track authentication progress. (Prometheus: `authentication_client_based`)

    `cts-based`. Server-side sessions issued after successful authentication. (Prometheus: `cts_based`)

    `client-based`. Client-side sessions; for example in a browser cookie, issued after successful authentication. (Prometheus: `client_based`)

  * `<outcome>`

    `success`

    `failure`

* `session.<session-type>.refresh.<outcome>`

  Rate of successful/unsuccessful session refresh and time taken to perform this operation. (Timer)

  *Prometheus* syntax: `am_session{session_type=<session-type>,operation=refresh, outcome=<outcome>}`

  *Labels:*

  * `<session-type>`

    `authentication-in-memory`. In-memory *authentication* sessions used to track authentication progress. (Prometheus: `authentication_in_memory`)

    `authentication-cts-based`. Server-side *authentication* sessions used to track authentication progress. (Prometheus: `authentication_cts_based`)

    `authentication-client-based`. Client-side *authentication* sessions used to track authentication progress. (Prometheus: `authentication_client_based`)

    `cts-based`. Server-side sessions issued after successful authentication. (Prometheus: `cts_based`)

    `client-based`. Client-side sessions; for example in a browser cookie, issued after successful authentication. (Prometheus: `client_based`)

  * `<outcome>`

    `success`

    `failure`

* `session.<session-type>.search.<outcome>`

  Rate of successful/unsuccessful session searches and time taken to perform this operation. (Timer)

  *Prometheus* syntax: `am_session{session_type=<session-type>,operation=search, outcome=<outcome>}`

  *Labels:*

  * `<session-type>`

    `authentication-in-memory`. In-memory *authentication* sessions used to track authentication progress. (Prometheus: `authentication_in_memory`)

    `authentication-cts-based`. Server-side *authentication* sessions used to track authentication progress. (Prometheus: `authentication_cts_based`)

    `authentication-client-based`. Client-side *authentication* sessions used to track authentication progress. (Prometheus: `authentication_client_based`)

    `cts-based`. Server-side sessions issued after successful authentication. (Prometheus: `cts_based`)

    `client-based`. Client-side sessions; for example in a browser cookie, issued after successful authentication. (Prometheus: `client_based`)

  * `<outcome>`

    `success`

    `failure`

* `session.<session-type>.set-external-property.<outcome>`

  Rate of successful/unsuccessful setting a property on a session and time taken to perform this operation. (Timer)

  *Prometheus* syntax: `am_session{session_type=<session-type>,operation=set-external-property, outcome=<outcome>}`

  *Labels:*

  * `<session-type>`

    `authentication-in-memory`. In-memory *authentication* sessions used to track authentication progress. (Prometheus: `authentication_in_memory`)

    `authentication-cts-based`. Server-side *authentication* sessions used to track authentication progress. (Prometheus: `authentication_cts_based`)

    `authentication-client-based`. Client-side *authentication* sessions used to track authentication progress. (Prometheus: `authentication_client_based`)

    `cts-based`. Server-side sessions issued after successful authentication. (Prometheus: `cts_based`)

    `client-based`. Client-side sessions; for example in a browser cookie, issued after successful authentication. (Prometheus: `client_based`)

  * `<outcome>`

    `success`

    `failure`

* `session.<session-type>.set-property.<outcome>`

  Rate of successful/unsuccessful session property setting and time taken to perform this operation. (Timer)

  *Prometheus* syntax: `am_session{session_type=<session-type>,operation=set-property, outcome=<outcome>}`

  *Labels:*

  * `<session-type>`

    `authentication-in-memory`. In-memory *authentication* sessions used to track authentication progress. (Prometheus: `authentication_in_memory`)

    `authentication-cts-based`. Server-side *authentication* sessions used to track authentication progress. (Prometheus: `authentication_cts_based`)

    `authentication-client-based`. Client-side *authentication* sessions used to track authentication progress. (Prometheus: `authentication_client_based`)

    `cts-based`. Server-side sessions issued after successful authentication. (Prometheus: `cts_based`)

    `client-based`. Client-side sessions; for example in a browser cookie, issued after successful authentication. (Prometheus: `client_based`)

  * `<outcome>`

    `success`

    `failure`

* `session.<session-type>.validate.<outcome>`

  Rate of successful/unsuccessful session validation and time taken to perform this operation. (Timer)

  *Prometheus* syntax: `am_session{session_type=<session-type>,operation=validate, outcome=<outcome>}`

  *Labels:*

  * `<session-type>`

    `authentication-in-memory`. In-memory *authentication* sessions used to track authentication progress. (Prometheus: `authentication_in_memory`)

    `authentication-cts-based`. Server-side *authentication* sessions used to track authentication progress. (Prometheus: `authentication_cts_based`)

    `authentication-client-based`. Client-side *authentication* sessions used to track authentication progress. (Prometheus: `authentication_client_based`)

    `cts-based`. Server-side sessions issued after successful authentication. (Prometheus: `cts_based`)

    `client-based`. Client-side sessions; for example in a browser cookie, issued after successful authentication. (Prometheus: `client_based`)

  * `<outcome>`

    `success`

    `failure`
