.. _status_monitoring_plugin: Status Monitoring ================= The status monitoring module add some extra information about the system in the GeoServer status page in a new tab named ``Monitoring`` and make that info queryable through GeoServer REST interface. This info should allow an administrator to get a quick understanding about the status of the GeoServer instance. `Library OSHI `_ is used to retrieving system-level information without depending on native libraries or DLLs, relying solely on `Apache JNA `_. Major operating systems (Linux, Windows and MacOX) are supported out of the box. The available system information is: .. list-table:: :widths: 30 20 50 * - **Info** - **Example** - **Description** * - Operating system - Linux Mint 18 - Name of the operating system and the used version * - Uptime - 08:34:50 - Up time of the system * - System average load 1 minute - 0.90 - System average load for the last minute * - System average load 5 minutes - 1.12 - System average load for the last five minute * - System average load 15 minute - 0.68 - System average load for the last fifteen minute * - Number of physical CPUs - 4 - Number of physical CPUs / cores available * - Number of logical CPUs - 8 - Number of logical CPUs / cores available * - Number of running process - 316 - Total number of process running in the system * - Number of running threads - 1094 - Total number of threads running in the system * - CPU load average - 4.12 % - Average load of the CPU in the last second * - CPU * load - 11.43 % - Load of a specific core in the last second * - Used physical memory - 31.58 % - Percentage of the system memory used * - Total physical memory - 31.4 GiB - System total memory * - Free physical memory - 21.4 GiB - System memory available for use * - Used swap memory - 0.00% - Percentage of swap memory used * - Total swap memory - 32.0 GiB - System total swap memory * - Free swap memory - 32.0 GiB - Free swap memory * - File system usage - 65.47 % - File system usage taking in account all partitions * - Partition * used space - 54.8 % - Percentage of space used in a specific partition * - Partition * total space - 338.9 GiB - Total space of a specific partition * - Partition * free space - 117.0 GiB - Free space on a specific partition * - Network interfaces send - 42.0 MiB - Data send through all the available network interfaces * - Network interfaces received - 700.4 MiB - Data received through all the available network interfaces * - Network interface * send - 25.0 MiB - Data send through a specific network interface * - Network interface * received - 250.4 MiB - Data received through a specific network interface * - CPU temperature - 52.00 ÂșC - CPU temperature * - CPU voltage - 1.5 V - CPU voltage * - GeoServer CPU usage - 3.5 % - Percentage of CPU used by GeoServer in the last second * - GeoServer threads - 49 - Number of threads created by GeoServer * - GeoServer JVM memory usage - 5.83 % - Percentage of the JVM memory used by GeoServer If some information is not available the special term ``NOT AVAILABLE`` will appear. Values will be automatically converted to best human readable unit. Installing the extension ------------------------ #. Download the Status Monitoring extension from the nightly GeoServer community module builds. #. Place the JARs into the ``WEB-INF/lib`` directory of the GeoServer installation. Usage ----- The system information will be available in the GeoServer status page in the ``Monitoring`` tab (the following image only shows part of the available system information): .. figure:: images/gui.png :align: center | If the ``Monitoring`` tab is not present, it means that the plugin was not installed correctly. The ``Monitoring`` tab content will be refreshed automatically every second. REST interface -------------- It is possible to request the available system information (monitoring data) through GeoServer REST API. The supported formats are XML, JSON and HTML. The available REST endpoints are: :: /geoserver/rest/about/monitoring /geoserver/rest/about/monitoring.json /geoserver/rest/about/monitoring.xml /geoserver/rest/about/monitoring.html The HTML representation of the system data is equal to the ``Monitoring`` tab representation: .. figure:: images/resthtml.png :align: center | The XML and JSON representations are quite similar, for each system information the following attributes will be available: .. list-table:: :widths: 40 60 * - **Name** - **Description** * - name - name of the metric * - available - TRUE if the system information value is available * - description - description of this system information * - unit - unit of the system information, can be empty * - category - category of this system information * - priority - this value can be used to render the metrics in a predefined order * - identifier - identifies the resource associated with the metric, e.g. file partition name Example of XML representation: :: 99614720 true Partition [/dev/nvme0n1p2] total space PARTITION_TOTAL bytes FILE_SYSTEM /dev/nvme0n1p2 507 (...) Example of JSON representation: :: { "metrics": { "metric": [ { "available": true, "category": "FILE_SYSTEM", "description": "Partition [/dev/nvme0n1p2] total space", "identifier": "/dev/nvme0n1p2", "name": "PARTITION_TOTAL", "priority": 507, "unit": "bytes", "value": 99614720 }, (...)