Я пытаюсь собрать инструмент для отслеживания экземпляров Chef, которые не сошлись должным образом. Я могу легко найти эти узлы, но я хочу исключить узлы, которые все еще довольно новые и могут все еще находиться в процессе начальной загрузки. Я изначально использовал ohai_time
для этого, но это было неточно, потому что я использую Chef как службу, поэтому некоторые узлы будут продолжать отказываться, но продолжают обновлять ohai_time
. Затем я нашел uptime_seconds
, который кажется идеальным, но, похоже, обрабатывается как строка при поиске по диапазону, то есть по алфавиту. Например:
knife search "uptime_seconds:[0 TO 9]"
возвращает все мои экземпляры, тогда как:
knife search "uptime_seconds:[0 TO 10000]"
ничего не возвращает. Есть ли способ справиться с этим правильно с помощью поиска Chef?
Нет, это невозможно. Мы храним все атрибуты узла в строковом поле, насколько известно Lucene, чтобы TO
поиск по диапазону строк, а не по числовому диапазону.