Quando estamos rodando o GeoServer no ambiente de produção, é muito importante ter insumos para poder saber como está a sua performance, independente se ela está boa ou não! Em dias que tudo roda na nuvem, é importante saber também se não estamos usando recurso demais para determinada ferramenta, pois nesses casos, o recurso extra que não está sendo utilizado, é literalmente dinheiro jogado fora.
O módulo de monitoramento de status adiciona algumas informações extras sobre o sistema na página de status do GeoServer em uma nova aba nomeada “Monitoring” e torna essa informação pesquisável através da interface REST do GeoServer. Esta informação deve permitir que um administrador tenha uma rápida compreensão sobre o status da instância do GeoServer.
A biblioteca OSHI é usada para recuperar informações no nível de sistema sem depender de bibliotecas nativas ou DLLs, confiando apenas no Apache JNA. Os principais sistemas operacionais (Linux, Windows e MacOSX) são suportados por esta biblioteca.
As informações do sistema disponíveis são:
Se alguma informação não estiver disponível, um termo especial aparecerá. Os valores serão convertidos automaticamente para a melhor unidade legível por humanos: “NÃO DISPONÍVEL”. rsrsrs!
As informações do sistema estarão disponíveis na página de status do GeoServer na guia Monitoramento (a imagem a seguir mostra apenas parte das informações do sistema disponíveis):
Se a guia Monitoramento não estiver presente, isso significa que o plug-in não foi instalado corretamente. Para instalar, basta baixar o arquivo (geoserver-X.XX-SNAPSHOT-status-monitoring-plugin.zip) no GeoServer Community Module Builds, descompactar e inserí-los na pasta WEB-INF\lib. Baixe sempre o arquivo compatível com a versão do GeoServer que você está utilizando!
O conteúdo da guia é atualizado automaticamente a cada segundo, e é possível solicitar as informações do sistema disponíveis (dados de monitoramento) por meio da API REST do GeoServer. Os formatos suportados são XML, JSON e HTML.
Os pontos de extremidade REST disponíveis são:
/geoserver/rest/about/monitoring /geoserver/rest/about/monitoring.json /geoserver/rest/about/monitoring.xml /geoserver/rest/about/monitoring.html
As representações XML e JSON são bastante semelhantes. Para cada informação do sistema, os seguintes atributos estarão disponíveis:
Veja um exemplo de JSON:
{ "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 }, (...)
Fonte: GeoServer Documentation