PingIDM

API metrics

IDM generates metrics only after a corresponding event occurs. For example, IDM doesn’t create login-related metrics until a user logs in. If you’re using a monitoring tool like Grafana, this may appear as missing data or empty panels on your dashboard.

Metrics accessed at the api endpoint (such as those consumed by the Dropwizard dashboard widget) use dot notation for their metric names, for example, recon.target-phase.

Metric types

The following metric types are available.

Summary

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

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.

Because the increment is always 1, the total and the count are always 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.

Example

{
   "_id": "user.login.static-user",
   "m15_rate": 0.31152031322856183,
   "m1_rate": 0.009407098342403664,
   "m5_rate": 0.1889466210964059,
   "mean_rate": 0.00857374326779179,
   "units": "events/second",
   "total": 2.0,
   "count": 2,
   "_type": "summary"
}

API summary metrics don’t include a quantile grouping (designated with a footnote in API metrics available in IDM). There’s a known issue where the _total metric isn’t a total of the entire series. Instead, the _total metric is a total of each label group, which leads to identical metrics for the _total and count. You can find an example in the Summary metric type.

Timer

The timer metric combines rate and duration information.

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 toward 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.

Example

{
   "_id": "managed.user.queryCollection",
   "count": 9,
   "max": 14.78925,
   "mean": 8.440082684033516,
   "min": 3.8259589999999997,
   "p50": 8.211958,
   "p75": 11.111125,
   "p95": 14.78925,
   "p98": 14.78925,
   "p99": 14.78925,
   "p999": 14.78925,
   "stddev": 3.523788561175547,
   "m15_rate": 0.5581887695446408,
   "m1_rate": 0.20264650023649813,
   "m5_rate": 0.48307499952766003,
   "mean_rate": 0.10851915133390902,
   "duration_units": "milliseconds",
   "rate_units": "calls/second",
   "total": 75.987333,
   "_type": "timer"
}

Gauge

The gauge metric is 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.

Field Description

_id

The metric ID.

_type

The metric type.

value

The current value of the metric.

Example

{
   "_id": "jvm.max-memory",
   "value": 2.147483648E9,
   "_type": "gauge"
}

Counter

Metric providing a count of the unique events measured.

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

The counter metric is calculated per instance of IDM and can’t be aggregated across multiple instances to get a site-wide view.

Field Description

_id

The metric ID.

_type

The metric type.  

The counter type is reported as a gauge type. The output formats for counter and gauge type are identical.

value

The calculation of the number of unique values recorded in the metric.

Example

{
   "_id": "jetty.request.max",
   "count": 6,
   "_type": "counter"
}
Deprecated metrics are still available until they’re removed in a future release. Learn more in Deprecated metric collection.

API general metrics

Audit

These metrics track audit event generation across all configured audit topics.

API Metric Name Type Description

audit.<audit-topic>[1]

Summary

Count of all audit events generated of a given topic type.

Authorization

These metrics track the latency of internal authorization checks performed by IDM.

API Metric Name Type Description

authorization-check.full-check

Timer

Time spent performing a full authorization check, including all sub-checks.

authorization-check.privilege-access

Timer

Time spent checking whether a request has privilege access.

authorization-check.router-authz

Timer

Time spent performing the router-level authorization check.

Custom endpoints

These metrics track calls to custom endpoint scripts.

API Metric Name Type Description

custom-endpoint.<endpoint-name>.<request-type>

Timer

Rate of calls to a custom endpoint script and the time taken to perform this operation.

Edge and relationship

These metrics track relationship operations between managed objects, including temporal constraint enforcement and relationship graph traversals.

API Metric Name Type Description

conditional_grantor_context_population.<resource-collection>

Timer

Time spent populating conditional grantor context for the specified resource collection. This optimization fires during large org-graph traversals to avoid redundant permission checks.

edge-to-vertex.relationship-created

Timer

Time spent processing edge-to-vertex operations for relationship creation events.

edge-to-vertex.relationship-deleted

Timer

Time spent processing edge-to-vertex operations for relationship deletion events.

edge-to-vertex.relationship-updated

Timer

Time spent processing edge-to-vertex operations for relationship update events.

edge-to-vertex.relationship-notification

Timer

Time spent propagating a vertex state change outward to all connected vertices as a secondary signal.

managed.relationship.handle-temporal-constraints-on-create

Timer

