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的更多相关文章

  1. jedis参数不当引发的问题总结

    jedis参数不当引发dubbo服务线程池耗尽异常 现象:一个dubbo服务偶发性的出现个别机器甚至整个集群大量报线程池耗尽的问题.一开始对问题的处理比较粗暴,直接增加了10倍的线程数.但是问题依然偶 ...

  2. 随机数使用不当引发的生产bug

    前几天负责的理财产品线上出现问题:一客户赎回失败,查询交易记录时显示某条交易记录为其他人的卡号. 交易的链路如下: 出现该问题后,我们对日志进行了分析,发现主站收到的两笔流水号完全相同,然而主站却没有 ...

  3. mysql参数max_binlog_cache_size设置不当引发的血案

    日常运维中的坑真是防不胜防,不一小心就遇到别人给你挖的坑.最近又遇到经验不足的DBA不知道从哪拷贝的配置文件(据说是当时参加某培训机构视频培训是资料里的模板,真的是误人子弟呀),其中把max_binl ...

  4. Web安全开发之验证码设计不当引发的撞库问题

    感谢某电商平台安全工程师feiyu跟我一起讨论这个漏洞的修复.以往在安全测试的过程中后台经常存在验证码不失效果造成的撞库问题,甚至在一些银行或者电商的登录与查存页面同样存在这个问题,一旦造成撞库无论对 ...

  5. Proguard中optimize设置不当引发SimException

    今天来说一下Proguard中关于optimize的问题.先上一张异常图片 最近项目重构,重新调整了各个组件之间的依赖关系.过程中,在项目Proguard这块卡住了,最开始还好,Proguard只是提 ...

  6. Select 使用不当引发的core,你应该知道的

    排查一个死机问题,搞了好几天时间,最终确定原因:最终确定问题原因,在此分享一下: 第一步:常规根据core文件查看栈信息,gdb –c core xxxx 如下rip不正确,指令地址错乱,栈信息已破坏 ...

  7. NSTimer使用不当引发的内存泄漏问题

    NSTimer可以用来执行一些定时任务,比较常用的方法就是: + (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTar ...

  8. php 扩展 suhosin 配置不当引发的报错及其解决方法

    1. /var/log/messages 频繁报错: Jul :: localhost suhosin[]: ALERT - script tried to increase memory_limit ...

  9. RestTemplate使用不当引发的问题分析

    背景 系统: SpringBoot开发的Web应用: ORM: JPA(Hibernate) 接口功能简述: 根据实体类ID到数据库中查询实体信息,然后使用RestTemplate调用外部系统接口获取 ...

随机推荐

  1. 分享CCNTFS小工具,在 macOS 中完全读写、修改、访问Windows NTFS硬盘的文件,无须额外的驱动(原生驱动)更稳定,简单设置即可高速传输外接NTFS硬盘文件

    CCNTFS [ 下载 ] 在 macOS 中完全读写.修改.访问Windows NTFS硬盘的文件,无须额外的驱动(原生驱动)更稳定,安装后进行简单设置即可高速传输外接NTFS硬盘文件,可全程离线使 ...

  2. Django CBV加装饰器、Django中间件、auth模块

    一. CBV加装饰器 在视图层中,基于函数的视图叫FBV(function base views),基于类的视图叫CBV(class base views).当需要用到装饰器时,例如之前的基于Cook ...

  3. form组件源码

  4. 最小生成树的Prim算法以及Kruskal算法的证明

    Prime算法的思路:从任何一个顶点开始,将这个顶点作为最小生成树的子树,通过逐步为该子树添加边直到所有的顶点都在树中为止.其中添加边的策略是每次选择外界到该子树的最短的边添加到树中(前提是无回路). ...

  5. CentOS 7.3下安装MySql

    1.下载mysql源安装包 wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm   2.安装mysql源 ...

  6. JavaScript(9)--- 跨域

    JavaScript(9)--- 跨域 一.跨域原理(同源策略) 在项目搭建的初期,因为现在项目基本上都是前后端分离,所以不可避免地会遇到跨域问题,而造成跨域的罪魁祸首就是浏览器的同源策略.所以要解决 ...

  7. IOS(苹果手机)使用video播放HLS流,实现在内部播放及全屏播放(即非全屏和全屏播放)。

    需求: 实现PC及移动端播放HLS流,并且可以自动播放,在页面内部播放及全屏播放功能. 初步:PC及安卓机使用hls.js实现hls流自动播放及全屏非全屏播放 首先使用了hls.js插件,可以实现在P ...

  8. stm32CubeMx+TrueSTUDIO+uc/os-III移植开发(一)

    自从接触到stm32cubemx后,发现使用起来很方便,用来做项目开发的话,由于是图形化操作界面,工作效率比较快.如果要学习操作系统,以前的IDE如keil,IAR等IDE对操作系统的代码调试起来不够 ...

  9. 超越Mask-RCNN:谷歌大脑的AI,自己写了个目标检测AI

    这是一只AI生出的小AI. 谷歌大脑的Quoc Le团队,用神经网络架构搜索 (NAS) ,发现了一个目标检测模型.长这样: △ 看不清请把手机横过来 它的准确率和速度都超过了大前辈Mask-RCNN ...

  10. UVA - 11426 欧拉函数(欧拉函数表)

    题意: 给一个数 N ,求 N 范围内所有任意两个数的最大公约数的和. 思路: f 数组存的是第 n 项的 1~n-1 与 n 的gcd的和,sum数组存的是 f 数组的前缀和. sum[n]=f[1 ...