feat(PHP): add aurweb Prometheus metrics

Along with this initial requests metric implementation,
we also now serve the `/metrics` route, which grabs request
metrics out of cache and renders them properly for Prometheus.

**NOTE** Metrics are only enabled when the aurweb system admin
has enabled caching by configuring `options.cache` correctly
in `$AUR_CONFIG`. Otherwise, an error is logged about no cache
being configured.

New dependencies have been added which require the use of
`composer`. See `INSTALL` for the dependency section in regards
to composer dependencies and how to install them properly for
aurweb.

Metrics are in the following forms:

    aurweb_http_requests_count(method="GET",route="/some_route")
    aurweb_api_requests_count(method="GET",route="/rpc",type="search")

This should allow us to search through the requests for specific routes
and queries.

Signed-off-by: Kevin Morris <kevr@0cost.org>
This commit is contained in:
Kevin Morris 2021-09-26 20:26:24 -07:00
parent 4e5b67f0a6
commit 986fa9ee30
No known key found for this signature in database
GPG key ID: F7E46DED420788F3
5 changed files with 183 additions and 2 deletions

View file

@ -19,7 +19,8 @@ $ROUTES = array(
'/rss' => 'rss.php',
'/tos' => 'tos.php',
'/tu' => 'tu.php',
'/addvote' => 'addvote.php',
'/addvote' => 'addvote.php',
'/metrics' => 'metrics.php' // Prometheus Metrics
);
$PKG_PATH = '/packages';