Latency of enforcing temporal constraints on relationship grants during edge creation.

managed.relationship.handle-temporal-constraints-on-delete

Timer

Latency of enforcing temporal constraints on relationship grants during edge deletion.

managed.relationship.handle-temporal-constraints-on-update

Timer

Latency of enforcing temporal constraints on relationship grants during edge update.

managed.relationship.validate.read-relationship-endpoint-edges

Timer

Rate of reads on relationship endpoint edges for validation.

Field augmentation

These metrics track read operations performed to fulfill _fields requests when the initial repository query didn’t return the requested data.

API Metric Name Type Description

field.augmentation.edge

Timer

Rate of reading response objects to fulfill the _fields requested (when the fields weren’t populated by the initial repo query).

field.augmentation.vertex

Timer

Rate of reading response objects to fulfill the _fields requested (when the fields weren’t populated by the initial repo query).

Filters and router filters

These metrics track the execution of scripted filters and router filters, including delegated administration filters.

API Metric Name Type Description

router-filter.<name>.<action>.<script-name>.<quantile>.<system>[2][3]

Timer

Rate that filter scripts are executed per action. Monitors scripted filters and delegated administration.

ICF connectors

These metrics track provisioning operations and connector availability for ICF-based connectors.

API Metric Name Type Description

icf_connector_server_availability.<rcsName>.<rcsType>

Gauge

Status of the connector server. A value of 1 indicates the server is running. A value of 0 indicates the server isn’t running.

icf_pending.<connectorType>.<systemIdentifier>.<bundleVersion>.<location>.<objectClass>.<operation>[4]

Gauge

The number of pending requests over the configured limit.

icf.<connectorType>.<systemIdentifier>.<bundleVersion>.<location>.<objectClass>.action.authenticate

Timer

Rate of ICF authentication actions and action performance time for the given connector.

icf.<connectorType>.<systemIdentifier>.<bundleVersion>.<location>.<objectClass>.create

Timer

Rate of ICF create operations and operation performance time for the given connector.

icf.<connectorType>.<systemIdentifier>.<bundleVersion>.<location>.<objectClass>.delete

Timer

Rate of ICF delete operations and operation performance time for the given connector.

icf.<connectorType>.<systemIdentifier>.<bundleVersion>.<location>.<objectClass>.liveSync

Timer

Duration of live sync on a system object.

icf.<connectorType>.<systemIdentifier>.<bundleVersion>.<location>.<objectClass>.patch

Timer

Rate of ICF patch operations and operation performance time for the given connector.

icf.<connectorType>.<systemIdentifier>.<bundleVersion>.<location>.<objectClass>.query._queryExpression

Timer

Rate of ICF query executions with queryExpression and the time taken to perform this operation.

icf.<connectorType>.<systemIdentifier>.<bundleVersion>.<location>.<objectClass>.query._queryFilter

Timer

Rate of ICF query executions with queryFilter and the time taken to perform this operation.

icf.<connectorType>.<systemIdentifier>.<bundleVersion>.<location>.<objectClass>.query._queryId.<queryId>

Timer

Rate of ICF query executions with queryId and the time taken to perform this operation.

icf.<connectorType>.<systemIdentifier>.<bundleVersion>.<location>.<objectClass>.query._UNKNOWN

Timer

Rate of ICF query executions when the query type is UNKNOWN and the time taken to perform this operation.

icf.<connectorType>.<systemIdentifier>.<bundleVersion>.<location>.<objectClass>.read

Timer

Rate of ICF read operations and operation performance time for the given connector.

icf.<connectorType>.<systemIdentifier>.<bundleVersion>.<location>.<objectClass>.update

Timer

Rate of ICF update operations and operation performance time for the given connector.

Internal objects

These metrics track CRUD and relationship operations on internal IDM objects.

API Metric Name Type Description

internal.<managed-object>.<operation>

Timer

Rate of operations on internal objects.

internal.<managed-object>.relationship.fetch-relationship-fields

Timer

Rate of fetch operations of relationship fields for internal objects.

internal.<managed-object>.relationship.get-relationship-value-for-resource

Timer

Query rate on relationship values for internal objects.

internal.<managed-object>.relationship.validate-relationship-fields

Timer

Rate of validate operations of relationship fields for internal objects.

internal.<managed-object>.script.<script-name>

Timer

Rate of script executions on internal object.

Managed objects

