Вызов API Prometheus

#javascript #node.js #api #prometheus #grafana

Вопрос:

Я создал приложение, которое выполняет вызовы API, например, для чего-то вроде Github. Я использую Prometheus для сбора этих показателей в качестве показателей и использую Grafana для их отображения. Прямо сейчас я использую setInterval со всеми запросами, поэтому он вызывает его сам каждые 2 часа, как мне его изменить, чтобы обновляться только при вызове /metrics? Вот пример вызова API.

 const websiteIssuesCall = () => {
    octokit.request('/repos/{owner}/{repo}/issues', {
        owner: 'corona-warn-app',
        repo: 'cwa-website',
        per_page: '100'
    }).then(r => {
        let totalCounter = 0;
        let prCounter = 0;
        for (const item of r.data) {    // get count all issues including pull requests
            if (item.state === "open") totalCounter  ;
        }
        for (const item of r.data) {   // get count only pull requests
            if ('pull_request' in item) prCounter  ;
        }
        console.log("OPEN ISSUES: "   (totalCounter - prCounter));
        websiteIssues = totalCounter - prCounter;
        websiteIssuesProm.set(websiteIssues);
    })
}

websiteIssuesCall();
setInterval(websiteIssuesCall,3600000);

const websiteIssuesProm = new prometheus.Gauge({
    name: 'website_issues_value',
    help: 'open website issues'
});

const websitePullRequestsProm = new prometheus.Gauge({
    name: 'website_pull_requests_value',
    help: 'website pull requests'
});
app.get('/metrics', (req, res) => {
    res.set('Content-Type', prometheus.register.contentType)
    res.end(prometheus.register.metrics())
})