bugtrace config_user.php,php 函数追踪扩展 phptrace

php 函数追踪扩展 phptrace

介绍

phptrace 是一个低开销的用于跟踪、分析 php 运行情况的工具。

它可以跟踪 php 在运行时的函数调用、请求信息、执行流程、并且提供有过滤器、统计信息、当前状态等实用功能。

在任何环境下,它都能很好的定位阻塞的问题以及在高负载下进行 denbug。

官方源码:https://github.com/Qihoo360/phptrace。

安装

pecl 方式安装

$ pecl install trace

源码方式安装

$ wget https://pecl.php.net/get/trace-1.0.0.tgz # 下载源码

$ tar -xf trace-1.0.0.tgz # 解压文件

$ cd trace-1.0.0/extension # 进入扩展目录

源码编译

$ whereis php-config # 找到 php-config 的路径

$ phpize

$ ./configure --with-php-config=/usr/bin/php-config # 这里的 --with-php-config 是上一步找到的路径

$ make # 编辑

$ make test # 编译测试

$ make cli # 命令行工具

$ make install-all # 安装 php 扩展,命令行工具到 php 目录

修改 php.ini

在 php.ini 配置文件中增加以下配置信息。

[phptrace]

extension=trace.so

phptrace.enabled=1

注:修改 php.ini 后,需要手动重启 php-fpm

检查是否生效

root@639ca1f15214:~# php -m | grep trace

trace

实际测试

root@639ca1f15214:/var/www# php -r 'for ($i = 0; $i < 20; $i++) { sleep(5); }' &

[1] 361

root@639ca1f15214:/var/www# phptrace -p $!

process attached

[pid 361] > sleep(5) called at [Command line code:1]

[pid 361] < sleep(5) = 0 called at [Command line code:1] ~ 5.001s 5.001s

[pid 361] > sleep(5) called at [Command line code:1]

[pid 361] < sleep(5) = 0 called at [Command line code:1] ~ 5.000s 5.000s

[pid 361] > sleep(5) called at [Command line code:1]

[pid 361] < sleep(5) = 0 called at [Command line code:1] ~ 5.000s 5.000s

[pid 361] > sleep(5) called at [Command line code:1]

[pid 361] < sleep(5) = 0 called at [Command line code:1] ~ 4.966s 4.966s

[pid 361] > sleep(5) called at [Command line code:1]

[pid 361] < sleep(5) = 0 called at [Command line code:1] ~ 5.000s 5.000s

[pid 361] > sleep(5) called at [Command line code:1]

[pid 361] < sleep(5) = 0 called at [Command line code:1] ~ 5.002s 5.002s

[pid 361] > sleep(5) called at [Command line code:1]

[pid 361] < sleep(5) = 0 called at [Command line code:1] ~ 5.001s 5.001s

[pid 361] > sleep(5) called at [Command line code:1]

[pid 361] < sleep(5) = 0 called at [Command line code:1] ~ 5.002s 5.002s

[pid 361] > sleep(5) called at [Command line code:1]

[pid 361] < sleep(5) = 0 called at [Command line code:1] ~ 5.001s 5.001s

[pid 361] > sleep(5) called at [Command line code:1]

[pid 361] < sleep(5) = 0 called at [Command line code:1] ~ 4.966s 4.966s

[pid 361] > sleep(5) called at [Command line code:1]

[pid 361] < sleep(5) = 0 called at [Command line code:1] ~ 5.000s 5.000s

[pid 361] > sleep(5) called at [Command line code:1]

[pid 361] < sleep(5) = 0 called at [Command line code:1] ~ 5.003s 5.003s

[pid 361] > sleep(5) called at [Command line code:1]

[pid 361] < sleep(5) = 0 called at [Command line code:1] ~ 5.000s 5.000s

[pid 361] > sleep(5) called at [Command line code:1]

[pid 361] < sleep(5) = 0 called at [Command line code:1] ~ 5.001s 5.001s

[pid 361] > sleep(5) called at [Command line code:1]

[pid 361] < sleep(5) = 0 called at [Command line code:1] ~ 5.001s 5.001s

[pid 361] > sleep(5) called at [Command line code:1]

