pinpoint php 使用不当引发棘手的问题 --psid sid tid pname ptype ah
Pinpoint 简单介绍
Pinpoint 是用 Java 编写的 APM(应用性能管理)工具,用于大规模分布式系统,以帮助分析系统的总体结构以及分布式应用程序的组件之间是如何进行数据互联的。
安装agent是无侵入式的
对性能的影响最较小
架构图:

最近遇到的问题
线上的服务一直运行正常,突然各种报警响起(邮件、短信、微信通知),赶紧登录kibana查看运行日志(日志有点延迟)搜不到????

一面继续搜索kibana,一面跟运维沟通申请开通临时账户,提交oa经过一系列的审批,最后运维特别给力---临时账户顺利开通。都准备好了,那就干活呗(累)。

咦,咋返回的结果跟之前不一样了。(本来约定好,我给你发个消息,你给我回复ok或者no就行了,结果你给我回了 吃瓜 酱油 +ok)这没法解析了(这是返回了啥玩意???)
正常返回的信息:
{"rs":0,"msg":"ok","timestamp":1587194823}
错误返回的信息:
psid: -5378148089934788608
sid: -3366960525911415808
tid: AGT_192.162.92.165_12383^1587194823625^22342
pname: merCoreptype: merCorAh: ay.mt.com
{"rs":0,"msg":"ok","timestamp":1587194823}

哎,不管返回啥,也得分析啊,报警还在继续报呢

赶紧联系对方(你们服务出问题了,赶紧看看,调用方也蒙圈了,吓的不清)

对方经过一顿查看,回复----没有问题(啥,没有问题,没看错吧,我这明明收到了错误的信息,咋能没问题呢,我蒙了)

没有问题就没有问题吧,那就自己查自己服务吧,我在服务器上curl模拟请求了一下对方的服务-----真没有问题(难道真是我们服务出问题了,不应该啊,上一秒还好呢,下一秒就这样了)。现在也没有底气去找人家了。现在先把定时服务关闭了吧,要不报警一直报,邮件服务器受不了啊。没多久有人找来了,“你们的的服务是不是出问题了,咋不通知我们了”。巴拉巴拉一堆解释。
初步判断这是某个中间件给加上的信息,但是我们也有其他http请求啊,只有请求这个服务有问题,百思不得其解

接下来在本地开始跑测试代码,在测试环境测试、都没有发现问题。还把body.string()方法源码读了一遍,没有发现啥问题。出现这么怪异的一段字符,那就搜一下吧,终于在网上找到点点蛛丝马迹。上图

似曾眼熟啊,再仔细瞅瞅,这不就是返回的内容吗。我们代码中有这个代码????找了一遍也没有发现。
都没有问题,那就看看pinpoint的原理吧---http如何信息衔接的,需要在http请求头中带上Pinpoint-TraceID 字段,既然知道原理了,那就模拟一下请求吧,果然不出所料,返回结果中带上了tid。
接下来又去找对方,首先给对方讲了一下如何重现,对方一测,果然有问题

接下来对方经过一顿的修改,一切恢复从前。

欢迎交流