These metrics track CRUD, relationship, and script operations on managed objects, including temporal constraint enforcement.

API Metric Name Type Description

managed.field.augmentation

Timer

Rate of responses requiring field augmentation. When the repository can’t retrieve all data in a single call, IDM performs additional read operations to complete (augment) the missing data.

managed.<managed-object>.<operation>

Timer

Rate of operations on a managed object.

managed.<managed-object>.relationship.fetch-relationship-fields

Timer

Rate of fetches of relationship fields of a managed object.

managed.<managed-object>.relationship.get-relationship-value-for-resource

Timer

Rate of queries to get relationship values for a resource on a managed object.

managed.<managed-object>.relationship.validate-relationship-fields

Timer

Rate of validations of relationship fields of a managed object.

managed-script-hook.<object>.<script-hook>[5][3]

Timer

Rate of executions of a script on a managed object.

managed.object.handle-temporal-constraints-on-create

Timer

Latency of enforcing temporal constraints on role objects during object creation.

managed.object.handle-temporal-constraints-on-delete

Timer

Latency of enforcing temporal constraints on role objects during object deletion.

managed.object.handle-temporal-constraints-on-update

Timer

Latency of enforcing temporal constraints on role objects during object update.

Null array filter

This metric tracks time spent in the filter that maps non-nullable null-valued array fields to an empty array.

API Metric Name Type Description

null-array-filter.augmentation.<request-type>

Timer

Time spent in filter that maps non-nullable and null-valued array fields to an empty array. This filter is traversed for all repo access relating to internal and managed objects.

Policy and scripts

These metrics track policy evaluation script execution and custom scripted request handlers.

API Metric Name Type Description

policy-js.<request-type>

Timer

Time spent evaluating policy using the policy JavaScript engine for the given request type (for example, read, action).

script.<script-name>.<request-type> (deprecated)

Timer

Time spent in a scripted request handler, keyed by script name and request type. Replaced by policy-js.<request-type> for policy scripts.

Reconciliation

These metrics track reconciliation execution, phase timing, and association entry management.

API Metric Name Type Description

recon

Timer

Rate of executions of a full reconciliation, and time taken to perform this operation.

recon-assoc-entry.merged-query.merge-results

Timer

Rate of merge operations after source and/or target objects have been retrieved during a merged query of recon association entries.

recon-assoc-entry.merged-query.page-assoc-entries

Timer

Rate of individual paged recon association entry queries during a merged query. More than one page of entries might be requested to build a single page of merged results.

recon-assoc-entry.merged-query.query-source

Timer

Rate of source object retrieval using a query when merging source objects to recon association entries.

recon-assoc-entry.merged-query.query-target

Timer

Rate of target object retrieval using a query when merging target objects to recon association entries.

recon.association-persistence.<recon-id>.<operation>

Timer

The time taken to persist association data. The <operation> can be source, target, or amendsource, depending on whether data is being produced for a source-phase or target-phase recon association, or to amend the association for a specific source.

recon.id-queries-phase

Timer

Rate of executions of the id query phase of a reconciliation, and time taken to perform this operation.

recon.source-phase

Timer

Rate of executions of the source phase of a reconciliation, and time taken to perform this operation.

recon.source-phase.page

Timer

Rate of pagination executions of the source phase of a reconciliation, and time taken to perform this operation.

recon.target-phase

Timer

Rate of executions of the target phase of a reconciliation, and time taken to perform this operation.

Repository

These metrics track database-level operations including CRUD, queries, and relationship graph queries.

API Metric Name Type Description

repo.jdbc.relationship.edge.execute.<joinedToVertex>

Timer

Time (ms) spent running the Edge→Vertex relationship join query on the database and collecting the result set.

repo.jdbc.relationship.execute

Timer

Rate of relationship graph query execution times.

repo.jdbc.relationship.process

Timer

Rate of relationship graph query result processing times.

repo.raw._queryId.<queryId>

Timer

Rate of executions of a query with queryId at a repository level and the time taken to perform this operation.

repo.<repo-type>.cache.objecttypes.<event>.<resource-mapping>

Counter

Counts the usage statistics of the objecttypeid cache, which maps an object type to its objecttypeid. The expected count is a small number of misses (sometimes, only one) and the remainder of hits.

repo.<repo-type>.create_properties.execute.<resource-mapping>

Timer

