diff options
Diffstat (limited to 'metrics.php')
| -rw-r--r-- | metrics.php | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/metrics.php b/metrics.php new file mode 100644 index 0000000..f4f7b50 --- /dev/null +++ b/metrics.php @@ -0,0 +1,41 @@ +<?php + +header('Content-Type: application/json; charset=utf-8'); + +if ($_SERVER['REQUEST_METHOD'] !== 'GET') { + http_response_code(405); + header('Allow: GET'); + echo json_encode(['error' => 'method not allowed']); + exit; +} + +function get_snowflake_connections() +{ + $metric = 'tor_snowflake_proxy_connections_total'; + $body = file_get_contents( + 'http://127.0.0.1:9999/internal/metrics', + false + ); + if (!$body) { + return 0; + } + $conns = 0; + foreach (preg_split('/\r\n|\n|\r/', $body) as $line) { + $line = trim($line); + if (!$line || $line[0] === '#') + continue; + if (preg_match( + '/^' + . preg_quote($metric, '/') + . '(?:\{[^}]*\})?\s+([0-9]+(?:\.[0-9]+)?)$/', $line, $m + )) { + $conns = $m[1]; + break; + } + } + return $conns; +} + +$snowflake_connections = get_snowflake_connections(); + +echo json_encode(['snowflake_connections' => $snowflake_connections]); |
