美文网首页
PHP 全链路追踪 Molten

PHP 全链路追踪 Molten

作者: 鹅鹅鹅的天歌 | 来源:发表于2018-08-28 17:57 被阅读0次

    最近看到公司运维用了一些全链路追踪的东西,感觉很高大上,然而都是一些java的项目在用,php已经救不了中国人了。于是简单搜了下PHP有没有类似的东西,果然发现了Molten。

    Molten可以认为是phptrace的的升级版,增加了可视化分布式等等等等的功能吧,主要用了phptrace的信息收集这块。

    看下Molten能干啥吧

    molten追踪php核心调用库运行时信息并且按照zipkin/optracing格式输出信息。
    可以追踪`curl,pdo,mysqli,redis,mongodb,memcached` 这么多的运行信息。
    

    灰常牛逼啊,你可以直接看到你耗时比较久的接口的运行信息,调用信息,一眼就能看到哪个地方拖累了你。是不是真的6

    接下来安装。直接参考官方的安装,此处略过。

    接下来配置,官方说的很清楚了,此处贴上我的配置

    [molten]
    extension="/usr/lib/php/extensions/no-debug-non-zts-20131226/molten.so"
    molten.enable="1"
    molten.service_name="local"
    molten.tracing_cli=1
    molten.open_report=1
    molten.sampling_type=2
    molten.sampling_rate=1
    molten.notify_uri="http://127.0.0.1:9411/zipkin/"
    molten.sink_http_uri="http://127.0.0.1:9411/api/v1/spans"
    molten.sink_type=4
    molten.sink_log_path="/project/molten/logs/"
    

    重新启动fpm后。进入molten的源码目录的example目录。执行sh run.sh前提是装了java环境或者docker环境。打开浏览器http://127.0.0.1:9411/zipkin/就可以看到信息了。

    来一段代码

    curl_setopt($curl, CURLOPT_URL, 'http://www.baidu.com');
    curl_setopt($curl, CURLOPT_HEADER, 1);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $data = curl_exec($curl);
    curl_close($curl);
    phpinfo();
    

    再看zipkin就有了数据,点进去就看到具体的调用信息了。


    image.png

    Tip:
    好像file_get_contents追踪不到
    由于很多场景都是同一个PHP环境都是运行了很多项目,改php.ini还是有很多不方便。可以在入口文件通过ini_set函数来实现服务的区分。

    相关文章

      网友评论

          本文标题:PHP 全链路追踪 Molten

          本文链接:https://www.haomeiwen.com/subject/hjurvftx.html