Prometheus 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 through the Prometheus endpoint are prepended with idm_ and use underscores between words. For example, idm_recon_target_phase_seconds.
In IDM, the available Prometheus metric types include:
Timer metric structure
The Timer type in the API metrics endpoint maps to the Prometheus Summary type. Timer metrics are exposed as a triplet of series, not a single metric:
-
<metric_name>_seconds{...,quantile="<q>"}: Containsquantilelabels providing the time-based distribution of measurements (p50, p75, p95, p98, p99, p999). -
<metric_name>_count{...}: The number of times the metric has been timed. -
<metric_name>_seconds_total{...}: The cumulative time measured by the metric per label group.
For example:
idm_managed_seconds{managed_object="assignment",operation="queryCollection",quantile="0.5",} 9.728750000000001E-4
idm_managed_seconds{managed_object="assignment",operation="queryCollection",quantile="0.75",} 0.001247417
idm_managed_seconds{managed_object="assignment",operation="queryCollection",quantile="0.95",} 0.0016447500000000002
idm_managed_seconds{managed_object="assignment",operation="queryCollection",quantile="0.98",} 0.003216834
idm_managed_seconds{managed_object="assignment",operation="queryCollection",quantile="0.99",} 0.005315167
idm_managed_seconds{managed_object="assignment",operation="queryCollection",quantile="0.999",} 0.005315167
idm_managed_count{managed_object="assignment",operation="queryCollection",} 88.0
idm_managed_seconds_total{managed_object="assignment",operation="queryCollection",} 0.098369748
idm_managed_seconds{managed_object="organization",operation="create",quantile="0.5",} 0.007266166
idm_managed_seconds{managed_object="organization",operation="create",quantile="0.75",} 0.008662667
idm_managed_seconds{managed_object="organization",operation="create",quantile="0.95",} 0.028109959
idm_managed_seconds{managed_object="organization",operation="create",quantile="0.98",} 0.08822537500000001
idm_managed_seconds{managed_object="organization",operation="create",quantile="0.99",} 0.08822537500000001
idm_managed_seconds{managed_object="organization",operation="create",quantile="0.999",} 0.08822537500000001
idm_managed_count{managed_object="organization",operation="create",} 31.0
idm_managed_seconds_total{managed_object="organization",operation="create",} 0.373556921
To compute derived values from a timer triplet, use PromQL expressions against the _seconds_total and _count series. For example, to compute average authorization check latency over a five-minute window:
rate(idm_authorization_check_seconds_total{authorization_check="full-check"}[5m])
/
rate(idm_authorization_check_count{authorization_check="full-check"}[5m])
|
For summary metrics that don’t include the For example, the audit summary metric produces the following output:
|
| Deprecated metrics are still available until they’re removed in a future release. Learn more in Deprecated metric collection. |
Prometheus general metrics
Audit
These metrics track audit event generation across all configured audit topics.
| Metric Name | Label / Type |
Description |
|---|---|---|
|
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.
| Metric Name | Label / Type |
Description |
|---|---|---|
|
Summary |
Time spent performing internal authorization checks. The |
Custom endpoints
These metrics track calls to custom endpoint scripts.
| Metric Name | Label / Type |
Description |
|---|---|---|
|
Summary |
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.
| Metric Name | Label / Type |
Description |
|---|---|---|
|
Summary |
Time spent populating conditional grantor context for the specified resource collection. This optimization fires during large org-graph traversals to avoid redundant permission checks. |
|
Summary |
Time spent processing edge-to-vertex operations for relationship creation events. |
|
Summary |
Time spent processing edge-to-vertex operations for relationship deletion events. |
|
Summary |
Time spent propagating a vertex state change outward to all connected vertices as a secondary signal. |
|
Summary |
Time spent processing edge-to-vertex operations for relationship update events. |
|
Summary |
Latency of enforcing temporal constraints on role objects during object creation. |
|
Summary |
Latency of enforcing temporal constraints on role objects during object deletion. |
|
Summary |
Latency of enforcing temporal constraints on role objects during object update. |
|
Summary |
Latency of enforcing temporal constraints on relationship grants during edge creation. |
|
Summary |
Latency of enforcing temporal constraints on relationship grants during edge deletion. |
|
Summary |
Latency of enforcing temporal constraints on relationship grants during edge update. |
|
Summary |
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.
| Metric Name | Label / Type |
Description |
|---|---|---|
|
Summary |
Rate of reading response objects to fulfill the |
Filters and router filters
These metrics track the execution of scripted filters and router filters, including delegated administration filters.
| Metric Name | Label / Type |
Description |
|---|---|---|
Summary |
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.
| Metric Name | Label / Type |
Description |
|---|---|---|
|
Gauge |
Status of the connector server. A value of |
|
Gauge |
The number of pending |
Gauge |
The number of pending |
|
Gauge |
The number of pending |
|
Gauge |
The number of pending |
|
Gauge |
The number of pending |
|
Gauge |
The number of pending |
|
Gauge |
The number of pending |
|
Gauge |
The number of pending |
|
Gauge |
The number of pending |
|
Gauge |
The number of pending |
|
Gauge |
The number of pending |
|
|
Summary |
Rate of ICF |
Summary |
Rate of ICF |
|
Summary |
Rate of ICF |
|
Summary |
Duration of live sync on a system object. |
|
Summary |
Rate of ICF |
|
Summary |
Rate of ICF |
|
Summary |
Rate of ICF |
|
Summary |
Rate of ICF query executions with |
|
Summary |
Rate of ICF query executions with |
|
Summary |
Rate of ICF query executions with |
|
Summary |
Rate of ICF query executions when the query type is |
Internal objects
These metrics track CRUD and relationship operations on internal IDM objects.
| Metric Name | Label / Type |
Description |
|---|---|---|
|
Summary |
Rate of fetch operations of relationship fields for internal objects. |
|
Summary |
Rate of validate operations of relationship fields for internal objects. |
|
Summary |
Query rate on relationship values for internal objects. |
|
Summary |
Rate of operations on internal objects. |
Managed objects
These metrics track CRUD, relationship, and script operations on managed objects.
| Metric Name | Label / Type |
Description |
|---|---|---|
|
Summary |
Rate of fetches of relationship fields of a managed object. |
|
Summary |
Rate of queries to get relationship values for a resource on a managed object. |
|
Summary |
Rate of validations of relationship fields of a managed object. |
|
Summary |
Rate of operations on a managed object. |
Summary |
Rate of executions of a script on a managed object. |
Null array filter
This metric tracks time spent in the filter that maps non-nullable null-valued array fields to an empty array.
| Metric Name | Label / Type |
Description |
|---|---|---|
|
Summary |
Time spent in filter that maps non-nullable, null-valued array fields to an empty array. This filter is traversed for all repository access relating to internal and managed objects. |
Policy and scripts
These metrics track policy evaluation script execution and custom scripted request handlers.
| Metric Name | Label / Type |
Description |
|---|---|---|
|
Summary |
Time spent evaluating policy using the policy JavaScript engine for the given request type (for example, |
|
Summary |
Time spent in a scripted request handler, keyed by script name and request type. Replaced by |
Live sync
These metrics track the duration of live sync operations on system objects.
| Metric Name | Label / Type |
Description |
|---|---|---|
|
Summary |
Duration of live sync on a system object. |
Reconciliation
These metrics track reconciliation execution, phase timing, and association entry management.
| Metric Name | Label / Type |
Description |
|---|---|---|
|
Summary |
Rate of merge operations after source or target objects are retrieved during a merged query of reconciled association entries. |
|
Summary |
Rate of individual paged reconciled association entry queries during a merged query. More than one page of entries might be requested to build a single page of merged results. |
|
Summary |
Rate of source object retrieval using a query when merging source objects to reconciled association entries. |
|
Summary |
Rate of target object retrieval using a query when merging target objects to reconciled association entries. |
|
Summary |
The time taken to persist association data. The <operation> can be |
|
Summary |
Rate of executions of the ID query phase of a reconciliation and the time taken to perform this operation. |
|
Summary |
Rate of executions of a full reconciliation and the time taken to perform this operation. |
|
Summary |
Rate of pagination executions of the source phase of a reconciliation and the time taken to perform this operation. |
|
Summary |
Rate of executions of the source phase of a reconciliation and the time taken to perform this operation. |
|
Summary |
Rate of executions of the target phase of a reconciliation and the time taken to perform this operation. |
Repository
These metrics track database-level operations including CRUD, queries, and relationship graph queries.
| Metric Name | Label / Type |
Description |
|---|---|---|
|
Summary |
Rate of execution time on the JDBC database for the |
Summary |
Rate of execution time on the JDBC database for CRUD operations. This rate doesn’t include the time taken to connect to the database from the connection pool. The physical connections to the database have already been established inside the connection pool. |
|
|
Summary |
Rate of execution time on the JDBC database for queries. The |
|
Summary |
Rate of retrievals of a repository connection. |
|
Counter |
Counts the usage statistics of the |
|
Summary |
Time spent running the Edge→Vertex relationship join query on the database and collecting the result set. |
|
Summary |
The amount of time taken to process the results returned from the query measured by |
|
Summary |
Measures the SQL execution time to find referenced collections on the Edge→Vertex relationship. |
|
Summary |
Rate of relationship graph query execution times. |
|
Summary |
Rate of relationship graph query result processing times. |
|
Summary |
Execution rate of a query with |
|
Counter |
The count of all repository relationship calls referenced by queried objects. |
|
Summary |
Time of CRUDPAQ operations to a repository datasource for a generic, explicit, or relationship mapped table. |
Summary |
Rate of initiations of a CRUDPAQ operation to a repository datasource. |
|
|
Summary |
Rate of actions to a repository datasource for a generic or explicit mapped table. |
Summary |
Rate of filtered queries (using native query expressions) on the relationship table. This metric measures the time spent running the query and the number of times it’s invoked. |
|
Summary |
Rate of filtered queries using the |
Router
These metrics track all CRUDPAQ operations routed through the IDM router.
| Metric Name | Label / Type |
Description |
|---|---|---|
|
Summary |
Rate of actions over the router and the time taken to perform this operation. |
|
Summary |
Rate of creates over the router and the time taken to perform this operation. |
|
Summary |
Rate of deletes over the router and the time taken to perform this operation. |
|
Summary |
Rate of patches over the router and the time taken to perform this operation. |
|
Summary |
Rate of queries with |
|
Summary |
Rate of queries with |
|
Summary |
Rate of reads over the router and the time taken to perform this operation. |
|
Summary |
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.
| Metric Name | Label / Type |
Description |
|---|---|---|
|
Summary |
Rate of requests to create an object on the target and the time taken to perform this operation. |
|
Summary |
Rate of requests to delete an object on the target and the time taken to perform this operation. |
|
Summary |
Rate of configurations applied to a mapping. |
|
Summary |
Rate of acquisition of queued synchronization events from the queue. |
|
Summary |
Rate of deletion of synchronization events from the queue. |
|
Summary |
Rate at which queued synchronization operations are run. |
|
Summary |
Number of queued synchronization operations that failed. |
|
Summary |
The polling latency for synchronization events. |
|
Summary |
Number of queued synchronization events acquired by another node in the cluster. |
|
Summary |
Measures the amount of time spent querying for synchronization events previously acquired by another node that have now been acquired by this node due to a mapping rebalancing. |
|
Summary |
Number of queued synchronization events rejected because the backing thread-pool queue reached full capacity and the thread pool had allocated its maximum-configured number of threads. |
|
Summary |
Rate at which queued synchronization events are released. |
|
Summary |
Insertion rate of synchronization events into the queue. |
|
Summary |
Rate of reads of an object. |
|
Summary |
Assessment rate of a synchronization situation. |
|
Summary |
Correlation rate between a target and a given source, and the time taken to perform this operation. |
|
Summary |
Determination rate on a synchronization action based on its current situation. |
|
Summary |
Completion rate of an action performed on a synchronization operation. |
|
Summary |
Assessment rate of a target situation. |
|
Summary |
Determination rate on a target action based on its current situation. |
|
Summary |
Completion rate of an action performed on a target synchronization operation. |
|
Summary |
Request rate 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 and JWT session resumptions by user type and provider.
| Metric Name | Label / Type |
Description |
|---|---|---|
|
Summary |
Count of all successful logins (new sessions) by user type. |
|
Summary |
Count of all successful logins by user type and provider. |
|
Summary |
Count of all successful JWT session resumptions (token refreshes) by user type. |
|
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.
| Metric Name | Label / Type |
Description |
|---|---|---|
|
Summary |
Number of 404 responses encountered when querying the |
|
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 |
|
Summary |
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 |
Prometheus 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.
| Prometheus Metric Name | Type | Unit | Description |
|---|---|---|---|
|
Gauge |
Count |
Current number of requests queued in the Jetty QoSHandler queue. |
Gauge |
Count |
Maximum number of requests that can be queued. |
|
Gauge |
Count |
Maximum number of requests that can be handled concurrently. |
|
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.
| Prometheus Metric Name | Type | Unit | Description |
|---|---|---|---|
|
Gauge |
Count |
Number of idle threads that aren’t reserved. |
|
Gauge |
Count |
Whether the pool is low on threads. |
|
Gauge |
Count |
Number of threads used by internal Jetty components. |
|
Gauge |
Count |
Maximum number of threads configured in the pool. |
|
Gauge |
Count |
Size of the job queue. |
|
Gauge |
Count |
Number of threads ready to run transient jobs, such as handling requests. |
|
Gauge |
Count |
Number of available threads reserved for queue management. |
|
Gauge |
Count |
Total number of threads in the pool. |
|
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.
| Prometheus Metric Name | Type | Unit | Description |
|---|---|---|---|
|
Gauge |
Count |
Current number of active requests. |
|
Counter |
Count |
Number of requests with a |
|
Counter |
Count |
Number of requests with a |
|
Counter |
Count |
Maximum number of concurrently active requests. |
|
Gauge |
Nanoseconds |
Maximum request run time. |
|
Gauge |
Nanoseconds |
Standard deviation for request run time. |
|
Gauge |
Count |
Current number of requests the servlets handle. |
|
Counter |
Count |
Maximum number of requests the servlets handle concurrently. |
|
Gauge |
Nanoseconds |
Maximum servlet run time. |
|
Gauge |
Nanoseconds |
Standard deviation for servlet run time. |
Prometheus 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.
|
The canonical, long-term-stable form of JVM memory metrics uses label selectors ( |
| Prometheus Metric Name | Type | Unit | Description |
|---|---|---|---|
|
Gauge |
Bytes |
Learn more in Runtime. |
|
Gauge |
Bytes |
Learn more in Runtime. |
|
Gauge |
Bytes |
Amount of heap memory committed for the JVM to use. Learn more in MemoryMXBean. |
|
Gauge |
Bytes |
|
|
Gauge |
Bytes |
Maximum amount of heap memory available to the JVM. |
|
Gauge |
Bytes |
Amount of heap memory used by the JVM. |
|
Gauge |
Bytes |
Amount of non-heap memory committed for the JVM to use. |
|
Gauge |
Bytes |
Amount of non-heap memory the JVM initially requested from the operating system. |
|
Gauge |
Bytes |
Maximum amount of non-heap memory available to the JVM. |
|
Gauge |
Bytes |
Amount of non-heap memory used by the JVM. |
|
Gauge |
Bytes |
For each pool. Learn more in MemoryPoolMXBean. |
|
Gauge |
Bytes |
|
|
Gauge |
Bytes |
|
|
Gauge |
Bytes |
|
|
Gauge |
Bytes |
|
|
Gauge |
Bytes |
|
|
Gauge |
Bytes |
|
|
Gauge |
Bytes |
|
|
Gauge |
Bytes |
|
|
Gauge |
Bytes |
|
|
Gauge |
Bytes |
|
|
Gauge |
Bytes |
|
|
Gauge |
Bytes |
|
|
Gauge |
Bytes |
|
|
Gauge |
Bytes |
|
|
Gauge |
Bytes |
|
|
Gauge |
Bytes |
|
|
Gauge |
Bytes |
|
|
Gauge |
Bytes |
|
|
Gauge |
Bytes |
|
|
Gauge |
Bytes |
|
|
Gauge |
Bytes |
|
|
Gauge |
Bytes |
|
|
Gauge |
Bytes |
|
|
Gauge |
Bytes |
|
|
Gauge |
Bytes |
|
|
Gauge |
Bytes |
|
|
Gauge |
Bytes |
|
|
Gauge |
Bytes |
|
|
Gauge |
Bytes |
|
|
Gauge |
Bytes |
|
|
Gauge |
Bytes |
|
|
Gauge |
Bytes |
|
|
Gauge |
Bytes |
|
|
Gauge |
Bytes |
|
|
Gauge |
Bytes |
Learn more in totalMemory(). |
Threads
These metrics report the count of JVM threads by state.
| Prometheus Metric Name | Type | Unit | Description |
|---|---|---|---|
|
Gauge |
Count |
Number of live daemon threads. |
|
Gauge |
Count |
Number of threads in the |
|
Gauge |
Count |
Number of threads in the |
|
Gauge |
Count |
Number of threads in the |
|
Gauge |
Count |
Number of threads in the |
|
Gauge |
Count |
Number of threads in the |
|
Gauge |
Count |
Number of threads in the |
CPU and class loading
These metrics report processor availability and class-loading activity.
| Prometheus Metric Name | Type | Unit | Description |
|---|---|---|---|
|
Gauge |
Count |
Number of processors available to the JVM. Learn more in Runtime. |
|
Counter |
Count |
Number of classes loaded since the Java virtual machine started. Learn more in ClassLoadingMXBean. |
|
Counter |
Count |
Number of classes unloaded since the Java virtual machine started. Learn more in 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.
| Prometheus Metric Name | Type | Unit | Description |
|---|---|---|---|
|
Counter |
Count |
For each garbage collector in the JVM. Learn more in GarbageCollectorMXBean. |
|
Counter |
Milliseconds |
|
|
Counter |
Count |
|
|
Counter |
Milliseconds |
| Deprecated metrics aren’t shown in the previous table. |
Prometheus scheduler metrics
These metrics track scheduled job execution, trigger lifecycle, job store operations, and scheduler management operations.
Job execution
These metrics track the completion and execution time of individual scheduled jobs.
| Prometheus Metric Name | Type | Description |
|---|---|---|
|
Summary |
A summary of completed jobs for the specified <job-group> and <job-name>. |
|
Summary |
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.
| Prometheus Metric Name | Type | Description |
|---|---|---|
|
Summary |
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.
| Prometheus Metric Name | Type | Description |
|---|---|---|
|
Summary |
A summary of successfully acquired jobs. |
|
Summary |
A summary of acquired jobs that time out. |
|
Summary |
A summary of fired schedule triggers. |
|
Summary |
A summary of misfired schedule triggers. |
|
Summary |
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 label is either persisted (for durable jobs stored in the repository) or memory (for in-memory-only jobs).
The operation label is one of: add-job, delete-job, pause-job, resume-job, schedule-job, replace-job, trigger-job, pause-all, resume-all.
| Prometheus Metric Name | Type | Description |
|---|---|---|
|
Summary |
Execution rate of scheduler requests for the specified <type> and <operation>. |
Prometheus workflow metrics
These metrics track all workflow operations including executions, jobs, models, process definitions, process instances, and task management.
| Prometheus Metric Name | Type | Description |
|---|---|---|
|
Summary |
Time spent invoking a message event. |
|
Summary |
Time spent invoking a signal event. |
|
Summary |
Time spent triggering an execution. |
|
Summary |
Time spent querying executions. |
|
Summary |
Time spent forcing synchronous execution of a job. |
|
Summary |
Time spent displaying the stacktrace for a job that triggered an exception. |
|
Summary |
Time spent deleting a job. |
|
Summary |
Time spent querying jobs. |
|
Summary |
Time spent reading a single job. |
|
Summary |
Time spent to execute dead-letter job. |
|
Summary |
Time spent to retrieve the stacktrace for a dead-letter job. |
|
Summary |
Time spent to delete a dead letter job. |
|
Summary |
Time spent to query dead letter jobs. |
|
Summary |
Time spent to read a dead letter job. |
|
Summary |
Time spent to deploy a model. |
|
Summary |
Time spent to list model deployments. |
|
Summary |
Time spent to validate BPMN content. |
|
Summary |
Time spent to create a model. |
|
Summary |
Time spent to delete a model. |
|
Summary |
Time spent to query models. |
|
Summary |
Time spent to read a model. |
|
Summary |
Time spent to update a model. |
|
Summary |
Time spent to delete a process definition. |
|
Summary |
Time spent to query process definitions. |
|
Summary |
Time spent to read a process definition. |
|
Summary |
Time spent to migrate a process instance. |
|
Summary |
Time spent to validate a migration of a process instance. |
|
Summary |
Time spent to create a process instance. |
|
Summary |
Time spent to delete a process instance. |
|
Summary |
Time spent to query process instances. |
|
Summary |
Time spent to read a process instance. |
|
Summary |
Time spent to query task definitions. |
|
Summary |
Time spent to read a task definition. |
|
Summary |
Time spent to complete a task instance. |
|
Summary |
Time spent to query task instances. |
|
Summary |
Time spent to read a task instance. |
|
Summary |
Time spent to update a task instance. |