Molten 功能简介以及使用指南

<h1 id="molten">Molten 功能简介以及使用指南</h1>

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

<h2 id="">简介</h2>

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

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

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

<h2 id="-1">快速开始</h2>

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

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

<p>cd example &amp;&amp; sh run.sh:</p>

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

<p><img src="https://user-images.githubusercontent.com/9278779/28860441-42ae32c4-778f-11e7-97f7-ef9466112e37.png" alt="image" /></p>

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

<p>下图是我们<a href="https://github.com/chuan-yun">chuanyun</a>系统的截图,其中memcache, redis,mysql的调用一览无余,并且不需要用户修改任何业务代码。</p>

<p><img src="https://user-images.githubusercontent.com/9278779/28860236-4cc8dea4-778e-11e7-9beb-b48d758c045c.png" alt="image" /></p>

<p>连接的数据库信息也是一览无余:</p>

<p><img src="https://user-images.githubusercontent.com/9278779/28863906-46ba458e-779d-11e7-9632-7b8330f7676a.png" alt="image" /></p>

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

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

<p>Cd example &amp;&amp; sh complex.sh:</p>

<p><img src="https://user-images.githubusercontent.com/9278779/28860504-8535f758-778f-11e7-8814-d6dec1bd0689.png" alt="image" /></p>

<p>其中http的详细信息也会体现出来:</p>

<p><img src="https://user-images.githubusercontent.com/9278779/28860730-55017426-7790-11e7-99c8-c1874cf2a749.png" alt="image" /></p>

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

<p><img src="https://user-images.githubusercontent.com/9278779/28863832-0483c4a6-779d-11e7-988b-6bc38676de95.png" alt="image" /></p>

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

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

<h2 id="-2">功能</h2>

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

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

<p><img src="https://user-images.githubusercontent.com/9278779/28856084-7dc17a2c-7773-11e7-9248-d86a188e8180.png" alt="image" /></p>

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

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

<pre><code class="json language-json">{"enable":1,"samplingType":2,"samplingRate":20,"samplingRequest":100}

</code></pre>

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

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

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

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

<p>开启探针传递链路信息对比(采样率) | 性能影响

-- | --

1 | 21%

4 | 12%

8 | 8%

32 | 6%

64 | 9%

256 | 8%</p>

<h2 id="-3">贡献</h2>

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

<h2 id="-4">加入我们</h2>

<p><a href="https://github.com/chuan-yun/Molten/wiki/%E5%8A%A0%E5%85%A5%E6%88%91%E4%BB%AC">微信群</a></p>

<h2 id="-5">项目文档</h2>

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

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

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

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

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

时间: 2024-12-24 08:30:31

Molten 功能简介以及使用指南的相关文章

HelloX操作系统网络功能简介及使用和开发指南

HelloX网络功能简介及使用和开发指南 HelloX网络功能简介 作为物联网操作系统,网络功能是必备的核心功能之一.按照规划,HelloX实现了两个不同类型的TCP/IP协议栈,一个面向资源受限的嵌入式应用,移植了业界成熟使用的lwIP协议栈.该协议栈简洁明了,功能相对简单,同时专门面向嵌入式领域进行设计和优化,对硬件资源要求很低.另外一个协议栈来自BSD操作系统的协议栈,面向复杂的网络功能丰富的应用场景,比如家庭网关,物联网网关等.为了适应HelloX本身的机制,对BSD协议栈做了一些更改和

Yii2快速构建RESTful Web服务功能简介

Yii2相比Yii1而言,一个重大的改进是内置了功能完备的RESTful支持. 其内置RESTful支持提供了如下功能: 使用ActiveRecord的通用接口来快速构建原型: 应答格式协商(缺省支持 JSON 和 XML): 可定制的对象序列化,支持选择输出哪些列: 请求数据的格式化以及验证错误: 通过HTTP 动词映射实现高效路由: 支持 OPTIONS 和 HEAD 动词: 认证 和 鉴权: 支持 HATEOAS(RESTful的架构约束,超媒体即应用程序状态): 结果缓存,可使用 yii

高效房产中介信息管理软件------房产小蜜书功能简介

