Sangeetha Shankar
I work as a research associate in the area of data management and geodata processing at the Institute of Transportation Systems, German Aerospace Center (DLR), Germany. Further information can be found in my ORCID profile: https://orcid.org/0000-0003-0387-7740
Sessions
Optimal performance of GeoServers in production environments is essential to provide high quality of service to the users. A GeoServer deployed in production environment may host several layers that serve data from multiple data sources (datastores). GeoServer offers a monitor extension that tracks the requests received by the GeoServer and collects information such as requested resources, response time, response status and so on. The monitor extension supports two methods of storing these metrics. The first option is memory storage, where the metrics on the last 100 requests are stored in memory. However, this storage is volatile and information is lost when the GeoServer is restarted. Additionally, this option is insufficient for GeoServers receiving several hundreds of requests every day. The second option is audit logging, which stores the metrics in a file on the server. However, a secondary application will have to process them to analyze or visualize the data. Apart from these, the Hibernate Monitor community module was available to store the metrics in a database. However, this community module is not available for the newer versions of the GeoServer and also seems to no longer be maintained.
The GeoServer Monitor PostgreSQL module presented in this talk aims to overcome the aforementioned limitations by offering a solution to persist the metrics in a PostgreSQL database. This module is an extension to the official monitoring extension of the GeoServer. It fetches the metrics generated by the monitoring extension after a request is post-processed and persists them in a PostgreSQL database. The persistent storage of metrics enables the administrators as well as the users of the GeoServer to analyze the performance of their GeoServer layers. The GeoServer Monitor PostgreSQL module offers a simple, low-level approach to write records to the database through the use of native Java libraries and PostgreSQL JDBC Driver. Lesser dependency on external modules makes this extension easy to maintain and update.
The module was developed in 2022 and has been installed in a GeoServer instance managed by the Institute of Transportation Systems, German Aerospace Center (DLR). This GeoServer instance receives more than 7000 requests every day. The request metrics are being persisted since October 2022 and bug fixes and improvements have been carried out during this test run. The open-source publication of the module is currently in progress and is expected to be completed by March 2024. This work is being carried out as a part of the DLR-funded cross-domain project called “Digitaler Atlas 2.0”.