Spring-Cloud-Sleuth是Spring Cloud的組成部分之一,爲SpringCloud應用實現了一種分佈式追蹤解決方案,其兼容了Zipkin, HTrace和log-based追蹤git
Span: 基本工做單元,例如,在一個新建的span中發送一個RPC等同於發送一個迴應請求給RPC,span經過一個64位ID惟一標識,trace以另外一個64位ID表示,span還有其餘數據信息,好比摘要、時間戳事件、關鍵值註釋(tags)、span的ID、以及進度ID(一般是IP地址)github
span在不斷的啓動和中止,同時記錄了時間信息,當你建立了一個span,你必須在將來的某個時刻中止它。spring
Trace: 一系列spans組成的一個樹狀結構,例如,若是你正在跑一個分佈式大數據工程,你可能須要建立一個trace。docker
Annotation: 用來及時記錄一個事件的存在,一些核心annotations用來定義一個請求的開始和結束網絡
cs - Client Sent -客戶端發起一個請求,這個annotion描述了這個span的開始
sr - Server Received -服務端得到請求並準備開始處理它,若是將其sr減去cs時間戳即可獲得網絡延遲
ss - Server Sent -註解代表請求處理的完成(當請求返回客戶端),若是ss減去sr時間戳即可獲得服務端須要的處理請求時間
cr - Client Received -代表span的結束,客戶端成功接收到服務端的回覆,若是cr減去cs時間戳即可獲得客戶端從服務端獲取回覆的全部所需時間運維
將Span和Trace在一個系統中使用Zipkin註解的過程圖形化:elasticsearch
https://gitee.com/toopoo/Spri...
分佈式
消息隊列,主要用於傳輸日誌工具
服務調用鏈路追蹤系統,聚合各業務系統調用延遲數據,達到鏈路調用監控與跟蹤。oop
服務調用鏈路
https://gitee.com/toopoo/Spri...
服務調用鏈路詳情
https://gitee.com/toopoo/Spri...
服務間的調用關係
https://gitee.com/toopoo/Spri...
提供搜索、查看和與存儲在 Elasticsearch 索引中的數據進行交互的功能。開發者或運維人員能夠輕鬆地執行高級數據分析,並在各類圖表、表格和地圖中可視化數據。
https://gitee.com/toopoo/Spri...
可視化圖表監控工具
https://gitee.com/toopoo/Spri...
version: '3' services: rabbitmq: image: rabbitmq:alpine container_name: sc-rabbitmq restart: always volumes: - ./data/rabbitmq:/var/lib/rabbitmq networks: - sc-net ports: - 5672:5672 zipkin-server: image: openzipkin/zipkin container_name: sc-zipkin-server restart: always volumes: - ./data/logs/zipkin-server:/logs networks: - sc-net ports: - 9411:9411 environment: - RABBIT_ADDRESSES=rabbitmq:5672 - RABBIT_MQ_PORT=5672 - RABBIT_PASSWORD=guest - RABBIT_USER=guest depends_on: - rabbitmq networks: sc-net: external: false
version: '3' services: elasticsearch: image: elasticsearch:alpine container_name: sc-elasticsearch restart: always volumes: - ./data/elasticsearch/logs:/var/logs/elasticsearch networks: - sc-net ports: - 9200:9200 kibana: image: kibana container_name: sc-kibana restart: always volumes: - ./data/kibana/logs:/var/logs/kibana networks: - sc-net ports: - 5601:5601 environment: - ELASTICSEARCH_URL=http://elasticsearch:9200 depends_on: - elasticsearch grafana: image: grafana/grafana container_name: sc-grafana restart: always volumes: - ./data/grafana/logs:/var/logs/grafana networks: - sc-net ports: - 3000:3000
將以上docker-compose腳本保存爲docker-compose.yml,並在當時目錄下執行docker-compose up -d
請參考:https://github.com/zhoutaoo/S... 例子
應用集成開發好後,請求應用的接口
zipkin訪問地址:http://localhost:9411,能夠看到請求的耗時與路徑
kibana訪問地址:http://localhost:5601,能夠看到請求打印的日誌
grafana訪問地址:http://localhost:3000,能夠新增es數據源,出可視化的圖表和監控