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. pandas 的常用方法

    pandas的常用方法: 1.数据输入 2.数据查看 3.数据清洗 4.数据处理 5.数据提取 6.数据筛选 7.数据汇总 8.数据统计 9.数据输出 详情见: https://blog.csdn.n ...

  3. [模板] dfs序

    B.树之呼吸-贰之型-dfs序 Time Limit: 1000 MS Memory Limit: 32768 K Total Submit: 42 (16 users) Total Accepted ...

  4. FormDataBodyPart获取表单文件名乱码解决方法

    FormDataMultiPart formData=; FormDataBodyPart filePart=; filePart.getFormDataContentDisposition().ge ...

  5. 听说用 Lombok 可以早点下班?

    听说隔壁用 Lombok 的六点就下班了,我也想六点下班! 好的,那么这篇文章就介绍下什么是 Lombok,Lombok 做了什么以及 Lombok 是怎么做的? 在介绍之前,先通过是否使用 Lomb ...

  6. 阅读了这三篇文章,你也就基本理解了ASP.NET Core MVC框架的工作原理

    <200行代码,7个对象--让你了解ASP.NET Core框架的本质>让很多读者对ASP.NET Core管道有深刻的理解,知道了ASP.NET Core框架针对每个请求的处理流程.在过 ...

  7. Nginx 简介与安装

    1,简介 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.由俄罗斯的程序设计师Igor Sysoev所开发,供俄 ...

  8. Python python lamda 表达式

    '''关键字lambda表示匿名函数,冒号前面的x表示函数参数. 匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果. 用匿名函数有个好处,因为函数没有名字,不必担心 ...

  9. Java工程师常用Linux命令

    本文所列的Linux常用命令包含:文件相关(目录操作,内容查看,查找与比较,压缩与解压),进程管理,网络操作,系统管理,性能监测与优化,Java常用工具多个方面概述. 文件目录基本操作 ls 命令用来 ...

  10. [noip2016]愤怒的小鸟<状压dp+暴搜>

    题目链接:https://vijos.org/p/2008 现在回过头去看去年的考试题,发现都不是太难,至少每道题都有头绪了... 这道题的数据范围是18,这么小,直接暴力呗,跑个暴搜就完了,时间也就 ...