Наша система состоит из нескольких микросервисов на основе JAVA, каждый из которых сообщает о своем статусе RT, используя io.prometheus simpleclient а>
Код интеграции выглядит довольно просто
// Initialize default JVM metrics for Prometheus
DefaultExports.initialize();
DeploymentInfo monitoringServletInfo = Servlets.deployment()
.setClassLoader(MonitoringServer.class.getClassLoader())
.setContextPath("/")
.setDeploymentName("monitoring")
.addServlet(Servlets.servlet(MetricsServlet.class).addMapping("/*"));
DeploymentManager monitoringDeployment = Servlets.defaultContainer().addDeployment(monitoringServletInfo);
monitoringDeployment.deploy();
HttpHandler monitoringHandler = monitoringDeployment.start();
server = Undertow.builder()
.addHttpListener(port, "0.0.0.0")
.setHandler(
Handlers.path().addExactPath(HEALTH_PATH, new HealthHandler())
.addExactPath(MONITORING_PATH, monitoringHandler))
.build();
server.start();
Поскольку все микросервисы имеют одно и то же имя метрик, мы ищем способ их различать, предоставляя настраиваемую метку для каждого микросервиса.
например, эта метрика имеет следующее определение
jvm_buffer_pool_used_bytes{pool="direct",} 116776.0
наша цель - добавить собственный ярлык, например, тогда его будет намного проще отделить, чем в Grafana.
jvm_buffer_pool_used_bytes{pool="direct",service="foo"} 116776.0
Я хочу верить, что у библиотеки должна быть такая возможность, к сожалению, поиск в Google на какое-то время не был таким успешным
Любая идея будет оценена по достоинству.