ThinkPHP如何使用Grafana展示_Grafana可视化面板配置【图表】

轻晨同学_2760

轻晨同学_2760

2026-06-25

515人浏览

原创

thinkphp指标需通过prometheus暴露并接入grafana可视化:一、控制器实现/metrics端点输出标准文本指标;二、配置prometheus.yml抓取;三、grafana添加prometheus数据源;四、用pie chart展示接口请求占比;五、用time series展示p95响应时间趋势;六、用table列出错误率top5接口。

thinkphp如何使用grafana展示_grafana可视化面板配置【图表】

如果您在ThinkPHP项目中已采集监控指标(如请求量、响应时间、错误率等),但无法在Grafana中正确展示为可视化图表,则可能是由于数据源未对接、指标格式不兼容或面板配置不匹配所致。以下是实现ThinkPHP指标接入Grafana并完成图表可视化的具体步骤:

一、将ThinkPHP应用指标暴露为Prometheus可采集格式

需使ThinkPHP应用以文本形式暴露符合Prometheus规范的指标,供Prometheus抓取。核心是实现一个HTTP端点(如/metrics)返回纯文本指标数据。

1、在ThinkPHP控制器中创建MetricsController,定义index方法;

2、在方法内构造符合Prometheus文本格式的指标输出,例如:

# HELP tp_http_requests_total Total number of HTTP requests processed

# TYPE tp_http_requests_total counter

tp_http_requests_total{method="GET",status="200"} 1247

tp_http_requests_total{method="POST",status="500"} 3

3、设置响应头Content-Type: text/plain; version=0.0.4;

4、确保该路由未被中间件拦截,且可被Prometheus服务器直连访问(如http://your-thinkphp-app/metrics)。

二、配置Prometheus抓取ThinkPHP指标

Prometheus需主动拉取ThinkPHP暴露的指标,因此必须在prometheus.yml中添加对应job配置,确保指标能进入时序数据库。

1、编辑prometheus.yml文件,在scrape_configs下新增job段;

2、指定job_name为thinkphp;

3、在static_configs中填入ThinkPHP服务地址,例如:targets: ['your-thinkphp-app:80'];

4、确认scrape_interval不低于15s,避免高频抓取影响应用性能;

5、执行prometheus --config.file=prometheus.yml重启服务,并访问http://localhost:9090/targets验证状态为UP。

三、在Grafana中添加Prometheus数据源

Grafana本身不存储数据,需先绑定已运行且可通信的Prometheus实例,才能查询并渲染其采集的ThinkPHP指标。

1、登录Grafana Web界面,进入Configuration → Data Sources → Add data source;

2、选择Prometheus类型;

3、在URL字段填写Prometheus服务地址,Docker容器内应使用http://host.docker.internal:9090,宿主机直连则填http://127.0.0.1:9090;

4、点击Save & test,出现Data source is working提示即表示连接成功;

5、若报错connection refused,需检查Prometheus是否运行、端口是否开放、防火墙是否放行。

btpanel phpsite 宝塔面板PHP网站
btpanel phpsite 宝塔面板PHP网站

宝塔面板 PHP 网站管理:站点创建、删除、启停、PHP 版本切换、域名管理、SSL证书管理、伪静态管理、数据库管理

下载

四、创建Pie Chart面板展示ThinkPHP接口占比

饼图适用于呈现ThinkPHP各控制器/方法的请求量占总请求量的比例关系,便于快速识别流量热点。

1、在Dashboard中点击Add panel → Pie chart;

2、在Query编辑器中选择已配置的Prometheus数据源;

3、输入PromQL查询语句:sum by (controller) (rate(tp_http_requests_total[5m]));

4、切换至Value options选项卡,Show设为Calculate,Calculation选Last;

5、在Field options → Standard options → Unit中设为none,避免单位干扰比例计算;

6、保存面板后,扇形区块将按各controller标签的5分钟请求速率自动分配角度。

五、创建Time series面板展示ThinkPHP响应时间趋势

时间序列图用于追踪ThinkPHP关键接口的P95/P99响应延迟随时间的变化,支持趋势判断与异常定位。

1、添加新面板,选择Time series类型;

2、在Query中输入PromQL:histogram_quantile(0.95, sum by (le, controller) (rate(tp_http_request_duration_seconds_bucket[5m])));

3、确保ThinkPHP已按OpenMetrics规范暴露_bucket和_sum指标;

4、在Legend字段填写{{controller}}-p95,使图例清晰标识维度;

5、进入Panel options → Graph styles,Fill opacity设为2,Line width设为2;

6、在Left Y → Unit中选择seconds,使纵轴单位自动适配。

六、配置Table面板列出ThinkPHP错误率TOP5接口

表格面板适合结构化呈现高错误率接口的明细,支持排序与阈值着色,便于快速下钻排查。

1、添加新面板,选择Table类型;

2、Query中输入PromQL:topk(5, sum by (controller, action) (rate(tp_http_requests_total{status=~"5.."}[5m])) / sum by (controller, action) (rate(tp_http_requests_total[5m])));

3、在Field options → Cell display mode中为数值列启用Color background (solid);

4、在Thresholds中设置两档阈值:0.01(黄色)、0.05(红色);

5、开启Sort column,点击Value列标题,使结果按错误率降序排列;

6、在Column alignment中将Value列设为Right对齐,提升可读性。

php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

thinkphp php

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
php文件怎么打开
php文件怎么打开

打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

2023.09.01

10244

6

php怎么取出数组的前几个元素
php怎么取出数组的前几个元素

取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.11

6041

5

php反序列化失败怎么办
php反序列化失败怎么办

php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.11

2095

5

php怎么连接mssql数据库
php怎么连接mssql数据库

连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

2023.10.23

3808

4

php连接mssql数据库的方法
php连接mssql数据库的方法

php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

2023.10.23

4494

6

html怎么上传
html怎么上传

html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.03

3531

9

PHP出现乱码怎么解决
PHP出现乱码怎么解决

PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.09

5037

8

php文件怎么在手机上打开
php文件怎么在手机上打开

php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.13

3942

8

sprintf函数用法详解
sprintf函数用法详解

sprintf函数的用法:1、格式化字符串;2、指定输出宽度和精度;3、返回值。更多关于sprintf函数用法详解的内容,大家可以阅读下面的文章。

2023.11.27

11902

4

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程