Grafana PromQL не может прочитать свойство "результат" неопределенного

В настоящее время я изучаю Prometheus и пытаюсь визуализировать его метрики с помощью Grafana и PromQL, но каждый раз, когда я помещаю свои метрики запросов, он всегда показывает ошибку Cannot read property 'result' of undefined, я искал и пробовал некоторые запросы в Интернете, и все они не имеют никакого значения. Интересно, где я ошибаюсь, поскольку я впервые использую Прометей и графану, вот некоторые настройки, которые я использовал

Во-первых, это мой конфиг prometheus в .net framework.

public class PrometheusConfig
{
    private static readonly Counter counter = Metrics.CreateCounter("initial_counter", "counter to initiate Prometheus");

    public static void Register(HttpConfiguration config)
    {
        var server = new MetricServer(port: 1234);
        server.Start();

        counter.Inc();
    }

    public static void RegisterFilter(HttpFilterCollection filters)
    {
        filters.Add(new PrometheusFilter());
    }
}

Вот мои метрики Прометея, которые я хочу визуализировать

это мой источник данных Grafana

введите описание изображения здесь

и, наконец, это моя диаграмма панели  введите описание изображения здесь

может кто подскажет, как это исправить?


person hphp    schedule 24.08.2020    source источник


Ответы (1)


Эта ошибка обычно означает, что графана не может запросить API.

В вашем случае это потому, что URL-адрес не должен включать /metrics. Этот URL-адрес используется для очистки внутренних компонентов Prometheus.

Правильный URL-адрес должен быть базовым путем к Prometheus: http://localhost:1234

person Michael Doubez    schedule 24.08.2020
comment
У меня 404 не найдено, если я удалю /metrics. Я тоже пробовал :9090 - person hphp; 24.08.2020
comment
Вы пробовали завить на том же сервере, что и устанавливали графану? Возможно, ваш Prometheus не привязан к правильному интерфейсу или неправильно маршрутизирован. (И да, 9090 - это порт Prometheus по умолчанию, но я предположил, что это был пример) - person Michael Doubez; 24.08.2020
comment
Вы установили экземпляр Prometheus для очистки вашего программного обеспечения? Grafana использует /api Prometheus, а не исходную метрическую конечную точку вашего приложения. - person Michael Doubez; 24.08.2020
comment
Может, в этом проблема, Майкл. Как установить экземпляр для очистки моего API? Я учусь на этом github.com/prometheus-net/prometheus-net#installation, в какой части объясняется очистка моего API вместо простой публикации в конечной точке метрики? или есть еще одна ссылка, которой я могу следовать? - person hphp; 25.08.2020
comment
Вам необходимо установить prometheus и указать ему очистить ваш api (используя статическая конфигурация в качестве примера). А затем направьте свою графану на URL-адрес Prometheus. См. Обзор архитектуры в документе). - person Michael Doubez; 25.08.2020