Grafana PromQL не может прочитать свойство ‘result’ неопределенного

#.net #prometheus #grafana #promql

#.net #prometheus #grafana #promql

Вопрос:

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

Во-первых, это моя конфигурация 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());
    }
}
  

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

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

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

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

кто-нибудь может сказать мне, как это исправить?

Ответ №1:

Эта ошибка обычно означает, что grafana не удается выполнить запрос к API.

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

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

Комментарии:

1. у меня 404 не найдено, если я удалю /metrics . Я пытался :9090 также

2. Вы пробовали curl на том же сервере, что и устанавливаемая вами grafana? Возможно, ваш Prometheus не привязан к правильному интерфейсу или неправильно маршрутизирован. (И да, 9090 является портом Prometheus по умолчанию, но я предположил, что это пример)

3. Вы настроили экземпляр Prometheus для очистки вашего программного обеспечения? Grafana использует /api Prometheus, а не исходную конечную точку метрики вашего приложения.

4. Возможно, в этом проблема, Майкл. Как настроить экземпляр для очистки моего api? Я учусь на этом github.com/prometheus-net/prometheus-net#installation , в какой части объясняется очистка моего api вместо простой публикации в конечной точке метрики? или есть другая ссылка, по которой я могу следовать?

5. Вы должны установить prometheus и указать ему очистить ваш api (используя, например, статическую конфигурацию ). А затем укажите вашему grafana URL-адрес prometheus. Смотрите обзор архитектуры в документе).