[pid 361] < sleep(5) = 0 called at [Command line code:1] ~ 4.967s 4.967s

[pid 361]> swoole_call_user_shutdown_begin() called at [(null):0]

[pid 361]< swoole_call_user_shutdown_begin() = true called at [(null):0] ~ 0.000s -79.912s

[pid 361]< cli php for ($i = 0; $i < 20; $i++) { sleep(5); }

process detached

开源缺陷跟踪软件(BugTrACE) 非常便捷的快速的开源缺陷跟踪软件,无需初始化,开包即用。   特色: 创建项目,自动生成团队成员账号,自动化! 当用户成功注册账号后,在创建项目的同时,只需要输入该项目中其它成员的Email地址,系统在创建项目的同时自动根据其它成员的Email 地址自动生成对应的账号信息,且自动把这些成员加入到该项目中。系统还会通过邮件的形式把账号信息发送到其它成员的邮箱中,其它成员只需使用自己的 Email和邮件里的密码进行登录即可使用BugTrace的缺陷管理系统。 核心流程简单,易用!   在BugTrace里面,只有分配人和处理人这两个概念,分配人就是把一个Bug分配给另一个成员,被分配了Bug的成员即为处理人,让人很容易理解,一个发现Bug的人和一个处理Bug的人之间的关系,就这么简单,用户很容易的就可以学会对系统的使用。   处理历史记录,清晰!BugTrace把每一次的处理过程都记录起来,每一个历史步骤都可以在Bug的详细页面中查看到,让管理者更清晰每一个Bug在每一个处理步骤的细节。 独立的成员任务列表,分工明确! 开发人员或者测试人员只需在“分配给我的Bug”页面中查看并处理与自己相关的Bug任务,而无需关注其它人创建的Bug或者分配给其它人的Bug。使得分工更加明确,使用起来也更简单!   环境要求: Apache php mysql   更新至 2.4 1. 增加导出 excel 功能 2. 修复下载文件为中文名乱码问题 2. 代码托管迁移至GIT@OSC
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
根据前端传过来的前端传递过来的开始时间和结束时间参数 筛选创建时间在开始时间和结束时间区间的数据 修改后端写法def get_bugs_data(): api_url = "https://api.tapd.cn/bugs" api_headers = {"Authorization": "#", "content-type": "application/json"}iterations_url = "https:/"count_url ="https://at" params_count = {"status": "closed","workspace_id": 41571821, } # 发送请求,获取缺陷总数 response = requests.get(count_url, params=params_count, headers=api_headers) if response.status_code == 200: total_bug = response.json()total_count = total_bug['data']['count'] print(total_count) else: print("Error: Failed to retrieve count. Status code: ", response.status_code) start_time = request.get('start_time') end_time = request.get('end_time') start_time =datetime.strptime(start_time, '%Y-%m-%d %H:%M:%S') end_time = datetime.strptime(end_time, '%Y-%m-%d %H:%M:%S') bug_list = [] for i in range(1,total_count//200): params = {"limit": 200, "status": "closed", "workspace_id": 41571821, "page": i } response = requests.get(api_url, params=params, headers=api_headers) if response.status_code == 200: res = response.json() for bug_item in res['data']: if bug_item['Bug']['fixer'] and bug_item['Bug']['fixer'] in white_name:bug_data_dict = {"bug_title": bug_item['Bug']['title'], "bug_created": bug_item['Bug']['created'], "bug_fixer": bug_item['Bug']['fixer'], "bug_resolved": bug_item['Bug']['resolved'], "bug_url": f"https://www.tapd.cn/41571821/bugtrace/bugs/view?bug_id={bug_item['Bug']['id']}" } params_iteration = {"limit": 200, "workspace_id": 41571821, "id": bug_item['Bug']['iteration_id'] }response =requests.get(iterations_url, params=params_iteration, headers=api_headers)if response.status_code == 200: iterations = response.json() iteration_name = iterations['data'][0]['Iteration']['name'] bug_data_dict['iteration_name'] = iteration_name bug_list.append(bug_data_dict) else: print("Error: Failed to retrieve iterations. Status code: ", response.status_code) return {"code": 200, "msg": "成功", "data": bug_list}
05-18
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值