molten:PHP 應用透明鏈路追蹤工具

來源:互聯網
上載者:User

標籤:

本文和大家分享的主要是php中應用透明鏈路追蹤工具molten相關內容,一起來看看吧,希望對大家學習php有所協助。
molten
molten是應用透明鏈路追蹤工具。
molten追蹤php核心調用庫運行時資訊並且按照zipkin/optracing格式輸出資訊。
molten提供多種sapi, 多種採樣類型, 上報追蹤狀態, 模組控制和多種資料落地 類型等功能。
依賴於molten很容易構建基於php語言的 分布式全鏈路追蹤系統 目前已經運行在生產環境上千台機器上。
目錄
安裝
以下是你需要做的安裝molten在你的系統上。
phpize
./configuremake && make install
make install 複製 molten.so 到確切的位置, 但是你還需要開啟模組在php配置中,編輯你自己的php.ini或者添加molten.ini在 /etc/php5/conf.d , 並且添加如下內容: extension=molten.so 。
在 ./configure 階段, 你也可以添加 --enable-zipkin-header=yes 支援zipkin B3 header。
快速開始
cd examplesh run.sh
在瀏覽器中開啟 http://127.0.0.1:9411/zipkin/ , 能夠看見鏈路資訊。
如果你認為上述太簡單,你可以做下面的操作。
cd examplesh complex.sh
怎麼樣,是不是很酷。
注意 如果沒有看到詳細資料,那麼EndTime選項中添加1小時。
配置
基礎配置
molten.enable 1開啟0關閉, 預設 1 。
molten.service_name 設定應用服務名, 預設 default 。
molten.tracing_cli 1追蹤cli模式下資訊, 0關閉, 預設 0 。
採樣配置
molten.sampling_type 類型類型, 1採樣率控制, 2通過每分鐘request數, 預設是 1 。
molten.sampling_request 採樣類型是請求數採樣,每分鐘的採樣請求數, 預設是 10 。
molten.sampling_rate_base 採樣類型是採樣率時,每個請求的採樣幾率, 預設是 256 。
控制模組配置
molten.notify_uri 通知管理中心的uri。
上報模組配置
上報模組使用和資料模組相同的輸出類型。
molten.report_interval 資料模組調用間隔, 預設 60 。
molten.report_limit 資料上報請求上限, 預設 100 。
資料模組
molten.sink_type 資料落地類型, 1 寫入檔案, 檔案地址依賴 molten.sink_log_path , 2 寫入到標準輸出, 3 寫入到syslog中, 4 通過curl發送, 發送地址依賴 molten.sink_http_uri .
molten.output_type 輸出全部追蹤塊(span)( 1 ) 或者一行輸出一個塊( 2 )。
molten.sink_log_path 寫入檔案地址。
molten.sink_http_uri 發送http地址。
molten.sink_syslog_unix_socket 發送日誌到syslog udp unixdomain日誌收集源中。
追蹤塊配置
molten.span_format 追蹤塊格式(span), 不同的追蹤系統選擇 zipkin 或者 opentracing 。
驗證
php -d extension=molten.so -d molten.enable=1 -d molten.sink_type=2 -d molten.tracing_cli=1 -d molten.sampling_rate=1 -r ’$c=curl_init("http://localhost:12345");curl_exec($c);’
可以看到如下輸出:
[{"traceId":"%s","name":"php_curl","version":"php-4","id":"1.1","parentId":"1","timestamp":%d,"duration":%d,"annotations":[{"value":"cs","timestamp":%d,"endpoint":{"serviceName":"%s","ipv4":"%s"}},{"value":"cr","timestamp":%d,"endpoint":{"serviceName":"%s","ipv4":"%s"}}],"binaryAnnotations":[{"key":"http.url","value":"http:\/\/localhost:12345\/","endpoint":{"serviceName":"%s","ipv4":"%s"}},{"key":"error","value":"Failed
connect to localhost:12345; Connection
refused","endpoint":{"serviceName":"%s","ipv4":"%s"}}]},{"traceId":"%s","name":"cli","version":"php-4","id":"1","timestamp":%d,"duration":%d,"annotations":[{"value":"sr","timestamp":%d,"endpoint":{"serviceName":"%s","ipv4":"%s"}},{"value":"ss","timestamp":%d,"endpoint":{"serviceName":"%s","ipv4":"%s"}}],"binaryAnnotations":[{"key":"path","value":"-","endpoint":{"serviceName":"%s","ipv4":"%s"}}]}]
功能
從上述配置中,你可以看到我們提供的功能。
攔截器
molten 攔截 curl,pdo,mysqli,redis,mongodb,memcached擴充,構建運行時追蹤資訊. 支援全鏈路追蹤功能, molten 替換了curl_exec,curl_setopt,curl_setopt_array函數, 並且在請求中添加了鏈路頭(x-w-traceid, x-w-spanid and so on)。
定製化的鏈路格式, 支援兩個流行格式( zipkin 和 opentracing )。
採樣
兩種不同的採樣方式並且能夠通過控制模組進行修改。
資料落地
molten當前支援3種資料落地方式,標準輸出,檔案,http。並且能夠選擇輸出的位置。
控制
使用http協議控制探針的行為。
查看molten的狀態, 通過GET方法請求 http://domain/molten/status 。
輸出內容如下,已經適配了 prometheus 格式。
# HELP molten_request_all Number of all request.# TYPE molten_request_all counter
molten_request_all %d# HELP molten_request_capture Number of request be capture.# TYPE molten_request_capture counter
molten_request_capture %d# HELP molten_sampling_type the type of sampling.# TYPE molten_sampling_type gauge
molten_sampling_type %d# HELP molten_sampling_rate the rate of sampling.# TYPE molten_sampling_rate gauge
molten_sampling_rate %d# HELP molten_sampling_request the request be capture one min.# TYPE molten_sampling_request gauge
molten_sampling_request %d
修改molten採樣方式, 使用POST方法請求 http://domain/molten/status 。
資料是json格式,欄位和配置項中的含義是一致的。
{"enable":1,"samplingType":2,"samplingRate":20,"samplingRequest":100}
上報
上報模組能夠記錄,molten並沒有採樣樣到的關鍵資料資訊。


來源:Github

molten:PHP 應用透明鏈路追蹤工具

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.