Rate of execution time on the JDBC database for the create_properties operations. This operation is performed for every generic object create when it persists the searchable properties. The rate measured here doesn’t include the time taken to receive a connection to the database from the connection pool. The physical connections to the database have already been established inside the connection pool.

repo.<repo-type>.get-connection

Timer

Rate of retrievals of a repository connection.

repo.<repo-type>.<operation>._adhoc-expression.relationship

Timer

Rate of filtered queries (using native query expressions) on the relationship table. This metric measures the time spent making the query (in ms), and the number of times the query is invoked.

repo.<repo-type>.<operation>._adhoc-filter.relationship

Timer

Rate of filtered queries (using the _queryFilter parameter) on the relationship table. This metric measures the time spent making the query (in ms), and the number of times the query is invoked.

repo.<repo-type>.<operation>.<action-name>.<command>.<resource-mapping>

Timer

Rate of actions to a repository datasource for a generic or explicit mapped table.

repo.<repo-type>.<operation>.<resource-mapping>

Timer

Rate of initiations of a CRUDPAQ operation to a repository datasource.

repo.<repo-type>.<operation>.execute.<resource-mapping>

Timer

Rate of execution time on the JDBC database for CRUD operations. This rate doesn’t include the time taken to receive a connection to the database from the connection pool. The physical connections to the database have already been established inside the connection pool.

repo.jdbc.query.execute.<resource-mapping>

Timer

Rate of execution time on the JDBC database for queries. The queryType tag distinguishes queryFilter from queryId queries. This rate doesn’t include the time taken to receive a connection to the database from the connection pool. The physical connections to the database have already been established inside the connection pool.

repo.<repo-type>.<operation>.relationship

Timer

Rate of CRUDPAQ operations to a repository datasource for a generic/explicit/relationship mapped table.

repo.<repo-type>.<operation>.relationship.<stage.origin_type>

Timer

Time (ms) spent in the various phases to retrieve relationship expanded data referenced by queried objects.

Router

These metrics track all CRUDPAQ operations routed through the IDM router.

API Metric Name Type Description

router.<path-name>.<action>.<action-type>

Timer

Rate of actions over the router and the time taken to perform this operation.

router.<path-name>.create

Timer

Rate of creates over the router and the time taken to perform this operation.

router.<path-name>.delete

Timer

Rate of deletes over the router and the time taken to perform this operation.

router.<path-name>.patch

Timer

Rate of patches over the router and the time taken to perform this operation.

router.<path-name>.query.queryExpression

Timer

Rate of queries with queryExpression completed over the router and the time taken to perform this operation.

router.<path-name>.query.queryFilter

Timer

Rate of queries with queryFilter completed over the router and the time taken to perform this operation.

router.<path-name>.read

Timer

Rate of reads over the router and the time taken to perform this operation.

router.<path-name>.update

Timer

Rate of updates over the router and the time taken to perform this operation.

Synchronization

These metrics track sync operations, queued sync event processing, and queue management.

API Metric Name Type Description

sync.create-object

Timer

Rate of requests to create a target object, and time taken to perform the operation.

sync.delete-target

Timer

Rate of requests to delete a target object, and time taken to perform the operation.

sync.objectmapping.<mapping-name>

Timer

Rate of configurations applied to a mapping.

sync.queue.<mapping-name>.<action>.acquire

Timer

Rate of acquisition of queued synchronization events from the queue.

sync.queue.<mapping-name>.<action>.discard

Timer

Rate of deletion of synchronization events from the queue.

sync.queue.<mapping-name>.<action>.execution

Timer

Rate at which queued synchronization operations are executed.

sync.queue.<mapping-name>.<action>.failed[1]

Summary

Number of queued synchronization operations that failed.

sync.queue.<mapping-name>.<action>.precondition-failed[1]

Summary

Number of queued synchronization events acquired by another node in the cluster.

sync.queue.<mapping-name>.query-previously-acquired-events

Timer

Time spent querying for synchronization events previously acquired by another node that have now been acquired by this node due to a mapping rebalancing.

sync.queue.<mapping-name>.<action>.rejected-executions[1]

Summary

Number of queued synchronization events rejected because the backing thread-pool queue was at full capacity and the thread-pool had already allocated its maximum configured number of threads.

sync.queue.<mapping-name>.<action>.release

Timer

Rate at which queued synchronization events are released.

sync.queue.<mapping-name>.<action>.release-for-retry

