Как сообщить о метриках Прометея-сети в ASP.NET 4.7.1 - PullRequest
0 голосов
/ 19 февраля 2019

Как я могу использовать prometheus-net в обычном приложении ASP.NET 4.7.1?В .Net Core это довольно просто, но я не могу найти хороший способ сообщить о метриках в Grafana в 4.7.1

В идеале было бы иметь путь /metrics, где сообщаются метрики.

Я пытался создать грубый тестовый контроллер для запуска MetricServer, но я получаю ошибку.

// horrible test code
[RoutePrefix("metrics")]
public class MetricsController : ApiController
{
    static readonly MetricServer _server = new MetricServer(7777);

    static MetricsController()
    {
        _server.Start();
    }

    [Route("")]
    public async Task<IHttpActionResult> Get()
    {
        using (var client = new HttpClient())
        {
            var metrics = await client.GetAsync("http://localhost:7777/metrics");
            return Content(HttpStatusCode.OK, await metrics.Content.ReadAsStringAsync(),null, metrics.Content.Headers.ContentType.ToString());
        }
    }
}

System.Net.HttpListenerException: «Доступ запрещен»

1 Ответ

0 голосов
/ 25 февраля 2019

MetricServer.Start() может выдать исключение об отказе в доступе в Windows, если ваш пользователь не имеет права открывать веб-сервер на указанном порту.Вы можете использовать команду netsh, чтобы предоставить себе необходимые разрешения:

netsh http add urlacl url=http://+:7777/metrics user=DOMAIN\user

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...