Контракт навмисно тривіальний, адже суть у тому, щоб ви могли прочитати його за один раз і реалізувати будь-якою мовою, яку вже використовує ваша команда. HostTracker запитує вашу URL-адресу; ваша кінцева точка відповідає об’єктом JSON, що несе значення:
{ "v": 42.7 }
Це весь обов’язковий контракт. Два опційні члени роблять результат кориснішим: e несе рядок помилки, коли цього разу значення не вдалося зчитати, - набагато кращий результат, ніж повідомити оманливий нуль, - а vs несе власний рядок версії, який з’являється в результаті, тож ви можете дізнатись, яка збірка колектора відповіла.
{ "v": 91.4, "e": "", "vs": "collector-2.1" }
Оскільки ви пишете зчитувач самі, ви не обмежені тим, що вміє збирати типовий агент. Глибина черги, коефіцієнт влучань у кеш, кількість завдань в очікуванні, вік найстарішого необробленого запису, вільні inode, розмір каталогу, що ніколи не має рости, - будь-що, що можна виразити числом, стає відстежуваним значенням із порогами, історією й прив’язаними сповіщеннями.
Захистіть кінцеву точку. Вона має бути доступна для перевірних вузлів, що її запитують, тож поводьтеся з нею як з будь-якою іншою публічною URL-адресою: розмістіть на непередбачуваному шляху, тримайте доступною лише для читання й розкривайте лише ті числа, які вам комфортно розкривати. Вона не приймає жодних параметрів, що щось змінюють, - це й обмежує розкриття рівно одним значенням.