# REST Adapter Prometheus metrics

This page describes the Prometheus metrics published by Liberator’s REST Adapter.

**Since:** Platform 8

## Process metrics

Metrics for the Java virtual machine (JVM), process, and system running the DataSource.

The JVM metrics available may differ depending on the JVM and garbage collector.

* **jvm_buffer_count_buffers**

  An estimate of the number of buffers in the pool.

  **Type:** Gauge

  **Labels**

  |     |     |     |
  | --- | --- | --- |
  | icon:tag[] | app_name | DataSource [application name](../datasource/datasource-run-time-environment-configuration.md#application-name) |
  | icon:tag[] | id | Buffer identifier. Examples: 'direct', 'mapped'. |
* **jvm_buffer_memory_used_bytes**

  An estimate of the memory that the Java virtual machine is using for this buffer pool.

  **Type:** Gauge

  **Labels**

  |     |     |     |
  | --- | --- | --- |
  | icon:tag[] | app_name | DataSource [application name](../datasource/datasource-run-time-environment-configuration.md#application-name) |
  | icon:tag[] | id | Buffer identifier. Examples: 'direct', 'mapped'. |
* **jvm_buffer_total_capacity_bytes**

  An estimate of the total capacity of the buffers in this pool.

  **Type:** Gauge

  **Labels**

  |     |     |     |
  | --- | --- | --- |
  | icon:tag[] | app_name | DataSource [application name](../datasource/datasource-run-time-environment-configuration.md#application-name) |
  | icon:tag[] | id | Buffer identifier. Examples: 'direct', 'mapped'. |
* **jvm_gc_live_data_size_bytes**

  Size of old generation memory pool after a full GC.

  **Type:** Gauge

  **Labels**

  |     |     |     |
  | --- | --- | --- |
  | icon:tag[] | app_name | DataSource [application name](../datasource/datasource-run-time-environment-configuration.md#application-name) |
* **jvm_gc_max_data_size_bytes**

  Max size of old generation memory pool.

  **Type:** Gauge

  **Labels**

  |     |     |     |
  | --- | --- | --- |
  | icon:tag[] | app_name | DataSource [application name](../datasource/datasource-run-time-environment-configuration.md#application-name) |
* **jvm_gc_memory_allocated_bytes_total**

  Incremented for an increase in the size of the young generation memory pool after one GC to before the next.

  **Type:** Counter

  **Labels**

  |     |     |     |
  | --- | --- | --- |
  | icon:tag[] | app_name | DataSource [application name](../datasource/datasource-run-time-environment-configuration.md#application-name) |
* **jvm_gc_memory_promoted_bytes_total**

  Count of positive increases in the size of the old generation memory pool before GC to after GC.

  **Type:** Counter

  **Labels**

  |     |     |     |
  | --- | --- | --- |
  | icon:tag[] | app_name | DataSource [application name](../datasource/datasource-run-time-environment-configuration.md#application-name) |
* **jvm_gc_pause_seconds**

  Time spent in GC pause.

  **Type:** Summary

  **Labels**

  |     |     |     |
  | --- | --- | --- |
  | icon:tag[] | action | `end of major GC`, `end of minor GC` |
  | icon:tag[] | cause | `Metadata GC Threshold`, `Allocation Failure` |
* **jvm_gc_pause_seconds_max**

  Time spent in GC pause

  **Type:** Gauge

  **Labels**

  |     |     |     |
  | --- | --- | --- |
  | icon:tag[] | action | `end of major GC`, `end of minor GC` |
  | icon:tag[] | cause | `Metadata GC Threshold`, `Allocation Failure` |
* **jvm_memory_committed_bytes**

  The amount of memory in bytes that is committed for the Java virtual machine to use

  **Type:** Gauge

  **Labels**

  |     |     |     |
  | --- | --- | --- |
  | icon:tag[] | app_name | DataSource [application name](../datasource/datasource-run-time-environment-configuration.md#application-name) |
  | icon:tag[] | area | `heap`, `nonheap` |
  | icon:tag[] | id | memory block identifier. Examples: "G1 Eden Space", "G1 Old Gen" |
* **jvm_memory_max_bytes**

  The maximum amount of memory in bytes that can be used for memory management

  **Type:** Gauge

  **Labels**

  |     |     |     |
  | --- | --- | --- |
  | icon:tag[] | app_name | DataSource [application name](../datasource/datasource-run-time-environment-configuration.md#application-name) |
  | icon:tag[] | area | `heap`, `nonheap` |
  | icon:tag[] | id | memory block identifier. Examples: "G1 Eden Space", "G1 Old Gen" |
* **jvm_memory_used_bytes**

  The amount of used memory.

  **Type:** Gauge

  **Labels**

  |     |     |     |
  | --- | --- | --- |
  | icon:tag[] | app_name | DataSource [application name](../datasource/datasource-run-time-environment-configuration.md#application-name) |
  | icon:tag[] | area | `heap`, `nonheap` |
  | icon:tag[] | id | memory block identifier. Examples: "G1 Eden Space", "G1 Old Gen" |
* **jvm_threads_daemon_threads**

  The current number of live daemon threads.

  **Type:** Gauge

  **Labels**

  |     |     |     |
  | --- | --- | --- |
  | icon:tag[] | app_name | DataSource [application name](../datasource/datasource-run-time-environment-configuration.md#application-name) |
* **jvm_threads_live_threads**

  The current number of live threads including both daemon and non-daemon threads.

  **Type:** Gauge

  **Labels**

  |     |     |     |
  | --- | --- | --- |
  | icon:tag[] | app_name | DataSource [application name](../datasource/datasource-run-time-environment-configuration.md#application-name) |
* **jvm_threads_peak_threads**

  The peak live thread count since the Java virtual machine started or peak was reset.

  **Type:** Gauge

  **Labels**

  |     |     |     |
  | --- | --- | --- |
  | icon:tag[] | app_name | DataSource [application name](../datasource/datasource-run-time-environment-configuration.md#application-name) |
* **jvm_threads_states_threads**

  The current number of threads having NEW state.

  **Type:** Gauge

  **Labels**

  |     |     |     |
  | --- | --- | --- |
  | icon:tag[] | app_name | DataSource [application name](../datasource/datasource-run-time-environment-configuration.md#application-name) |
  | icon:tag[] | state | `runnable`, `blocked`, `waiting`, `timed-waiting`, `new`, `terminated` |
* **process_cpu_usage**

  The "recent cpu usage" for the Java Virtual Machine process.

  **Type:** Gauge

  **Labels**

  |     |     |     |
  | --- | --- | --- |
  | icon:tag[] | app_name | DataSource [application name](../datasource/datasource-run-time-environment-configuration.md#application-name) |
* **process_start_time_seconds**

  Start time of the process since Unix epoch.

  **Type:** Gauge

  **Labels**

  |     |     |     |
  | --- | --- | --- |
  | icon:tag[] | app_name | DataSource [application name](../datasource/datasource-run-time-environment-configuration.md#application-name) |
* **process_uptime_seconds**

  The uptime of the Java virtual machine.

  **Type:** Gauge

  **Labels**

  |     |     |     |
  | --- | --- | --- |
  | icon:tag[] | app_name | DataSource [application name](../datasource/datasource-run-time-environment-configuration.md#application-name) |
* **system_cpu_count**

  The number of processors available to the Java virtual machine.

  **Type:** Gauge

  **Labels**

  |     |     |     |
  | --- | --- | --- |
  | icon:tag[] | app_name | DataSource [application name](../datasource/datasource-run-time-environment-configuration.md#application-name) |
* **system_cpu_usage**

  The "recent cpu usage" for the whole system.

  **Type:** Gauge

  **Labels**

  |     |     |     |
  | --- | --- | --- |
  | icon:tag[] | app_name | DataSource [application name](../datasource/datasource-run-time-environment-configuration.md#application-name) |
* **system_load_average_1m**

  The sum of the number of runnable entities queued to available processors and the number of runnable entities running on the available processors averaged over a period of time.

  **Type:** Gauge

  **Labels**

  |     |     |     |
  | --- | --- | --- |
  | icon:tag[] | app_name | DataSource [application name](../datasource/datasource-run-time-environment-configuration.md#application-name) |

## DataSource metrics

Metrics for Java DataSources.

* **datasource_cached_publisher_subscriptions**

  **Type:** Gauge

  **Labels**

  |     |     |     |
  | --- | --- | --- |
  | icon:tag[] | app_name | DataSource [application name](../datasource/datasource-run-time-environment-configuration.md#application-name) |
  | icon:tag[] | name | Cached publisher identifier |
* **datasource_cached_publisher_messages_total**

  **Type:** Gauge

  **Labels**

  |     |     |     |
  | --- | --- | --- |
  | icon:tag[] | app_name | DataSource [application name](../datasource/datasource-run-time-environment-configuration.md#application-name) |
  | icon:tag[] | name | Cached publisher identifier |
* **datasource_system_threads_delayed**

  Count of delayed threads that have been delayed for 5 seconds or more. Delayed threads are an indication that the DataSource is under high load or that threads have locked up.

  **Type:** Gauge

  **Labels**

  |     |     |     |
  | --- | --- | --- |
  | icon:tag[] | app_name | DataSource [application name](../datasource/datasource-run-time-environment-configuration.md#application-name) |

## DataSource peer metrics

Metrics for Java DataSource peer connections.

* **datasource_bytes_read**

  **Type:** Gauge

  **Labels**

  |     |     |     |
  | --- | --- | --- |
  | icon:tag[] | app_name | DataSource [application name](../datasource/datasource-run-time-environment-configuration.md#application-name) |
  | icon:tag[] | peer_name | DataSource peer identifier |
* **datasource_bytes_written**

  **Type:** Gauge

  **Labels**

  |     |     |     |
  | --- | --- | --- |
  | icon:tag[] | app_name | DataSource [application name](../datasource/datasource-run-time-environment-configuration.md#application-name) |
  | icon:tag[] | peer_name | DataSource peer identifier |
* **datasource_discard_average**

  Average duration of discarded requests from a DataSource peer. To configure the update frequency for this metric, see [`peer-debug-metrics-interval`](../datasource/datasource-datasource-peers-configuration-part-2.md#peer-debug-metrics-interval).

  **Type:** Gauge

  **Labels**

  |     |     |     |
  | --- | --- | --- |
  | icon:tag[] | app_name | DataSource [application name](../datasource/datasource-run-time-environment-configuration.md#application-name) |
  | icon:tag[] | peer_name | DataSource peer identifier |
* **datasource_discard_count**

  Total number of discarded requests from a DataSource peer. To configure the update frequency for this metric, see [`peer-debug-metrics-interval`](../datasource/datasource-datasource-peers-configuration-part-2.md#peer-debug-metrics-interval).

  **Type:** Counter

  **Labels**

  |     |     |     |
  | --- | --- | --- |
  | icon:tag[] | app_name | DataSource [application name](../datasource/datasource-run-time-environment-configuration.md#application-name) |
  | icon:tag[] | peer_name | DataSource peer identifier |
* **datasource_discard_max**

  Duration in milliseconds of the longest discarded request from a DataSource peer. To configure the update frequency for this metric, see [`peer-debug-metrics-interval`](../datasource/datasource-datasource-peers-configuration-part-2.md#peer-debug-metrics-interval).

  **Type:** Gauge

  **Labels**

  |     |     |     |
  | --- | --- | --- |
  | icon:tag[] | app_name | DataSource [application name](../datasource/datasource-run-time-environment-configuration.md#application-name) |
  | icon:tag[] | peer_name | DataSource peer identifier |
* **datasource_executor_queue_length**

  Total number of requests from a DataSource peer that are pending execution. To configure the update frequency for this metric, see [`peer-debug-metrics-interval`](../datasource/datasource-datasource-peers-configuration-part-2.md#peer-debug-metrics-interval).

  **Type:** Counter

  **Labels**

  |     |     |     |
  | --- | --- | --- |
  | icon:tag[] | app_name | DataSource [application name](../datasource/datasource-run-time-environment-configuration.md#application-name) |
  | icon:tag[] | peer_name | DataSource peer identifier |
* **datasource_messages_read**

  **Type:** Gauge

  **Labels**

  |     |     |     |
  | --- | --- | --- |
  | icon:tag[] | app_name | DataSource [application name](../datasource/datasource-run-time-environment-configuration.md#application-name) |
  | icon:tag[] | peer_name | DataSource peer identifier |
* **datasource_netty_bytes_before_writable**

  How many bytes remain in underlying buffers until a thread can begin to process queued requests. See [`Channel.bytesBeforeWritable()`](https://netty.io/4.1/api/io/netty/channel/Channel.html#bytesBeforeWritable--) for more information. To configure the update frequency for this metric, see [`peer-debug-metrics-interval`](../datasource/datasource-datasource-peers-configuration-part-2.md#peer-debug-metrics-interval).

  **Type:** Gauge

  **Labels**

  |     |     |     |
  | --- | --- | --- |
  | icon:tag[] | app_name | DataSource [application name](../datasource/datasource-run-time-environment-configuration.md#application-name) |
  | icon:tag[] | peer_name | DataSource peer identifier |
* **datasource_netty_bytes_before_unwritable**

  How many bytes can be written to underlying buffers until a thread must add new requests to the queue rather than process them immediately. See [`Channel.bytesBeforeUnwritable()`](https://netty.io/4.1/api/io/netty/channel/Channel.html#bytesBeforeUnwritable--) for more information. To configure the update frequency for this metric, see [`peer-debug-metrics-interval`](../datasource/datasource-datasource-peers-configuration-part-2.md#peer-debug-metrics-interval).

  **Type:** Gauge

  **Labels**

  |     |     |     |
  | --- | --- | --- |
  | icon:tag[] | app_name | DataSource [application name](../datasource/datasource-run-time-environment-configuration.md#application-name) |
  | icon:tag[] | peer_name | DataSource peer identifier |

* **datasource_messages_written**

  Total number of messages written to a specific DataSource peer.

  **Type:** Gauge

  **Labels**

  |     |     |     |
  | --- | --- | --- |
  | icon:tag[] | app_name | DataSource [application name](../datasource/datasource-run-time-environment-configuration.md#application-name) |
  | icon:tag[] | peer_name | DataSource peer identifier |
* **datasource_ping_pong_time**

  Average of the last ten heartbeat round-trip times.

  **Type:** Gauge

  **Labels**

  |     |     |     |
  | --- | --- | --- |
  | icon:tag[] | app_name | DataSource [application name](../datasource/datasource-run-time-environment-configuration.md#application-name) |
  | icon:tag[] | peer_name | DataSource peer identifier |
* **datasource_request_average**

  Average duration of requests from a DataSource peer. To configure the update frequency for this metric, see [`peer-debug-metrics-interval`](../datasource/datasource-datasource-peers-configuration-part-2.md#peer-debug-metrics-interval).

  **Type:** Gauge

  **Labels**

  |     |     |     |
  | --- | --- | --- |
  | icon:tag[] | app_name | DataSource [application name](../datasource/datasource-run-time-environment-configuration.md#application-name) |
  | icon:tag[] | peer_name | DataSource peer identifier |
* **datasource_request_count**

  Total number of requests made from a DataSource peer. To configure the update frequency for this metric, see [`peer-debug-metrics-interval`](../datasource/datasource-datasource-peers-configuration-part-2.md#peer-debug-metrics-interval).

  **Type:** Counter

  **Labels**

  |     |     |     |
  | --- | --- | --- |
  | icon:tag[] | app_name | DataSource [application name](../datasource/datasource-run-time-environment-configuration.md#application-name) |
  | icon:tag[] | peer_name | DataSource peer identifier |
* **datasource_request_max**

  Duration in milliseconds of the longest request from a DataSource peer. To configure the update frequency for this metric, see [`peer-debug-metrics-interval`](../datasource/datasource-datasource-peers-configuration-part-2.md#peer-debug-metrics-interval).

  **Type:** Gauge

  **Labels**

  |     |     |     |
  | --- | --- | --- |
  | icon:tag[] | app_name | DataSource [application name](../datasource/datasource-run-time-environment-configuration.md#application-name) |
  | icon:tag[] | peer_name | DataSource peer identifier |

## REST metrics

The REST Adapter publishes the following Prometheus metrics.

Prometheus metrics are not published by default. For instructions, see [Configure DataSource Prometheus monitoring](../datasource/datasource-configure-prometheus-monitoring.md).

* **restadapter_global_requests**

  The total number of requests handled by the REST Adapter since startup.

  **Type:** Counter
* **restadapter_global_current_requests**

  The number of requests currently being handled by the REST Adapter.

  **Type:** Gauge
* **restadapter_endpoints_requests**

  The number of REST Adapter requests sent to each REST service since startup.

  **Type:** Counter

  **Labels**

  |     |     |     |
  | --- | --- | --- |
  | icon:tag[] | namespace | Subject prefix |

  **Labels**

  * `namespace="__subject_prefix__"`
* **restadapter_endpoints_responses**

  The number of responses to the REST Adapter from requests sent to each REST service since startup.

  **Type:** Counter

  **Labels**

  |     |     |     |
  | --- | --- | --- |
  | icon:tag[] | namespace | Subject prefix |
  | icon:tag[] | result | Possible values: 'ok', 'error' |
  | icon:tag[] | status_code | HTTP status code |
* **restadapter_endpoints_bytes_sent**

  The total number of bytes sent from the REST Adapter to each REST service as request payload since startup.

  **Type:** Counter

  **Labels**

  |     |     |     |
  | --- | --- | --- |
  | icon:tag[] | namespace | Subject prefix |
* **restadapter_endpoints_bytes_received**

  The total number of bytes received by the REST Adapter from each REST service as response payload since startup.

  **Type:** Counter

  **Labels**

  |     |     |     |
  | --- | --- | --- |
  | icon:tag[] | namespace | Subject prefix |
