custom-prometheus-exporter/index.php

34 lines
1.3 KiB
PHP
Raw Normal View History

2024-06-03 19:48:39 +02:00
<?php
if($_SERVER["REQUEST_URI"] == '/metrics') {
header('Content-Type: text/plain; version=0.0.4');
$config = getenv('CONFIG_FILE');
$phpbin = getenv('PHP_BINARY');
$output = shell_exec('CONFIG_FILE="' . $config . '" ' . $phpbin . ' ' . $_SERVER['DOCUMENT_ROOT'] . '/script.php');
echo $output;
} elseif ($_SERVER["REQUEST_URI"] == '/config') {
header('Content-Type: application/json');
require_once getenv('CONFIG_FILE');
echo json_encode($config);
} elseif ($_SERVER["REQUEST_URI"] == '/version' && is_dir($_SERVER['DOCUMENT_ROOT'] . '/.git')) {
header('Content-Type: application/json');
$git = [
'lastCommit' => trim(shell_exec('git rev-parse HEAD')),
'lastCommitTimestamp' => trim(shell_exec('git log -1 --format=%cd')),
'branch' => trim(shell_exec('git rev-parse --abbrev-ref HEAD')),
];
echo json_encode($git);
} else {
require_once('vendor/autoload.php');
$knownpaths = [
'/metrics',
'/config'
];
if (is_dir($_SERVER['DOCUMENT_ROOT'] . '/.git')) $knownpaths[] = '/version';
http_response_code(404);
$loader = new \Twig\Loader\FilesystemLoader('templates');
$twig = new \Twig\Environment($loader, [
'cache' => 'twig_cache',
]);
echo $twig->render('404.twig', ['path' => $_SERVER["REQUEST_URI"], 'knownpaths' => $knownpaths]);
}