StatShow 是一个轻量级的 HTTP 请求监控统计工具,可以帮助您实时监控和分析 API 的调用情况。
- 实时监控 HTTP 请求
- URI 访问统计(请求次数和响应时间)
- IP 访问统计
- 慢请求记录
- 可视化数据展示
- 支持多种时间范围查看
- 自动数据更新
- PHP >= 7.1
- Redis 服务器
- PHP 扩展:
- redis
- event
- pcntl
- posix
- json
- sockets (可选,用于设置额外的socket选项)
# Ubuntu/Debian
sudo apt-get install php-redis php-event php-pcntl php-sockets
# CentOS/RHEL
sudo yum install php-redis php-event php-process php-sockets
# 或通过PECL安装
sudo pecl install redis event
composer require showx/statshow
- 克隆代码:
git clone https://github.com/showx/statshow.git
- 安装依赖:
cd statshow
composer install
创建配置文件 config.php
:
<?php
use statshow\Config;
$config = new Config([
'host' => '0.0.0.0', // 监听地址
'port' => 8081, // 监听端口
'webpath' => '/stats', // Web界面路径
'monitor' => [
'enable_uri_stats' => true, // 启用URI统计
'enable_ip_stats' => true, // 启用IP统计
'slow_request_time' => 1000, // 慢请求阈值(毫秒)
'stats_interval' => 60, // 统计间隔(秒)
],
'storage' => [
'type' => 'redis',
'redis' => [
'host' => '127.0.0.1',
'port' => 6379,
'db' => 0
]
]
]);
<?php
require 'vendor/autoload.php';
use statshow\StatShow;
use statshow\Config;
// 加载配置
$config = require 'config.php';
// 创建服务器实例
$server = new StatShow();
$server->setConfig($config);
// 启动服务器
$server->start();
php start.php -d
打开浏览器访问: http://your-server:8081/stats
- 显示各 URI 的访问次数
- 平均响应时间
- 支持按时间范围筛选
- 显示访问量最大的IP
- 每个IP的请求分布
- 支持查看详细访问记录
- 记录响应时间超过阈值的请求
- 包含完整的请求信息
- 按响应时间排序
GET /stats/uri?timeRange=3600
GET /stats/ip?timeRange=3600
GET /stats/slow?timeRange=3600
参数说明:
- timeRange: 时间范围(秒),默认3600
- 确保 Redis 服务器已启动
- 建议在生产环境使用 supervisor 等工具管理进程
- 统计数据默认保存24小时
- 建议定期清理 Redis 数据,避免占用过多内存
MIT License
showx [email protected]