Timer

Times the release of queued synchronization events after a failure and before exceeding the retry count.

sync.queue.<mapping-name>.<action>.submit

Timer

Rate of insertion of synchronization events into the queue.

sync.queue.<mapping-name>.poll-pending-events

Timer

The latency involved in polling for synchronization events.

sync.raw-read-object

Timer

Rate of reads of an object.

sync.source.assess-situation

Timer

Rate of assessments of a synchronization situation.

sync.source.correlate-target

Timer

Rate of correlations between a target and a given source, and time taken to perform this operation.

sync.source.determine-action

Timer

Rate of determinations done on a synchronization action based on its current situation.

sync.source.perform-action

Timer

Rate of completions of an action performed on a synchronization operation.

sync.target.assess-situation

Timer

Rate of assessments of a target situation.

sync.target.determine-action

Timer

Rate of determinations done on a target action based on its current situation.

sync.target.perform-action

Timer

Rate of completions of an action performed on a target sync operation.

sync.update-target

Timer

Rate of requests to update an object on the target, and the time taken to perform this operation.

User login and session

These metrics track successful authentication events by user type and provider.

API Metric Name Type Description

user.login.<user-type>[1]

Summary

Count of all successful logins (new sessions) by user type.

user.login.<user-type>.<provider>[1]

Summary

Count of all successful logins by user type and provider.

user.session.<user-type>[1]

Summary

Count of all successful JWT session resumptions (token refreshes) by user type.

user.session.<user-type>.<provider>[1]

Summary

Count of all successful JWT session resumptions by user type and provider.

Virtual properties

These metrics track traversal of relationship fields used to compute virtual properties on managed objects.

API Metric Name Type Description

VirtualPropertiesFromRelationships.NotFound.<virtual_properties>.<resource_collection_relationship_field>[1]

Summary

Number of 404 responses encountered when querying the resource_collection/relationship_field specified in the traversal_depthX tag for the most recent X.

VirtualPropertiesFromRelationships.UnsatisfiedTempConstraint.<virtual_properties>.<resource_collection_relationship_field>[1]

Summary

Number of edges skipped due to an unsatisfied temporal constraint on either the edge or the referred-to vertex. Encountered when querying the resource collection and relationship field at the traversal_depthX tag for the most recent X.

VirtualPropertiesFromRelationships.<virtual_properties>.<resource_collection_relationship_field>

Timer

Time spent traversing relationship fields to calculate the specified virtual properties. The managed objects linked to by the traversal relationship fields define a tree whose root is the virtual property host. This object tree is traversed depth-first with the traversal_depthX corresponding to the latency involved with each relationship traversal. Traversal_depth0 corresponds to the first relationship field traversed. Because the tree is traversed depth-first, traversal_depthX subsumes all the traversal latencies for all traversal_depth Y, where Y>X.

API Jetty metrics

These metrics include Jetty thread pool and request metrics.

QoS handler

These metrics track the Jetty QoS handler queue, which throttles concurrent requests.

API Metric Name Type Unit Description

jetty.qos.queue.count[6]

Gauge

Count

Current number of requests queued in the Jetty QoSHandler queue.

jetty.qos.queue.count.max

Gauge

Count

Maximum number of requests that can be queued.

jetty.qos.concurrent.max

Gauge

Count

Maximum number of requests that can be handled concurrently.

jetty.qos.queue.milliseconds.max

Gauge

Count

Maximum amount of time a request can be queued.

Thread pool

These metrics track the Jetty thread pool size, utilization, and queue depth.

API Metric Name Type Unit Description

jetty.thread.idle

Gauge

Count

Number of idle threads that aren’t reserved.

jetty.thread.isLowOnThreads

Gauge

Count

Whether the pool is low on threads. 1 if true, 0 otherwise.

jetty.thread.leased

Gauge

Count

Number of threads used by internal Jetty components.

jetty.thread.max

Gauge

Count

Maximum number of threads configured in the pool.

jetty.thread.queue[6]

Gauge

Count

Size of the job queue.

jetty.thread.ready

Gauge

Count

Number of threads ready to run transient jobs, such as handling requests.

jetty.thread.reserved

Gauge

Count

Number of available threads reserved for queue management.

jetty.thread.total

Gauge

Count

Total number of threads in the pool.

jetty.thread.utilized

Gauge

Count

