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. Arch Linux安装配置-双系统(1)

    Arch Linux启动盘准备: 在Windows下安装Win32 Disk Imager,打开页面,点击Download即可! 安装配置 1.选择我同意 2.选择安装位置路径 3.打勾,在桌面显示图 ...

  2. ElegantSnap 一个优雅的,易用的iOS/tvOS/macOS自动布局框架, 超级详细的使用教程,多视图水平等宽/垂直等高排列

    ElegantSnap ElegantSnap(Base on SnapKit) to make Auto Layout easy and elegant on both iOS and OS X. ...

  3. 简单BBS项目开始(一)

    1.BBS需求分析和创建ORM 1. 需要哪些表 1. UserInfo 1. username 2. password 3. avatar #头像图片 2. 文章表: title publish_d ...

  4. greenplum数据库常用操作

    1. 场景描述 greenplum集群部署好后,软件老王在实际使用过程中碰到一些问题,简单记录下,希望能帮到有需要的朋友. 2 .解决方案 2.1 gpcc监控地址 说明:非常重要,greenplum ...

  5. TensorFlow 多元线性回归【波士顿房价】

    1数据读取 1.1数据集解读 1.2引入包 %matplotlib notebook import tensorflow as tf import matplotlib.pyplot as plt i ...

  6. [SQL]511+512+534+550+569

    511. 游戏玩法分析 I solution SELECT player_id, MIN(event_date) AS first_login FROM Activity GROUP BY playe ...

  7. 带权并查集 HDU - 3047

    题意: 一圈座位有n个,给出m组序号之间的关系,比如,1 2 150 代表2号坐在1号位置序号+150,看m组数据有多少组冲突的. 思路: 带权并查集模板. #include<stdio.h&g ...

  8. python分布式接口,参数化实战二

    1,先看一下接口测试用例 2,文件1:写get和post模板 import requestsclass PostGetModels: def isMethod(self,url,data,method ...

  9. 用FME处理物探点表和线表,生成管线和设施

    在项目的数据处理中,客户会提供物探点表和线表. 点表主要包括该点的物探编号.该点的X坐标.Y坐标.点的其他属性 线表主要包括该线的起始点物探编号.终止物探编号.线的其他属性 点表

  10. Spring 事务注意事项

    使用事务注意事项 1,事务是程序运行如果没有错误,会自动提交事物,如果程序运行发生异常,则会自动回滚. 如果使用了try捕获异常时.一定要在catch里面手动回滚. 事务手动回滚代码 Transact ...