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