Я использую Java-клиент Prometheus 0.6.0 в относительно простом приложении.Все, что у меня есть, это два счетчика и два датчика, и они выставляются через конечную точку HTTP REST, используя встроенный Прометей HTTPServer
И я наблюдаю довольно странное поведение.
Иногда счетчики выигрывали 'не регистрироваться вообще (например, никогда не показываться при достижении конечной точки HTTP), в других случаях отображаются строки # HELP
и # TYPE
, но не фактическая метрика.Я могу видеть ошибки как в своем локальном окне разработчика, так и в развертывании на kubernetes pods.
Чтобы сузить это, у меня есть немного кода для инициализации счетчика.И я последовательно получаю NPE при вызове counter.inc()
.
Counter counter = Counter.build().name("counter").help(helpText).labelNames(tags).register();
counter.inc();
Я пробовал вышеупомянутое с датчиками, и я получаю ту же ошибку.
Для контекста этовызывается из класса ApplicationMetrics
со следующим кодом:
public static Counter counter1;
public static Counter counter2;
static void initializeMetrics() {
counter1 = Counter.build().name("counter1").help(helpText1).labelNames(tags1).register();
counter1.inc();
counter2 = Counter.build().name("counter2").help(helpText2).labelNames(tags2).register();
counter2.inc();
}
И я выполняю статический вызов метода из start
метода в моем главном классе запуска приложения.
void start() {
// Initialize stuff for the rest of the app
ApplicationMetrics.initializeMetrics();
}
Что-то не так с настройкой / настройкой счетчиков?Я не смог ничего найти в списке проблем Прометея по этому поводу.