Molten 功能简介以及使用指南

Molten项目地址:https://github.com/chuan-yun/Molten

简介

现今随着应用间调用的复杂化,php 开发者们在复杂调用链路追踪上并没有特别好的工具和方法, 流行的php问题定位工具譬如phptrace,xhprof等并不会针对于远程调用进行重点分析,比较适合单机应用。当php分布式系统需要明确组件调用关系的时候,这些工具很难发挥作用。

在这里我们抛出google在2010年提出的概念dapper-大规模分布式应用追踪系统,其中提出的分布式追踪系统的构想已经被一些公司或组织所实现,譬如zipkinopentracing。但是遗憾的是,现今没有比较让人认可应用透明php追踪方式。

chuan-yun组织实现的php扩展Molten已经解决了这个问题,它部署简单、应用透明、配置项丰富、兼容zipkin和opentracing标准、能够追踪众多基础组件,并且通过修改http请求header实现了应用透明的链路串联。

快速开始

我们能够用molten追踪php应用http、redis、mysql、memcached、mongodb等组件的调用信息。

请看项目简介中“QuickStart”部分,安装完molten扩展之后, 只需要两个步骤就可以看到追踪的链路信息。

cd example && sh run.sh:

在浏览器中打开http://127.0.0.1:9411/zipkin/ 就可以看到链路信息。脚本中使用了curl请求一个不存在的http地址,已经在图中标红:

也就是说我们部署完molten,配置好zipkin server 就能够搭建一个简单的全链路追踪系统,方便易用。

下图是我们chuanyun系统的截图,其中memcache, redis,mysql的调用一览无余,并且不需要用户修改任何业务代码。

连接的数据库信息也是一览无余:

上述示例太小?咱们展示一个复杂的链路追踪。

示例中启动了3个server,t1_server和t2_server都去请求base_server 这些http 请求构建成了一个完整的链路信息,构建了一个php全链路系统就是这么就简单!!

Cd example && sh complex.sh:

其中http的详细信息也会体现出来:

chuan-yun系统通过Molten,最终能够构建出一个应用、接口间的拓扑关系:

研发们的同学们再也不用为调用关系发愁了,我们可以监控到你想要的!!!

以上功能是不是很cool, Molten能够帮助你了解应用系统调用的方方面面,让你站在一个更高的位置进行系统的调优。

功能

现在Molten提供curl、pdo、mysqli、redis、mongodb、memcached等组件的拦截,这些信息拦截都是应用透明,开箱即用,输出zipkin格式非常方便。我们接下来还会增加拦截的组件,如果你也有想要拦截的组件,可以提issue给我们偶!!项目地址Molten。

查看molten是否正常启动了,可以访问:http://your.domain/molten/status:

面输出内容格式让人感到疑惑,其实这个是prometheus监控exporter输出格式,输出这种格式方便和prometheus集成。

还可以通过POST http://your.domain/molten/status修改探针采样的方式,内容如下:

{"enable":1,"samplingType":2,"samplingRate":20,"samplingRequest":100}

其中samplingType是采样类型:1是根据采样率采样,2是根据每分钟的请求数。

samplingRate是采样率,即多少个请求采样一个,samplingRequest是每分钟的前多少个请求被采样。采样是降低性能损耗的有效方式,通过还能够根据系统的承载量动态的调整。

还可通过molten.sink_type设置数据输出方式, 1是输出到文件中, 2输出到标准输出,4 通过http发送。

Molten在phptrace数据分析的基础上进行大量的开发, 本身性能在开启采样率的情况下影响较小。应用影响如下:

开启探针传递链路信息对比(采样率) 性能影响
1 21%
4 12%
8 8%
32 6%
64 9%
256 8%

贡献

这个项目是不是勾起了你的好奇心? 来吧让你的issue砸向我们,我们会提供更加丰富和完善的功能。最后请不要吝惜你的start :)。

加入我们

微信群

项目文档

项目地址:https://github.com/chuan-yun/Molten

中文文档:https://github.com/chuan-yun/Molten/blob/master/README_ZH.md

英文文档:https://github.com/chuan-yun/Molten/blob/master/README.md

穿云组织:https://github.com/chuan-yun

穿云doc:https://www.gitbook.com/book/chuan-yun/chuanyun-docs/details

转载于:https://my.oschina.net/u/3635821/blog/1499464