pinpoint php 使用不当引发棘手的问题 --psid sid tid pname ptype ah的更多相关文章
- jedis参数不当引发的问题总结
jedis参数不当引发dubbo服务线程池耗尽异常 现象:一个dubbo服务偶发性的出现个别机器甚至整个集群大量报线程池耗尽的问题.一开始对问题的处理比较粗暴,直接增加了10倍的线程数.但是问题依然偶 ...
- 随机数使用不当引发的生产bug
前几天负责的理财产品线上出现问题:一客户赎回失败,查询交易记录时显示某条交易记录为其他人的卡号. 交易的链路如下: 出现该问题后,我们对日志进行了分析,发现主站收到的两笔流水号完全相同,然而主站却没有 ...
- mysql参数max_binlog_cache_size设置不当引发的血案
日常运维中的坑真是防不胜防,不一小心就遇到别人给你挖的坑.最近又遇到经验不足的DBA不知道从哪拷贝的配置文件(据说是当时参加某培训机构视频培训是资料里的模板,真的是误人子弟呀),其中把max_binl ...
- Web安全开发之验证码设计不当引发的撞库问题
感谢某电商平台安全工程师feiyu跟我一起讨论这个漏洞的修复.以往在安全测试的过程中后台经常存在验证码不失效果造成的撞库问题,甚至在一些银行或者电商的登录与查存页面同样存在这个问题,一旦造成撞库无论对 ...
- Proguard中optimize设置不当引发SimException
今天来说一下Proguard中关于optimize的问题.先上一张异常图片 最近项目重构,重新调整了各个组件之间的依赖关系.过程中,在项目Proguard这块卡住了,最开始还好,Proguard只是提 ...
- Select 使用不当引发的core,你应该知道的
排查一个死机问题,搞了好几天时间,最终确定原因:最终确定问题原因,在此分享一下: 第一步:常规根据core文件查看栈信息,gdb –c core xxxx 如下rip不正确,指令地址错乱,栈信息已破坏 ...
- NSTimer使用不当引发的内存泄漏问题
NSTimer可以用来执行一些定时任务,比较常用的方法就是: + (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTar ...
- php 扩展 suhosin 配置不当引发的报错及其解决方法
1. /var/log/messages 频繁报错: Jul :: localhost suhosin[]: ALERT - script tried to increase memory_limit ...
- RestTemplate使用不当引发的问题分析
背景 系统: SpringBoot开发的Web应用: ORM: JPA(Hibernate) 接口功能简述: 根据实体类ID到数据库中查询实体信息,然后使用RestTemplate调用外部系统接口获取 ...
随机推荐
- Natas1 Writeup(查看页面源码)
Natas2: 提示密码就在本页,但右键被禁用,可以使用F12或者抓包查看元素得到flag. flag:ZluruAthQk7Q2MqmDeTiUij2ZvWy2mBi 常用的查看源码方法:右键查看. ...
- Python Django撸个WebSSH操作Kubernetes Pod
优秀的系统都是根据反馈逐渐完善出来的 上篇文章介绍了我们为了应对安全和多分支频繁测试的问题而开发了一套Alodi系统,Alodi可以通过一个按钮快速构建一套测试环境,生成一个临时访问地址,详细信息可以 ...
- 如何使用Postman编写Testlink测试用例
Postman2Testlink 通过Postman快速操作testlink测试用例.测试套件.测试计划.添加关键词.添加自定义字段等等. 工具地址 https://github.com/liyinc ...
- idea 新建java类自动补充创建人,创建时间,版本等..
1.先进入 File 2.进入 Editor 找到 File and Code Templates 并点击 3.右侧点击 lncludes 4.第二项 File Header /** * @aut ...
- 《前端之路》- TypeScript (四) class 中各类属性、方法,抽象类、多态
目录 一.TypeScript 中的类 二.TypeScript 中类的继承 三.TypeScript 中公共,私有与受保护的修饰符 3-1.属性的 public 3-2.属性的 private 3- ...
- C 2012年笔试题
1指出程序段中的错误:分析错误的原因,并进行修改 1.1函数 swap 将两个字符串(字符数组作实参,长度不超过 100)的内容进行交换 void swap(char *pa,char *pb) { ...
- 【翻译】如何使用 OpenVINO 来优化 OpenCV
本文翻译自 Vishwesh Shrimali 的 "Using OpenVINO with OpenCV" 原文链接: https://www.learnopencv.com/ ...
- redis处理高并发
参考: https://www.cnblogs.com/wanlei/p/10464517.html 关于Redis处理高并发 Redis的高并发和快速原因 1.Redis是基于内存的,内存的读写速度 ...
- 记录一个不同的流媒体网站实现方法,和用Python爬虫爬它的坑
今天找到一片电影,想把它下载下来. 先开Networks工具分析一下: 初步分析发现,视频加载时会拉取TS格式的文件,推测这是一个m3u8的索引,记录着几百段TS文件,这样方便快进时加载. 但是实际分 ...
- 使用Dism命令对Win7镜像进行操作
在操作前,我们需要下载Win7部署工具AIK和Win7原版镜像 ★镜像迅雷链接 ed2k://|file|cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408 ...