O contrato é deliberadamente trivial, porque a ideia é que você consiga lê-lo de uma vez e implementá-lo
em qualquer linguagem que sua equipe já use. A HostTracker faz uma requisição à sua URL; seu endpoint
responde com um objeto JSON contendo o valor:
{ "v": 42.7 }
Essa é toda a superfície exigida. Dois membros opcionais tornam o resultado mais útil: e
carrega uma string de erro quando o valor não pôde ser lido dessa vez - um resultado muito melhor do que
relatar um zero enganoso - e vs carrega uma string de versão sua, que aparece no resultado
para que você saiba qual build do coletor respondeu.
{ "v": 91.4, "e": "", "vs": "collector-2.1" }
Como você mesmo escreve o leitor, você não está limitado ao que um agente genérico sabe coletar.
Profundidade da fila, taxa de acerto de cache, número de tarefas aguardando, idade do registro não
processado mais antigo, inodes livres, o tamanho de um diretório que nunca pode crescer - qualquer coisa
que você consiga expressar como um número se torna um valor monitorado, com limites, histórico e alertas
associados.
Proteja o endpoint. Ele precisa ser acessível pelos verificadores que o chamam,
então trate-o como qualquer outra URL pública: coloque-o em um caminho não adivinhável, mantenha-o
somente leitura e exponha apenas os números que você se sente confortável em deixar ler. Ele não
aceita parâmetros que mudem qualquer coisa, o que mantém a exposição a exatamente um valor.