Molten 功能简介以及使用指南相关推荐

  1. linux项目功能简介,Sersync使用指南

    目录: sersync项目简介: Sersync服务器同步程序 项目简介与设计框架 sersync基本功能的安装配置详见: sersync2 完全安装配置说明(一) ----基本功能使用 sersyn ...

  2. FLUKE DSX-600 CH网络线缆测线仪功能简介及使用指南

    Fluke Networks 的DSX-600提供基本的 Cat 6A 和 Class EA 铜缆认证,测试时间仅需十秒,并配有高级用户界面.利用 LinkWare™ Live 通过 Wi-Fi 从任 ...

  3. 文心千帆:PPT 制作、数字人主播一键开播等数十种应用场景惊艳到我了,下面给出简介和使用指南,快去使用起来吧

    文心千帆:PPT 制作.数字人主播一键开播等数十种应用场景惊艳到我了,下面给出简介和使用指南,快去使用起来吧 文心千帆大模型平台是面向企业开发者的一站式大模型开发及服务运行平台.文心千帆不仅提供了包括 ...

  4. autoware框架与功能简介(一)

    autoware框架与功能简介(一) Autoware.AI是世界上第一个用于自动驾驶技术的"All-in-One"开源软件.它ROS1操作系统,并在Apache2.0许可下使用. ...

  5. 【Android 逆向】代码调试器开发 ( 代码调试器功能简介 | 设置断点 | 读写内存 | 读写寄存器 | 恢复运行 | Attach 进程 )

    文章目录 一.代码调试器功能简介 二.Attach 进程 一.代码调试器功能简介 代码调试器功能 : 设置断点 : 无论什么类型的调试器 , 都必须可以设置断点 , 运行到断点处 , 挂起被调试进程 ...

  6. Arduino终于支持代码补全了!小白们终于可以愉快的写代码了!Arduino IDE 2.0beta功能简介...

    Arduino终于支持代码补全了!小白们终于可以愉快的写代码了!Arduino IDE 2.0beta功能简介 前一段时间听到有人说Arduino的IDE特别不好用,功能太单一,最重要的是没有代码补全 ...

  7. RTOS原理及功能简介

    文章目录 1 RTOS原理及功能简介 1.1 RTOS概述 1.2 RTOS工作原理简介 1.3 RTOS如何解决前后台代码结构存在的问题 1 RTOS原理及功能简介 1.1 RTOS概述 百度百科的 ...

  8. html台风路径,常用气象网站功能简介

    常用气象网站部分功能简介 主要对如下网站进行介绍: 主要介绍常用气象网站的查询功能,以及信息提示 南汇气象局气象服务网站http://www.doczj.com/doc/16ee71ebf8c75fb ...

  9. MKL学习——功能简介

    基本术语 BLAS : Basic Linear Algebra Subprograms 基本线性代数子程序 BLACS : Basic Linear Algebra Communication Su ...

  10. 商场楼层导视牌图片_百宝图商场电子导视软件中预约产品功能简介

    百宝图商场电子导视软件中预约产品功能简介 管理端,可配合百宝图商场电子导视软件配套使用 1:数据展示:图形展示总预约数/预约时间峰值/预约途径/各途径数量对比 2:数据统计:有效预约数量/无效预约数量 ...

最新文章

  1. CentOS7.4-btrfs管理及使用
  2. Cell: 为了PK抗生素而服用益生菌?后果竟然如此严重
  3. Go语言构建json和解析json实例
  4. 报名开启 | 李开复等AI大咖齐聚量子位MEET大会,邀你共探新形势下智能产业发展之路...
  5. Notepad++如何更改背景色(以保护视力色为例)
  6. CrowdRec:众包环境中,基于信任感知的工人推荐
  7. PHP调用外部服务获取IP地域信息实现信息的地域性关联
  8. SAP Spartacus的CMSPageGuard
  9. 对于刚开始使用该软件,应该在熟悉基本的markdown语法的基础上,再进行快捷键的使用!...
  10. 为什么网格布局不显示java_java – 在GridLayout中不显示组件的FlowLayout?
  11. 深度学习-TF函数-layers.concatenate用法
  12. 可变悬挂调节软硬_国六最亲民的豪车,丐版2.0T纯进口,全系可变悬架+8气囊,才23万...
  13. leetcode题库1370-- 上升下降字符串
  14. python计算银行余额_Python:将银行扣费信息整理成账单
  15. 四旋翼无人机数学模型推导
  16. 求过指定点和指定方向的直线方程
  17. 报错:Apache提示 the requested operation has failed无法启动问题(最全!)
  18. IntelliJ IDEA(2017)安装和破解。
  19. java map 参数传递_Java参数传递分析
  20. JavaScript,setTimeout的使用案例

热门文章

  1. wordpress 瀑布流ajax,WordPress瀑布流主题:蛋花儿Free版
  2. array easy summery
  3. oracle to_date 函数
  4. 【阶段二】Python数据分析Pandas工具使用07篇:探索性数据分析:数据的描述:数据的集中趋势
  5. leetcode 有效的括号
  6. 【ESP】乐鑫系列物联网芯片
  7. 本地访问阿里云服务器不需要密码,怎么操作
  8. CAD梦想画图中的“打断命令”
  9. 国庆假期微信大数据报告
  10. datastage错误之Consumed more than 100,000 bytes looking for record delimiter; aborting