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 | ||
|---|---|---|---|
|
The metric ID. |
||
|
The metric type. |
||
|
The number of events recorded for this metric. |
||
|
The sum of the values of events recorded for this metric.
|
||
|
The one-minute average rate. |
||
|
The five-minute average rate. |
||
|
The fifteen-minute average rate. |
||
|
The average rate. |
||
|
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 |
Timer
The timer metric combines rate and duration information.
| Field | Description |
|---|---|
|
The metric ID. |
|
The metric type. |
|
The number of events recorded for this metric. |
|
The sum of the durations recorded for this metric. |
|
The minimum duration recorded for this metric. |
|
The maximum duration recorded for this metric. |
|
The mean average duration recorded for this metric. |
|
The standard deviation of durations recorded for this metric. |
|
The units used for measuring the durations in the metric. |
|
50% of the durations recorded are at or below this value. |
|
75% of the durations recorded are at or below this value. |
|
95% of the durations recorded are at or below this value. |
|
98% of the durations recorded are at or below this value. |
|
99% of the durations recorded are at or below this value. |
|
99.9% of the durations recorded are at or below this value. |
|
The one-minute average rate. |
|
The five-minute average rate. |
|
The fifteen-minute average rate. |
|
The average rate. |
|
The units used for measuring the rate of the metric. |
|
Duration-based values, such as |
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 |
|---|---|
|
The metric ID. |
|
The metric type. |
|
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 |
| Field | Description | ||
|---|---|---|---|
|
The metric ID. |
||
|
The metric type.
|
||
|
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 metrics available in IDM
| API Metric Name | Type | Description |
|---|---|---|
|
Summary |
Count of all audit events generated of a given topic type. |
|
Timer |
Rate of calls to a custom endpoint script and the time taken to perform this operation. |
|
Timer |
Rate of reading response objects to fulfill the |
|
Timer |
Rate of reading response objects to fulfill the |
Timer |
Rate that filter scripts are executed per action. Monitors scripted filters and delegated administration. |
|
|
Gauge |
Status of the connector server. A value of |
|
Gauge |
The number of pending requests over the configured limit. |
|
Timer |
Rate of ICF query executions with queryExpression and the time taken to perform this operation. |
|
Timer |
Rate of ICF query executions with queryFilter and the time taken to perform this operation. |
|
Timer |
Rate of ICF query executions with queryId and the time taken to perform this operation. |
|
Timer |
Rate of ICF query executions when the query type is UNKNOWN and the time taken to perform this operation. |
|
Timer |
Rate of ICF authentication actions and action performance time for the given connector. |
|
Timer |
Rate of ICF create operations and operation performance time for the given connector. |
|
Timer |
Rate of ICF delete operations and operation performance time for the given connector. |
|
Timer |
Rate of ICF patch operations and operation performance time for the given connector. |
|
Timer |
Rate of ICF read operations and operation performance time for the given connector. |
|
Timer |
Rate of ICF update operations and operation performance time for the given connector. |
|
Duration of live sync on a system object. |
|
|
Timer |
Rate of operations on internal objects. |
|
Timer |
Rate of fetch operations of relationship fields for internal objects. |
|
Timer |
Query rate on relationship values for internal objects. |
|
Timer |
Rate of script executions on internal object. |
|
Timer |
Rate of validate operations of relationship fields for internal objects. |
|
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. |
|
Timer |
Rate of operations on a managed object. |
|
Timer |
Rate of fetches of relationship fields of a managed object. |
|
Timer |
Rate of queries to get relationship values for a resource on a managed object. |
|
Timer |
Rate of validations of relationship fields of a managed object. |
Timer |
Rate of executions of a script on a managed object. |
|
|
Timer |
Latency of enforcing temporal constraints on role objects during object creation. |
|
Timer |
Latency of enforcing temporal constraints on role objects during object deletion. |
|
Timer |
Latency of enforcing temporal constraints on role objects during object update. |
|
Timer |
Latency of enforcing temporal constraints on relationship grants during edge creation. |
|
Timer |
Latency of enforcing temporal constraints on relationship grants during edge deletion. |
|
Timer |
Latency of enforcing temporal constraints on relationship grants during edge update. |
|
Timer |
Rate of reads on relationship endpoint edges for validation. |
|
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. |
|
Timer |
Rate of executions of a full reconciliation, and time taken to perform this operation. |
|
Timer |
Rate of merge operations after source and/or target objects have been retrieved during a merged query of recon association 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. |
|
Timer |
Rate of source object retrieval using a query when merging source objects to recon association entries. |
|
Timer |
Rate of target object retrieval using a query when merging target objects to recon association entries. |
|
Timer |
The time taken to persist association data. The operation can be |
|
Timer |
Rate of executions of the id query phase of a reconciliation, and time taken to perform this operation. |
|
Timer |
Rate of executions of the source phase of a reconciliation, and time taken to perform this operation. |
|
Timer |
Rate of pagination executions of the source phase of a reconciliation, and time taken to perform this operation. |
|
Timer |
Rate of executions of the target phase of a reconciliation, and time taken to perform this operation. |
|
Timer |
Time (ms) spent running the Edge→Vertex relationship join query on the database and collecting the result set. |
|
Timer |
Rate of relationship graph query execution times. |
|
Timer |
Rate of relationship graph query result processing times. |
|
Timer |
Rate of executions of a query with queryId at a repository level and the time taken to perform this operation. |
|
Count |
Counts the usage statistics of the |
|
Timer |
Rate of retrievals of a repository connection. |
|
Timer |
Rate of actions to a repository datasource for a generic/explicit mapped table. |
|
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. |
|
Timer |
Rate of filtered queries (using the |
|
Timer |
Rate of execution time on the JDBC database for the |
|
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. |
|
Timer |
Rate of execution time on the JDBC database for queries (either |
|
Timer |
Rate of CRUDPAQ operations to a repository datasource for a generic/explicit/relationship mapped table. |
|
Timer |
Time (ms) spent in the various phases to retrieve relationship expanded data referenced by queried objects. |
|
Timer |
Rate of initiations of a CRUDPAQ operation to a repository datasource. |
|
Timer |
Rate of actions over the router and the time taken to perform this operation. |
|
Timer |
Rate of creates over the router and the time taken to perform this operation. |
|
Timer |
Rate of deletes over the router and the time taken to perform this operation. |
|
Timer |
Rate of patches over the router and the time taken to perform this operation. |
|
Timer |
Rate of queries with queryExpression completed over the router and the time taken to perform this operation. |
|
Timer |
Rate of queries with queryFilter completed over the router and the time taken to perform this operation. |
|
Timer |
Rate of reads over the router and the time taken to perform this operation. |
|
Timer |
Rate of updates over the router and the time taken to perform this operation. |
|
Timer |
Rate of requests to create a target object, and time taken to perform the operation. |
|
Timer |
Rate of requests to delete a target object, and time taken to perform the operation. |
|
Timer |
Rate of configurations applied to a mapping. |
|
Timer |
Rate of acquisition of queued synchronization events from the queue. |
|
Timer |
Rate of deletion of synchronization events from the queue. |
|
Timer |
Rate at which queued synchronization operations are executed. |
|
Summary |
Number of queued synchronization operations that failed. |
|
Summary |
Number of queued synchronization events acquired by another node in the cluster. |
|
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. |
|
Timer |
Rate at which queued synchronization events are released. |
|
Timer |
Times the release of queued synchronization events after a failure and before exceeding the retry count. |
|
Timer |
Rate of insertion of synchronization events into the queue. |
|
Timer |
The latency involved in polling for synchronization events. |
|
Timer |
Rate of reads of an object. |
|
Timer |
Rate of assessments of a synchronization situation. |
|
Timer |
Rate of correlations between a target and a given source, and time taken to perform this operation. |
|
Timer |
Rate of determinations done on a synchronization action based on its current situation. |
|
Timer |
Rate of completions of an action performed on a synchronization operation. |
|
Timer |
Rate of assessments of a target situation. |
|
Timer |
Rate of determinations done on a target action based on its current situation. |
|
Timer |
Rate of completions of an action performed on a target sync operation. |
|
Timer |
Rate of requests to update an object on the target, and the time taken to perform this operation. |
|
Summary |
Count of all successful logins by user type. |
|
Summary |
Count of all successful logins by user type and provider. |
|
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 traversal_depthX tag for the most recent X. |
|
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 available in IDM
These metrics include Jetty thread pool and request metrics.
| API 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. |
|
|
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 threads used by internal Jetty components. |
|
Gauge |
Count |
Number of available threads reserved for queue management. |
|
Gauge |
Count |
Number of idle threads that aren’t reserved. |
|
Gauge |
Count |
Number of threads currently running transient jobs, such as handling requests. |
|
Gauge |
Count |
Total number of threads in the pool. |
|
Gauge |
Count |
Whether the pool is low on threads. |
|
Gauge |
Count |
Current number of active requests. |
|
Counter |
Count |
Maximum number of concurrently active requests. |
|
Counter |
Count |
Number of requests with a |
|
Counter |
Count |
Number of requests with a |
|
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. |
API JVM metrics available in IDM
| 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. |
| API Metric Name | Type | Unit | Description |
|---|---|---|---|
|
Gauge |
Count |
Number of processors available to the JVM. Learn more about Runtime. |
|
Counter |
Count |
Number of classes loaded since the Java virtual machine started. Learn more about ClassLoadingMXBean. |
|
Counter |
Count |
Number of classes unloaded since the Java virtual machine started. Learn more about ClassLoadingMXBean. |
|
Gauge |
Bytes |
Learn more about Runtime. |
|
Count |
Count |
For each garbage collector in the JVM. Learn more about GarbageCollectorMXBean. |
|
Counter |
Milliseconds |
|
|
Counter |
Count |
|
|
Counter |
Milliseconds |
|
|
Gauge |
Bytes |
Learn more about Runtime. |
|
Gauge |
Bytes |
Amount of heap memory committed for the JVM to use. Learn more about 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 about 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 |
Count |
Learn more about ThreadMXBean. |
|
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 |
Bytes |
Learn more about totalMemory(). |
| Deprecated metrics aren’t shown in the previous table. |
API scheduler metrics available in IDM
Learn more about example requests in Scheduler metrics.
| API Metric Name | Type | Description |
|---|---|---|
|
Summary |
A summary of completed jobs for the specified job-group and job-name. |
|
Timer |
Time spent on executed jobs for the specified job-group and job-name. |
|
Timer |
Time spent storing scheduled jobs in the repository for the specified operation and scheduler-object. |
|
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. |
|
Timer |
Time spent on recovered triggers. |
|
Timer |
Execution rate of scheduler requests for the specified type and operation. |
API workflow metrics available in IDM
| API Metric Name | Type | Description |
|---|---|---|
|
Timer |
Time spent invoking a message event. |
|
Timer |
Time spent invoking a signal event. |
|
Timer |
Time spent triggering an execution. |
|
Timer |
Time spent querying executions. |
|
Timer |
Time spent forcing synchronous execution of a job. |
|
Timer |
Time spent displaying the stacktrace for a job that triggered an exception. |
|
Timer |
Time spent deleting a job. |
|
Timer |
Time spent querying jobs. |
|
Timer |
Time spent reading a single job. |
|
Timer |
Time spent to execute dead-letter job. |
|
Timer |
Time spent to retrieve the stacktrace for a dead-letter job. |
|
Timer |
Time spent to delete a dead letter job. |
|
Timer |
Time spent to query dead letter jobs. |
|
Timer |
Time spent to read a dead letter job. |
|
Timer |
Time spent to deploy a model. |
|
Timer |
Time spent to list model deployments. |
|
Timer |
Time spent to validate BPMN content. |
|
Timer |
Time spent to create a model. |
|
Timer |
Time spent to delete a model. |
|
Timer |
Time spent to query models. |
|
Timer |
Time spent to read a model. |
|
Timer |
Time spent to update a model. |
|
Timer |
Time spent to delete a process definition. |
|
Timer |
Time spent to query process definitions. |
|
Timer |
Time spent to read a process definition. |
|
Timer |
Time spent to migrate a process instance. |
|
Timer |
Time spent to validate a migration of a process instance. |
|
Timer |
Time spent to create a process instance. |
|
Timer |
Time spent to delete a process instance. |
|
Timer |
Time spent to query process instances. |
|
Timer |
Time spent to read a process instance. |
|
Timer |
Time spent to query task definitions. |
|
Timer |
Time spent to read a task definition. |
|
Timer |
Time spent to complete a task instance. |
|
Timer |
Time spent to query task instances. |
|
Timer |
Time spent to read a task instance. |
|
Timer |
Time spent to update a task instance. |