t.data.data не определено в grafana

Я новичок в микрометре, прометее и графане. Я пытаюсь запустить свой первый пример с этими тремя вещами, работающими вместе. Но мне трудно понять, что я делаю не так.

Я использую API микрометра, чтобы создать PrometheusMeterRegistry вот так:

new PrometheusMeterRegistry(new PrometheusConfig() {
        @Override
        public Duration step() {
            return Duration.ofSeconds(10);
        }

        @Override
        @Nullable
        public String get(String k) {
            return null;
        }
    });

И я создаю 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 в качестве источника данных в grafana и установил 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

Ниже приведен скриншот ошибки в grafana, которую я получаю: введите здесь описание изображения

Любые предложения, что мне может не хватать?

Примечание. Я вижу, как таймер публикуется на собственном прометее, используя URL-адрес localhost:8080/prometheus.


person Lavish Kothari    schedule 02.01.2019    source источник


Ответы (1)


8080 — это ваш сервер приложений. Вам нужно запустить сервер Prometheus, который очищает это приложение, после чего вы можете использовать localhost:9090 в качестве источника данных.

person brian-brazil    schedule 02.01.2019
comment
Это работает отлично, спасибо. Не могли бы вы также сказать мне, где в prometheus мы можем настроить этот localhost:9090, чтобы, если я хочу указать другой host:port в качестве источника данных для grafana, я мог бы это сделать. Я следую этому руководству и запускаю свой сервер prometheus с помощью ./prometheus --config.file=prometheus.yml. Будет здорово, если вы укажете мне список всех стандартных опций. Спасибо! - person Lavish Kothari; 03.01.2019