房产小蜜书是一款拥有多功能,操作简单,高效率的房产中介信息管理软件,同时,它又是一款营销软件,可以通过云刷新的功能实现云端的自动刷新,让经纪人们告别手动刷新的重复工作.下面就是对房产小蜜书主要功能的介绍. 房产小蜜书的主要功能有: (1) 站点管理:注册需要发布房源的网站,然后将网站的账号与房产小蜜书进行绑定,这是使用房产小蜜书进行信息管理和营销等操作的前提. 图1-1 站点管理 (2)房源信息录入:房源信息录入的作用是讲房源信息存入小蜜书的资料库中:特色在于: 填写小区名称后自动匹配小区区域.

联想教育应用使用说明(7.6版本)——第1章 联想教育应用方案功能简介

第1章联想教育应用方案功能简介 联想教育应用方案是专门为电子教室.网吧等公共机房环境设计开发的,包括硬盘分区管理.硬盘数据保护.CMOS参数保护.网络唤醒.IP分配.网络分组同传.智能同传.智能排程.断电同传以及机房网络管理控制等一系列重要功能,重点解决机房管理员如何快速方便地给机房中的所有计算机安装操作系统.驱动程序和应用软件的问题,以及解决如何快速清除计算机的前一个用户的操作,实现下一个用户使用同一台计算机初始用户环境的问题. 该应用方案具有以下功能特色: 1.能够同时给机房中的多台计算机(

SharePoint 2013跨网站集发布功能简介

在SharePoint Server 2013网站实施中,我们经常会遇到跨网站集获取数据,而2013的这一跨网站集发布功能,正好满足我们这样的需求. 使用SharePoint 2013中的跨网站发布,我们可以使用列表和其他库来存储在发布网站上重复使用的内容,通过内容搜索部件来读取配置的跨网站集信息,下面,让我们通过一个简单的例子,了解一下这一功能吧! 1.使用SharePoint 2013跨网站集发布功能,首先需要在源网站和目标网站开启Cross-Site Collection Publishi

Beginning SDL 2.0(1) SDL功能简介

原文链接为 http://wiki.libsdl.org/Introduction. 由于近期整理音视频可视化的技术,发现好久不更新的SDL发布了2.0版本,以前也没有过于关注,这里准备尝试下.了解SDL到底支持哪些功能. 本文部分内容为翻译内容.有任何不当支持请联系我. SDL全名Simple DirectMedia Layer (SDL).官网:http://www.libsdl.org/ What can SDL do? SDL功能简介 Read ahead for an overview

什么是DNN,Dotnetnuke介绍和功能简介

1. What is DNN? DNN是DotNetNuke(DotNet)的简写.它是在IBUYSPY(IBUYSPY是微软用来推广ASP.NET而推出的范例程序)的基础上发展起来的,是一个免费的.开放的源代码框架, 是一个可扩展的内容管理系统(CMS).可广泛应用于创建与维护专业的Web应用程序,如商务网站.企业内网(Intranet).外网网站以及在线内容发布网站. DNN能给我们带来什么?如果你是一个项目开发人员,DNN对于你来说,它可以快速建站:如果你是架构师,那么DNN的模块化思想是

部分GDAL工具功能简介

主要转自http://blog.csdn.net/liminlu0314?viewmode=contents 部分GDAL工具功能简介 gdalinfo.exe 显示GDAL支持的各种栅格文件的信息. gdal_translate.exe 在不同的格式间进行转换.同时,潜在的执行了一些切割.重采样和使像素比例变化的任务. gdalwarp.exe 投影转换和投影绑定.同时也可以进行图像镶嵌.这个程序可以重新投影所支持的投影,而且如果图像("raw" with)控制信息也可以把GCPs

DYN-B201 Dynamics CRM 云生产力解决方案与功能简介

DYN-B201 Dynamics CRM 云生产力解决方案与功能简介 讲师:王健.林松涛Dynamics CRM 云产品正式落地中国,CRM 与 Azure.O365 深度整合无缝集成,带来无与伦比的生产力,重塑企业业务流程,见证企业的崛起!本次课程将为大家带来最新的 Dynamics CRM 云产品,介绍最新版本的 CRM 新增加的一些重点和亮点特性,包括计算字段,统计字段,实时工作流,业务规则引擎等等.以及进行一些应用场景的 demo 演示,展示如何通过 CRM 解决方案提升企业协同工作效