Мониторинг запросов узла.js с помощью prometheus - PullRequest
1 голос
/ 12 марта 2019

У меня есть микросервис node.js с запросами axios к внешнему API, и мне нужно следить за ними с помощью prometheus. Как я вижу, прометей сделан для мониторинга экспресс-запросов:

app.use((req, res, next) => {
  const responseTimeInMs = Date.now() - res.locals.startEpoch;

  httpRequestDurationMs
      .labels(req.method, req.route.path, res.statusCode)
      .observe(responseTimeInMs);

  next();
});

Но я не нашел способа использовать его с axios (например):

function getData() {
  return axios.get(url)
    .then (res) => {
      [should put metrics somewhere here]
    }
}

Надеюсь, что кто-то может помочь с этим.

1 Ответ

0 голосов
/ 12 марта 2019

Из prom-client документация - вы можете запустить таймер и вызвать метод return по окончании:

const end = gauge.startTimer();
xhrRequest(function(err, res) {
  end(); // Sets value to xhrRequests duration in seconds
});

Использовать его с датчиком, гистограммой, сводкой или любым другим объектом...

...