#.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. Смотрите обзор архитектуры в документе).