Number of threads currently running transient jobs, such as handling requests.

Requests

These metrics track HTTP request rates, active request counts, error counts, and latency distribution.

API Metric Name Type Unit Description

jetty.request.active

Gauge

Count

Current number of active requests.

jetty.request.failed.4xx

Counter

Count

Number of requests with a 4xx response status.

jetty.request.failed.5xx

Counter

Count

Number of requests with a 5xx response status.

jetty.request.max

Counter

Count

Maximum number of concurrently active requests.

jetty.request.nanoseconds.max

Gauge

Nanoseconds

Maximum request run time.

jetty.request.nanoseconds.stddev

Gauge

Nanoseconds

Standard deviation for request run time.

jetty.request.servlet.active

Gauge

Count

Current number of requests the servlets handle.

jetty.request.servlet.max

Counter

Count

Maximum number of requests the servlets handle concurrently.

jetty.request.servlet.nanoseconds.max

Gauge

Nanoseconds

Maximum servlet run time.

jetty.request.servlet.nanoseconds.stddev

Gauge

Nanoseconds

Standard deviation for servlet run time.

API JVM metrics

These metrics 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.

Memory

These metrics report JVM heap and non-heap memory usage, including per-pool breakdowns.

API Metric Name Type Unit Description

jvm.free-memory

Gauge

Bytes

Learn more about Runtime.

jvm.max-memory

Gauge

Bytes

Learn more about Runtime.

jvm.memory-usage.committed_heap

Gauge

Bytes

Amount of heap memory committed for the JVM to use. Learn more about MemoryMXBean.

jvm.memory-usage.init_heap

Gauge

Bytes

jvm.memory-usage.max_heap

Gauge

Bytes

Maximum amount of heap memory available to the JVM.

jvm.memory-usage.used_heap

Gauge

Bytes

Amount of heap memory used by the JVM.

jvm.memory-usage.committed_non-heap

Gauge

Bytes

Amount of non-heap memory committed for the JVM to use.

jvm.memory-usage.init_non-heap

Gauge

Bytes

Amount of non-heap memory the JVM initially requested from the operating system.

jvm.memory-usage.max_non-heap

Gauge

Bytes

Maximum amount of non-heap memory available to the JVM.

jvm.memory-usage.used_non-heap

Gauge

Bytes

Amount of non-heap memory used by the JVM.

jvm.memory-usage.pools.committed_CodeHeap-'non-nmethods'

Gauge

Bytes

For each pool. Learn more about MemoryPoolMXBean.

jvm.memory-usage.pools.init_CodeHeap-'non-nmethods'

Gauge

Bytes

jvm.memory-usage.pools.max_CodeHeap-'non-nmethods'

Gauge

Bytes

jvm.memory-usage.pools.used_CodeHeap-'non-nmethods'

Gauge

Bytes

jvm.memory-usage.pools.committed_CodeHeap-'non-profiled-nmethods'

Gauge

Bytes

jvm.memory-usage.pools.init_CodeHeap-'non-profiled-nmethods'

Gauge

Bytes

jvm.memory-usage.pools.max_CodeHeap-'non-profiled-nmethods'

Gauge

Bytes

jvm.memory-usage.pools.used_CodeHeap-'non-profiled-nmethods'

Gauge

Bytes

jvm.memory-usage.pools.committed_CodeHeap-'profiled-nmethods'

Gauge

Bytes

jvm.memory-usage.pools.init_CodeHeap-'profiled-nmethods'

Gauge

Bytes

jvm.memory-usage.pools.max_CodeHeap-'profiled-nmethods'

Gauge

Bytes

jvm.memory-usage.pools.used_CodeHeap-'profiled-nmethods'

Gauge

Bytes

jvm.memory-usage.pools.committed_Compressed-Class-Space

Gauge

Bytes

jvm.memory-usage.pools.init_Compressed-Class-Space

Gauge

Bytes

jvm.memory-usage.pools.max_Compressed-Class-Space

Gauge

Bytes

jvm.memory-usage.pools.used_Compressed-Class-Space

Gauge

Bytes

jvm.memory-usage.pools.committed_G1-Eden-Space

Gauge

Bytes

jvm.memory-usage.pools.init_G1-Eden-Space

Gauge

Bytes

jvm.memory-usage.pools.max_G1-Eden-Space

Gauge

Bytes

jvm.memory-usage.pools.used_G1-Eden-Space

