diff options
Diffstat (limited to 'sapi/fpm/tests/status.inc')
-rw-r--r-- | sapi/fpm/tests/status.inc | 66 |
1 files changed, 62 insertions, 4 deletions
diff --git a/sapi/fpm/tests/status.inc b/sapi/fpm/tests/status.inc index 39005de568..7706942b3d 100644 --- a/sapi/fpm/tests/status.inc +++ b/sapi/fpm/tests/status.inc @@ -10,10 +10,11 @@ class Status * @var array */ private $contentTypes = [ - 'plain' => 'text/plain', - 'html' => 'text/html', - 'xml' => 'text/xml', - 'json' => 'application/json', + 'plain' => 'text/plain', + 'html' => 'text/html', + 'xml' => 'text/xml', + 'json' => 'application/json', + 'openmetrics' => 'application/openmetrics-text; version=1.0.0; charset=utf-8', ]; /** @@ -196,4 +197,61 @@ class Status true ); } + + /** + * Check openmetrics status page. + * + * @param string $body + * @param array $fields + */ + protected function checkStatusOpenmetrics(string $body, array $fields) + { + $pattern = "|# HELP phpfpm_up Could pool " . $fields['pool'] . " using a " . $fields['process manager'] . " PM on PHP-FPM be reached\?\n" . + "# TYPE phpfpm_up gauge\n" . + "phpfpm_up 1\n" . + "# HELP phpfpm_start_time When FPM has started\.\n" . + "# TYPE phpfpm_start_time gauge\n" . + "phpfpm_start_time \d+\n" . + "# HELP phpfpm_start_since_total The number of seconds since FPM has started\.\n" . + "# TYPE phpfpm_start_since_total counter\n" . + "phpfpm_start_since_total " . $fields['start since'] . "\n" . + "# HELP phpfpm_accepted_connections_total The number of requests accepted by the pool\.\n" . + "# TYPE phpfpm_accepted_connections_total counter\n" . + "phpfpm_accepted_connections_total " . $fields['accepted conn'] . "\n" . + "# HELP phpfpm_listen_queue The number of requests in the queue of pending connections\.\n" . + "# TYPE phpfpm_listen_queue gauge\n" . + "phpfpm_listen_queue " . $fields['listen queue'] . "\n" . + "# HELP phpfpm_max_listen_queue_total The maximum number of requests in the queue of pending connections since FPM has started\.\n" . + "# TYPE phpfpm_max_listen_queue_total counter\n" . + "phpfpm_max_listen_queue_total " . $fields['max listen queue'] . "\n" . + "# TYPE phpfpm_listen_queue_length gauge\n" . + "# HELP phpfpm_listen_queue_length The size of the socket queue of pending connections\.\n" . + "phpfpm_listen_queue_length " . $fields['listen queue len'] . "\n" . + "# HELP phpfpm_idle_processes The number of idle processes\.\n" . + "# TYPE phpfpm_idle_processes gauge\n" . + "phpfpm_idle_processes " . $fields['idle processes'] . "\n" . + "# HELP phpfpm_active_processes The number of active processes\.\n" . + "# TYPE phpfpm_active_processes gauge\n" . + "phpfpm_active_processes " . $fields['active processes'] . "\n" . + "# HELP phpfpm_total_processes The number of idle \+ active processes\.\n" . + "# TYPE phpfpm_total_processes gauge\n" . + "phpfpm_total_processes " . $fields['total processes'] . "\n" . + "# HELP phpfpm_max_active_processes_total The maximum number of active processes since FPM has started\.\n" . + "# TYPE phpfpm_max_active_processes_total counter\n" . + "phpfpm_max_active_processes_total " . $fields['max active processes'] . "\n" . + "# HELP phpfpm_max_children_reached_total The number of times, the process limit has been reached, when pm tries to start more children \(works only for pm 'dynamic' and 'ondemand'\)\.\n" . + "# TYPE phpfpm_max_children_reached_total counter\n" . + "phpfpm_max_children_reached_total " . $fields['max children reached'] . "\n" . + "# HELP phpfpm_slow_requests_total The number of requests that exceeded your 'request_slowlog_timeout' value\.\n" . + "# TYPE phpfpm_slow_requests_total counter\n" . + "phpfpm_slow_requests_total " . $fields['slow requests'] . "|"; + + if (!preg_match($pattern, $body)) { + echo "ERROR: Expected body does not match pattern\n"; + echo "BODY:\n"; + var_dump($body); + echo "PATTERN:\n"; + var_dump($pattern); + } + } } |