Я новичок в микрометре, прометее и графане.Я пытаюсь запустить мой первый пример с этими тремя вещами, работающими вместе.Но мне трудно понять, что я делаю неправильно.
Я использую API микрометра для создания PrometheusMeterRegistry
, например:
new PrometheusMeterRegistry(new PrometheusConfig() {
@Override
public Duration step() {
return Duration.ofSeconds(10);
}
@Override
@Nullable
public String get(String k) {
return null;
}
});
И я 'm * создавая HttpServer
, как описано здесь, используя следующий код:
try {
HttpServer server = HttpServer.create(new InetSocketAddress(8080), 0);
server.createContext("/prometheus", httpExchange -> {
String response = prometheusMeterRegistry.scrape();
httpExchange.sendResponseHeaders(200, response.getBytes().length);
try (OutputStream os = httpExchange.getResponseBody()) {
os.write(response.getBytes());
}
});
new Thread(server::start).start();
} catch (IOException e) {
throw new RuntimeException(e);
}
Я настроил Prometheus как мой источник данных в графане и установил URL-адрес на http://localhost:8080/prometheus
.Но когда я пытаюсь создать новую панель инструментов и добавить к ней график, я получаю красный восклицательный знак с надписью t.data.data is undefined
.И из-за этого я не могу просматривать графики.Полная трассировка стека выглядит следующим образом:
kr</t.prototype.transform@http://localhost:3000/public/build/app.dfabdd44b3be44288eac.js:22:723420
jr</t.prototype.query/</<@http://localhost:3000/public/build/app.dfabdd44b3be44288eac.js:22:736135
qt@http://localhost:3000/public/build/vendor.dfabdd44b3be44288eac.js:9:5239
Wa@http://localhost:3000/public/build/vendor.dfabdd44b3be44288eac.js:9:40274
jr</t.prototype.query/<@http://localhost:3000/public/build/app.dfabdd44b3be44288eac.js:22:735858
c/</<@http://localhost:3000/public/build/vendor.dfabdd44b3be44288eac.js:130:92198
c/<@http://localhost:3000/public/build/vendor.dfabdd44b3be44288eac.js:130:92043
$digest@http://localhost:3000/public/build/vendor.dfabdd44b3be44288eac.js:130:97575
$apply@http://localhost:3000/public/build/vendor.dfabdd44b3be44288eac.js:130:99590
$applyAsync/r<@http://localhost:3000/public/build/vendor.dfabdd44b3be44288eac.js:130:99735
h@http://localhost:3000/public/build/vendor.dfabdd44b3be44288eac.js:130:33036
ln/this.$get</</i.defer/n<@http://localhost:3000/public/build/vendor.dfabdd44b3be44288eac.js:130:34396
Ниже приведен скриншот ошибки в графане, которую я получаю:
Любойподскажите, чего мне не хватает?
Примечание: я вижу, как таймер публикуется на собственном прометее с помощью URL localhost:8080/prometheus
.