Gauge

Bytes

jvm.memory-usage.pools.used-after-gc_G1-Eden-Space

Gauge

Bytes

jvm.memory-usage.pools.committed_G1-Old-Gen

Gauge

Bytes

jvm.memory-usage.pools.init_G1-Old-Gen

Gauge

Bytes

jvm.memory-usage.pools.max_G1-Old-Gen

Gauge

Bytes

jvm.memory-usage.pools.used_G1-Old-Gen

Gauge

Bytes

jvm.memory-usage.pools.used-after-gc_G1-Old-Gen

Gauge

Bytes

jvm.memory-usage.pools.committed_G1-Survivor-Space

Gauge

Bytes

jvm.memory-usage.pools.init_G1-Survivor-Space

Gauge

Bytes

jvm.memory-usage.pools.max_G1-Survivor-Space

Gauge

Bytes

jvm.memory-usage.pools.used_G1-Survivor-Space

Gauge

Bytes

jvm.memory-usage.pools.used-after-gc_G1-Survivor-Space

Gauge

Bytes

jvm.memory-usage.pools.committed_Metaspace

Gauge

Bytes

jvm.memory-usage.pools.init_Metaspace

Gauge

Bytes

jvm.memory-usage.pools.max_Metaspace

Gauge

Bytes

jvm.memory-usage.pools.used_Metaspace

Gauge

Bytes

jvm.used-memory

Gauge

Bytes

Learn more about totalMemory().

Threads

These metrics report the count of JVM threads by state.

API Metric Name Type Unit Description

jvm.thread-state.daemon

Gauge

Count

Number of live daemon threads.

jvm.thread-state_blocked

Gauge

Count

Number of threads in the BLOCKED state.

jvm.thread-state_new

Gauge

Count

Number of threads in the NEW state.

jvm.thread-state_runnable

Gauge

Count

Number of threads in the RUNNABLE state.

jvm.thread-state_terminated

Gauge

Count

Number of threads in the TERMINATED state.

jvm.thread-state_timed_waiting

Gauge

Count

Number of threads in the TIMED_WAITING state.

jvm.thread-state_waiting

Gauge

Count

Number of threads in the WAITING state.

CPU and class loading

These metrics report processor availability and class-loading activity.

API Metric Name Type Unit Description

jvm.available-cpus

Gauge

Count

Number of processors available to the JVM. Learn more about Runtime.

jvm.class-loading.loaded.total

Counter

Count

Number of classes loaded since the Java virtual machine started. Learn more about ClassLoadingMXBean.

jvm.class-loading.unloaded.total

Counter

Count

Number of classes unloaded since the Java virtual machine started. Learn more about ClassLoadingMXBean.

Garbage collection

These metrics report the count and time of garbage collection events per collector. The exact metric names depend on the JVM garbage collector in use.

API Metric Name Type Unit Description

jvm.garbage-collector.count.total_G1-Old-Generation

Counter

Count

For each garbage collector in the JVM. Learn more about GarbageCollectorMXBean.

jvm.garbage-collector.time.total_G1-Old-Generation

Counter

Milliseconds

jvm.garbage-collector.count.total_G1-Young-Generation

Counter

Count

jvm.garbage-collector.time.total_G1-Young-Generation

Counter

Milliseconds

Deprecated metrics aren’t shown in the previous table.

API scheduler metrics

Learn more about example requests in Scheduler metrics.

Job execution

These metrics track the completion and execution time of individual scheduled jobs.

API Metric Name Type Description

scheduler.job.<job-group>.<job-name>.completed[1]

Summary

A summary of completed jobs for the specified <job-group> and <job-name>.

scheduler.job.<job-group>.<job-name>.executed

Timer

Time spent on executed jobs for the specified <job-group> and <job-name>.

Job store

These metrics track the time spent storing and managing scheduled jobs in the repository.

API Metric Name Type Description

scheduler.job-store.repo.<operation>.<scheduler-object>

Timer

Time spent storing scheduled jobs in the repository for the specified <operation> and <scheduler-object>.

Trigger lifecycle

These metrics track scheduler trigger acquisition, firing, misfires, and recovery.

API Metric Name Type Description

scheduler.trigger.acquired.success[1]

Summary

A summary of successfully acquired jobs.

scheduler.trigger.acquired.timeout[1]

Summary

A summary of acquired jobs that time out.

