Existem várias maneiras de criar instrumentação, até você aprender o que constitui uma boa instrumentação. Meu guia é essencialmente retirado diretamente da entrada da Wikipedia https://en.wikipedia.org/wiki/Instrumentation .
Instruções sobre instrumentação
http://www.powersemantics.com/e.html
- Não integrado
- Apenas dados primários
- Puxe, não empurre
- Organizado por processo
- Nunca offline
A solução para o problema de medir indicadores existe, mas você está preso ao conceber como também ter instrumentação "baseada em push" sinalizando outro sistema. Como meu artigo explica, os instrumentos devem sempre extrair dados e nunca pressioná-los. A sinalização orientada a eventos é um ponto potencial de falha que você não precisa.
Para esclarecer qualquer indecisão ou dúvida que você possa ter sobre a criação de um aplicativo separado, os monitores são normalmente processos independentes ( não integrados como a Wikipedia diz). Dizer que seu monitor "pode não estar funcionando" significa que você não escolheu criar um monitor não integrado real, que esteja sempre ligado. O sistema do consumidor não modela corretamente a instrumentação, porque integra a verificação em seu próprio processo.
Separe essas responsabilidades e prossiga. Decida com que frequência o instrumento deve pesquisar razoavelmente os serviços excluídos e os dados com um timer. Se você usar a chamada da API sugerida por simon-pearson, também poderá detectar quando os serviços foram adicionados. Obviamente, o monitor precisa armazenar em cache localmente uma cópia da lista de serviços para que os indicadores possam inferir o que foi adicionado ou removido.