# Liberator Prometheus metrics

This page lists the Prometheus metrics published by Liberator.

Prometheus metrics are not published by default. To enable this feature, see [Publishing DataSource metrics in Prometheus format](../datasource/datasource-configure-prometheus-monitoring.md#datasource).

This feature requires Liberator 7.1.15 or higher.

## Process metrics

Liberator publishes the following metrics on the operating-system process that runs Liberator.

These metrics are only available on RHEL builds of Liberator.

* **process_cpu_seconds_total**\
[gauge] Total user and system CPU time spent in seconds.
* **process_max_fds**\
[gauge] Maximum number of open file descriptors.
* **process_open_fds**\
[gauge] Number of open file descriptors.
* **process_start_time_seconds**\
[gauge] Start time of the process since the unix epoch in seconds.
* **process_virtual_memory_bytes**\
[gauge] Virtual memory size in bytes.
* **process_virtual_memory_max_bytes**\
[gauge] Maximum amount of virtual memory available in bytes.

## System metrics

Liberator publishes the following CPU, memory, and process metrics, where _appname_ is Liberator’s application name, as defined by the [`application-name`](../datasource/datasource-run-time-environment-configuration.md#application-name) configuration item (defaults to `rttpd`).

* **rttpd_system_cputime_total**\
[gauge] The total amount of time (seconds) the CPU has spent running the DataSource process. This value is the sum of **rttpd_system_system_cputime_total** and **rttpd_system_user_cputime_total**.
* **rttpd_system_system_cputime_total**\
[gauge] The total amount of time (seconds) the CPU has spent running kernel-space code for the DataSource process.
* **rttpd_system_user_cputime_total**\
[gauge] The total amount of time (seconds) the CPU has spent running user-space code for the DataSource process.
* **rttpd_system_process_uptime**\
[gauge] Elapsed 'wall clock' time (seconds) since the DataSource process was started.
* **rttpd_system_memory_usage**\
[gauge] The total amount of virtual memory (kilobytes) used by the DataSource process, as reported by the `VmRSS` value in `/proc/<pid>/status`.
* **rttpd_system_cpu_usage**\
[gauge] Average CPU percentage used by the DataSource process in the period configured by the configuration option [`process-usage-period`](../datasource/datasource-datasource-monitoring-configuration-part-1.md#process-usage-period) (default 10 seconds).

## DataSource peer metrics

Liberator publishes the following metrics on connected DataSource peers, where where _appname_ is Liberator’s application name as defined by the [`application-name`](../datasource/datasource-run-time-environment-configuration.md#application-name) configuration item (defaults to `rttpd`).

* **rttpd_peer_global_bytes_read**\
[gauge] Total number of bytes read from all peer connections.
* **rttpd_peer_global_bytes_read_rate**\
[gauge] The rate data is received (bytes/second) from all peer connections, measured over the sample period defined by [`peer-monitor-interval`](../datasource/datasource-datasource-peers-configuration-part-2.md#peer-monitor-interval).
* **rttpd_peer_global_bytes_written**\
[gauge] Total number of bytes written to peer connections.
* **rttpd_peer_global_bytes_written_rate**\
[gauge] The rate data is written (bytes/second) to all peer connections, measured over the sample period defined by [`peer-monitor-interval`](../datasource/datasource-datasource-peers-configuration-part-2.md#peer-monitor-interval).
* **rttpd_peer_global_messages_read**\
[gauge] Total number of messages read from peer connections.
* **rttpd_peer_global_messages_read_rate**\
[gauge] The rate messages are received (messages/second) from all peer connections, measured over the sample period defined by [`peer-monitor-interval`](../datasource/datasource-datasource-peers-configuration-part-2.md#peer-monitor-interval).
* **rttpd_peer_global_messages_written**\
[gauge] Total number of messages written to peer connections.
* **rttpd_peer_global_messages_written_rate**\
[gauge] The rate messages are written (messages/second) to all peer connections, measured over the sample period defined by [`peer-monitor-interval`](../datasource/datasource-datasource-peers-configuration-part-2.md#peer-monitor-interval).

## Data service metrics

Liberator publishes the following metrics for each [data service](../datasource/datasource-data-services.md), where _appname_ is Liberator’s application name as defined by [`application-name`](../datasource/datasource-run-time-environment-configuration.md#application-name) (defaults to `rttpd`) and `servicename` is the name of the data service.

* **rttpd_service___servicename___average_response_time**\
[gauge] The average time (milliseconds) taken for the data service to respond to a subscription request, measured over the sample period defined by [`peer-monitor-interval`](../datasource/datasource-datasource-peers-configuration-part-2.md#peer-monitor-interval).
* **rttpd_service___servicename___bytes_read**\
[gauge] Total number of bytes read from the data service.
* **rttpd_service___servicename___bytes_read_rate**\
[gauge] The rate at which data is received (bytes/second) from the data service, measured over the sample period defined by [`peer-monitor-interval`](../datasource/datasource-datasource-peers-configuration-part-2.md#peer-monitor-interval).
* **rttpd_service___servicename___bytes_written**\
[gauge] Total number of bytes written to the data service.
* **rttpd_service___servicename___bytes_written_rate**\
[gauge] The rate at which data is written (bytes/second) to the data service, measured over the sample period defined by [`peer-monitor-interval`](../datasource/datasource-datasource-peers-configuration-part-2.md#peer-monitor-interval).
* **rttpd_service___servicename___messages_read**\
[gauge] The total number of messages received from the data service.
* **rttpd_service___servicename___messages_read_rate**\
[gauge] The rate at which messages are received (messages/second) from the data service, measured over the sample period defined by [`peer-monitor-interval`](../datasource/datasource-datasource-peers-configuration-part-2.md#peer-monitor-interval).
* **rttpd_service___servicename___messages_written**\
[gauge] The total number of messages written to the data service.
* **rttpd_service___servicename___messages_written_rate**\
[gauge] The rate at which messages are written (messages/second) to the data service, measured over the sample period defined by [`peer-monitor-interval`](../datasource/datasource-datasource-peers-configuration-part-2.md#peer-monitor-interval).
* **rttpd_service___servicename___response_time**\
[gauge] The time taken (seconds) for the data service to respond to the first subscription request. This value only changes if the object is discarded and requested again.
* **rttpd_service___servicename___state**\
[gauge] The state of the data service. It has two possible values: `1` for up, `0` for down.

## User metrics

Liberator publishes the following metrics for users, where _appname_ is Liberator’s application name as defined by [`application-name`](../datasource/datasource-run-time-environment-configuration.md#application-name) (defaults to `rttpd`).

* **rttpd_user_global_login_fail**\
[counter] The total number of failed logins.
* **rttpd_user_global_read_fail**\
[counter] The total number of failed reads.
* **rttpd_user_global_write_fail**\
[counter] The total number of failed writes.
* **rttpd_user_global_users**\
[gauge] The total number of live RTTP sessions. Equal to  **rttpd_session_global_logged_in**. Equal to or greater than **rttpd_user_global_unique_users**, depending on the number of live RTTP sessions per user account.
* **rttpd_user_global_unique_users**\
[gauge] The total number of user accounts with one or more live RTTP sessions. Equal to or less than **rttpd_user_global_users**, depending on the number of live RTTP sessions per user account.

## RTTP session metrics

Liberator publishes the following metrics for RTTP sessions, where _appname_ is Liberator’s application name as defined by [`application-name`](../datasource/datasource-run-time-environment-configuration.md#application-name) (defaults to `rttpd`).

* **rttpd_session_global_bytes_read**\
[gauge] Total number of bytes Liberator has read from all RTTP sessions.
* **rttpd_session_global_bytes_read_rate**\
[gauge] The rate at which Liberator reads data (bytes/second) from all RTTP sessions, measured over the sample period defined by [`session-monitoring-interval`](../datasource/datasource-datasource-monitoring-configuration-part-1.md#session-monitoring-interval).
* **rttpd_session_global_bytes_written**\
[gauge] Total number of bytes that Liberator has written to all RTTP sessions. This metric is measured _before_ the application of optional protocol compression (see [`http-extensions`](xref:liberator-http-configuration-part-1.md#http-extensions)).
* **rttpd_session_global_bytes_written_rate**\
[gauge] The rate at which Liberator writes data (bytes/second) to all RTTP sessions, measured over the sample period defined by [`session-monitoring-interval`](../datasource/datasource-datasource-monitoring-configuration-part-1.md#session-monitoring-interval). This metric is measured _before_ the application of optional protocol compression (see [`http-extensions`](xref:liberator-http-configuration-part-1.md#http-extensions)).
* **rttpd_session_global_bytes_written_actual**\
[gauge] Total number of bytes Liberator has written to all RTTP sessions. This metric is measured _after_ the application of optional protocol compression (see [`http-extensions`](xref:liberator-http-configuration-part-1.md#http-extensions)).
* **rttpd_session_global_bytes_written_actual_rate**\
[gauge] The rate at which Liberator writes data (bytes/second) to all RTTP sessions, measured over the sample period defined by [`session-monitoring-interval`](../datasource/datasource-datasource-monitoring-configuration-part-1.md#session-monitoring-interval). This metric is measured _after_ the application of optional protocol compression (see [`http-extensions`](xref:liberator-http-configuration-part-1.md#http-extensions)).
* **rttpd_session_global_contribs**\
[gauge] The total number of RTTP contributions received by Liberator across all RTTP sessions.
* **rttpd_session_global_contribs_rate**\
[gauge] The rate at which Liberator receives RTTP contributions (contributions/second) across all RTTP sessions, measured over the sample period defined by [`session-monitoring-interval`](../datasource/datasource-datasource-monitoring-configuration-part-1.md#session-monitoring-interval).
* **rttpd_session_global_count**\
[gauge] The total number of RTTP sessions, including sessions that are not logged in. Compare with **rttpd_session_global_logged_in**.
* **rttpd_session_global_discards**\
[gauge] The total number of objects discarded by Liberator across all RTTP sessions.
* **rttpd_session_global_discards_rate**\
[gauge] The rate at which Liberator discards objects (objects/second) across all RTTP sessions.
* **rttpd_session_global_logged_in**\
[gauge] The total number of logged in sessions.
* **rttpd_session_global_requests**\
[gauge] The total number of subject requests received by Liberator across all RTTP sessions.
* **rttpd_session_global_requests_rate**\
[gauge] The rate at which Liberator receives subject requests (subjects/second) across all RTTP sessions, measured over the sample period defined by [`session-monitoring-interval`](../datasource/datasource-datasource-monitoring-configuration-part-1.md#session-monitoring-interval).
* **rttpd_session_global_updates**\
[gauge] The total number of updates sent by Liberator to all RTTP sessions.
* **rttpd_session_global_updates_rate**\
[gauge] The rate at which Liberator sends updates (updates/second) to all RTTP sessions, measured over the sample period defined by [`session-monitoring-interval`](../datasource/datasource-datasource-monitoring-configuration-part-1.md#session-monitoring-interval).
* **rttpd_session_global_duration**\
[gauge] Cumulative duration of all RTTP sessions. The duration of an RTTP session is added to this total when the session is removed.