scheduler.trigger.fired[1]

Summary

A summary of fired schedule triggers.

scheduler.trigger.misfired[1]

Summary

A summary of misfired schedule triggers.

scheduler.trigger.recovered

Timer

Time spent on recovered triggers.

Scheduler operations

These metrics track the execution rate of scheduler management operations such as adding, pausing, and triggering jobs. The <type> segment is either persisted (for durable jobs stored in the repository) or memory (for in-memory-only jobs). The <operation> segment is one of: add-job, delete-job, pause-job, resume-job, schedule-job, replace-job, trigger-job, pause-all, resume-all.

API Metric Name Type Description

scheduler.<type>.<operation>

Timer

Execution rate of scheduler requests for the specified <type> and <operation>.

API workflow metrics

These metrics track all workflow operations including executions, jobs, models, process definitions, process instances, and task management.

API Metric Name Type Description

workflow.execution.action.message

Timer

Time spent invoking a message event.

workflow.execution.action.signal

Timer

Time spent invoking a signal event.

workflow.execution.action.trigger

Timer

Time spent triggering an execution.

workflow.execution.query

Timer

Time spent querying executions.

workflow.job.action.execute

Timer

Time spent forcing synchronous execution of a job.

workflow.job.action.stacktrace

Timer

Time spent displaying the stacktrace for a job that triggered an exception.

workflow.job.delete

Timer

Time spent deleting a job.

workflow.job.query

Timer

Time spent querying jobs.

workflow.job.read

Timer

Time spent reading a single job.

workflow.jobdeadletter.action.execute

Timer

Time spent to execute dead-letter job.

workflow.jobdeadletter.action.stacktrace

Timer

Time spent to retrieve the stacktrace for a dead-letter job.

workflow.jobdeadletter.delete

Timer

Time spent to delete a dead letter job.

workflow.jobdeadletter.query

Timer

Time spent to query dead letter jobs.

workflow.jobdeadletter.read

Timer

Time spent to read a dead letter job.

workflow.model.action.deploy

Timer

Time spent to deploy a model.

workflow.model.action.list_deployments

Timer

Time spent to list model deployments.

workflow.model.action.validate_bpmn

Timer

Time spent to validate BPMN content.

workflow.model.create

Timer

Time spent to create a model.

workflow.model.delete

Timer

Time spent to delete a model.

workflow.model.query

Timer

Time spent to query models.

workflow.model.read

Timer

Time spent to read a model.

workflow.model.update

Timer

Time spent to update a model.

workflow.processdefinition.delete

Timer

Time spent to delete a process definition.

workflow.processdefinition.query

Timer

Time spent to query process definitions.

workflow.processdefinition.read

Timer

Time spent to read a process definition.

workflow.processinstance.action.migrate

Timer

Time spent to migrate a process instance.

workflow.processinstance.action.validateMigration

Timer

Time spent to validate a migration of a process instance.

workflow.processinstance.create

Timer

Time spent to create a process instance.

workflow.processinstance.delete

Timer

Time spent to delete a process instance.

workflow.processinstance.query

Timer

Time spent to query process instances.

workflow.processinstance.read

Timer

Time spent to read a process instance.

workflow.taskdefinition.query

Timer

Time spent to query task definitions.

workflow.taskdefinition.read

Timer

Time spent to read a task definition.

workflow.taskinstance.action.complete

Timer

Time spent to complete a task instance.

workflow.taskinstance.query

Timer

Time spent to query task instances.

workflow.taskinstance.read

Timer

Time spent to read a task instance.

workflow.taskinstance.update

Timer

Time spent to update a task instance.


1. This summary metric doesn’t include a quantile grouping and only has the metric_name_count and metric_name_total entries.
2. The "router-filter" metric name replaces the "filter" metric name. This metric can specify a "name" and "system" label. If no "name" label is specified, it defaults to "unknown". The "system" label is always system="false".
3. The deprecated metric names are still available and are generated along with the new metric names unless "deprecatedMetricsEnabled" is set to "false" in "conf/metrics.json".
4. A pending request gauge won’t register until the associated RequestType has been invoked at least one time.
5. This metric naming convention replaces managed.managed-object.script.script-name and includes optional "object" and "script-hook" components.
6. The QoSHandler metric, jetty.qos.queue.count, accurately contains the number of queued requests in the handler queue and replaces the jetty.thread.queue metric.