精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

一文帶你了解SkyWalking

開(kāi)發(fā) 架構(gòu)
Apache SkyWalking是一款功能強(qiáng)大的APM系統(tǒng),可以幫助開(kāi)發(fā)人員和運(yùn)維人員更好地了解分布式系統(tǒng)的性能狀況。通過(guò)使用SkyWalking,可以提高應(yīng)用程序的穩(wěn)定性和性能,降低運(yùn)維成本。

Apache SkyWalking

SkyWalking是一個(gè)開(kāi)源可觀測(cè)平臺(tái),用于收集、分析、聚合和可視化來(lái)自服務(wù)和云原生基礎(chǔ)設(shè)施的數(shù)據(jù)。SkyWalking 提供了一種簡(jiǎn)單的方法來(lái)保持分布式系統(tǒng)的清晰視圖,甚至跨云。它是一種現(xiàn)代APM,專為云原生、基于容器的分布式系統(tǒng)而設(shè)計(jì)。

文檔版本8.9.1,當(dāng)前最新版本9.10

圖片圖片

介紹

SkyWalking 是一個(gè)應(yīng)用性能監(jiān)控系統(tǒng)(APM)

為微服務(wù)、云原生和基于容器(Docker, Kubernetes, Mesos)體系結(jié)構(gòu)而設(shè)計(jì),主要實(shí)現(xiàn)功能包括分布式追蹤,性能指標(biāo)分析和服務(wù)依賴分析等

相似產(chǎn)品與對(duì)比

類似功能的組件還有:Zipkin、Pinpoint 、CAT、Dapper等

  • Zipkin是Twitter開(kāi)源的調(diào)用鏈路分析工具,目前基于Spingcloud sleuth得到了廣泛的應(yīng)用,特點(diǎn)是輕量,部署簡(jiǎn)單。
  • 一個(gè)韓國(guó)團(tuán)隊(duì)開(kāi)源的產(chǎn)品,運(yùn)用了字節(jié)碼增強(qiáng)技術(shù),只需要在啟動(dòng)時(shí)添加啟動(dòng)參數(shù)即可,對(duì)代碼無(wú)侵入,目前支持Java和PHP語(yǔ)言,底層采用HBase來(lái)存儲(chǔ)數(shù)據(jù),探針收集的數(shù)據(jù)- 粒度非常細(xì),但性能損耗大,因其出現(xiàn)的時(shí)間較長(zhǎng),完成度也很高,應(yīng)用的公司較多
  • Skywalking是本土開(kāi)源的基于字節(jié)碼注入的調(diào)用鏈路分析以及應(yīng)用監(jiān)控分析工具,特點(diǎn)是支持多種插件,UI功能較強(qiáng),接入端無(wú)代碼侵入。
  • CAT是由國(guó)內(nèi)美團(tuán)點(diǎn)評(píng)開(kāi)源的,基于Java語(yǔ)言開(kāi)發(fā),目前提供Java、C/C++、Node.js、Python、Go等語(yǔ)言的客戶端,監(jiān)控?cái)?shù)據(jù)會(huì)全量統(tǒng)計(jì),國(guó)內(nèi)很多公司在用,例如美團(tuán)點(diǎn)評(píng)、攜程、拼多多等,CAT跟下邊要介紹的Zipkin都需要在應(yīng)用程序中埋點(diǎn),對(duì)代碼侵入性強(qiáng)。


Cat

Zipkin

Pinpoint

skywalking

依賴

Java 6,7,8

Maven 3.2.3+

mysql5.6

Linux 2.6以及之上(2.6內(nèi)核才可以支持epoll)

Java 6,7,8

Maven3.2+

rabbitMQ

Java 6,7,8

maven3+

Hbase0.94+

Java 6,7,8

maven3.0+

nodejs

zookeeper

elasticsearch

實(shí)現(xiàn)方式

代碼埋點(diǎn)(攔截器,注解,過(guò)濾器等)

攔截請(qǐng)求,發(fā)送(http,mq)數(shù)據(jù)至zipkin服務(wù)

java探針,字節(jié)碼增強(qiáng)

java探針,字節(jié)碼增強(qiáng)

顆粒度

代碼級(jí)

接口級(jí)

方法級(jí)

方法級(jí)

頁(yè)面UI

*****

**

*****

****

存儲(chǔ)選擇

Mysql,hdfs

In-memory,mysql,cassandra,elasticsearch

Hbase

Elasticsearch,h2

通信方式

-

http,mq

Thrift

GRPC

MQ監(jiān)控

不支持

不支持

不支持

RocketMq,kafka

全局調(diào)用 統(tǒng)計(jì)

支持

不支持

支持

支持

Trace查詢

不持支

支持

不支持

支持

報(bào)警

支持

不支持

支持

支持

Jvm監(jiān)控

不支持

不支持

支持

支持

優(yōu)點(diǎn)

功能完善

spring-cloud-sleuth可以很好的集成zipkin , 代碼無(wú)侵入,集成非常簡(jiǎn)單 , 社區(qū)更加活躍。對(duì)外提供有query接口,更加容易二次開(kāi)發(fā)

完全無(wú)侵入, 僅需修改啟動(dòng)方式,界面完善,功能細(xì)致。

完全無(wú)侵入,界面完善,支持應(yīng)用拓?fù)鋱D及單個(gè)調(diào)用鏈查詢。功能比較完善(zipkin + pinpoint)

缺點(diǎn)

代碼侵入性較強(qiáng),需要埋點(diǎn)文檔比較混亂,文檔與發(fā)布版本的符合性較低,需要依賴點(diǎn)評(píng)私服 (或者需要把他私服上的jar手動(dòng)下載下來(lái),然后上傳到我們的私服上去)。

默認(rèn)使用的是http請(qǐng)求向zipkin上報(bào)信息,耗性能。跟sleuth結(jié)合可以使用rabbitMQ的方式異步來(lái)做,增加了復(fù)雜度,需要引入rabbitMQ 。數(shù)據(jù)分析比較簡(jiǎn)單。

不支持查詢單個(gè)調(diào)用鏈, 對(duì)外表現(xiàn)的是整個(gè)應(yīng)用的調(diào)用生態(tài)。二次開(kāi)發(fā)難度較高

3.2版本之前BUG較多 ,網(wǎng)上反映兼容性較差 . 3.2新版本的反映情況較少依賴較多。

文檔

網(wǎng)上資料較少,僅官網(wǎng)提供的文檔,比較亂

文檔完善

文檔完善

文檔完善

開(kāi)發(fā)者

大眾點(diǎn)評(píng)

Twiter

Naver

吳晟(華為開(kāi)發(fā)者) ,目前已經(jīng)加入Apache孵化器

使用公司

大眾點(diǎn)評(píng),攜程,陸金所,同程旅游,獵聘網(wǎng),拼多多

Twiter

Naver

華為,alibaba cloud,天源迪科,當(dāng)當(dāng)網(wǎng),京東金融

功能

開(kāi)源監(jiān)控平臺(tái),用于從服務(wù)和云原生基礎(chǔ)設(shè)施收集、分析、聚合和可視化數(shù)據(jù)。SkyWalking提供了一種簡(jiǎn)單的方法來(lái)維護(hù)分布式系統(tǒng)的清晰視圖,甚至可以跨云查看。它是一種現(xiàn)代APM,專門為云原生、基于容器的分布式系統(tǒng)設(shè)計(jì)

監(jiān)測(cè)對(duì)象包括:service(服務(wù)), service instance(實(shí)例), endpoint(端點(diǎn))

功能描述:

  • 多種監(jiān)控手段,可以通過(guò)語(yǔ)言探針和service mesh獲得監(jiān)控的數(shù)據(jù)
  • 支持多重語(yǔ)言的自動(dòng)探針,包括JAVA, .NET Core和NodeJS
  • 輕量高效,無(wú)需大數(shù)據(jù)平臺(tái)和大量的服務(wù)器資源
  • 模塊化,UI ,存儲(chǔ),集群管理都有多種機(jī)制可選
  • 支持告警
  • 優(yōu)秀的可視化解決方案

架構(gòu)

SkyWalking 在邏輯上分為四個(gè)部分:Probes、Platform backend、Storage 和 UI。

圖片圖片

探針Probe

采集tracing(調(diào)用鏈數(shù)據(jù))和metric(指標(biāo))信息并上報(bào),上報(bào)通過(guò)HTTP或者gRPC方式按要求重新格式化數(shù)據(jù)發(fā)送數(shù)據(jù)到Skywalking Collector

  • 自動(dòng)探針:Java支持的中間件、框架與類庫(kù)列表
  • 手動(dòng)探針:OpenTrackingApi、@Trace注解、trackId集成到日志中。

后端Platform backend

支持?jǐn)?shù)據(jù)聚合、分析和流式處理,包括跟蹤、度量和日志。

基于gRpc、Http 鏈路數(shù)據(jù)收集器,對(duì)agent傳過(guò)來(lái)的tracing和metric數(shù)據(jù)進(jìn)行整合分析通過(guò)Analysis Core模塊處理并落入相關(guān)的數(shù)據(jù)存儲(chǔ)中,同時(shí)會(huì)通過(guò)Query Core模塊進(jìn)行二次統(tǒng)計(jì)和監(jiān)控告警

數(shù)據(jù)存儲(chǔ)Storage

通過(guò)開(kāi)放/可插入接口存儲(chǔ) SkyWalking 數(shù)據(jù),支持多種方式存儲(chǔ)數(shù)據(jù) H2,ElasticSearch,MySQL, TiDB, InfluxDB或自定義

可視化平臺(tái)UI

基于GraphQL Http 高度可定制的基于 Web 的界面的可視化平臺(tái),允許 SkyWalking 最終用戶可視化和管理。

下載安裝

下載

官方下載地址:https://skywalking.apache.org/downloads/

歷史版本下載:https://archive.apache.org/dist/skywalking/

Rocketbot-UI 8.x:https://github.com/apache/skywalking-rocketbot-ui

Booster UI 9.x:https://github.com/apache/skywalking-booster-ui

注:APM已經(jīng)集成UI,不需要單獨(dú)下載與部署

Window安裝

  • 安裝APM (8.9.1,h2)
  • 下載apache-skywalking-apm-bin
  • 解壓執(zhí)行命名 ~/bin/startup.bat
  • 訪問(wèn)http://localhost:8080

圖片圖片

Docker安裝

  • 安裝OAP

下載鏡像

docker pull apache/skywalking-oap-server:8.9.1

啟動(dòng)容器

docker run --name oap -p 12800:12800 -p 11800:11800 -p 1234:1234 --restart always -d apache/skywalking-oap-server:8.9.1
  • 安裝UI

下載鏡像

docker pull apache/skywalking-ui

啟動(dòng)容器

docker run --name oap-ui -p 18080:8080 --restart always -d -e SW_OAP_ADDRESS=http://localhost:12800 apache/skywalking-ui

訪問(wèn)http://localhost:18080

系統(tǒng)集成

  • 探針

負(fù)責(zé)進(jìn)行數(shù)據(jù)的收集,包含了Tracing和Metrics的數(shù)據(jù),agent會(huì)被安裝到服務(wù)所在的服務(wù)器上,以方便數(shù)據(jù)的獲取。探針使用gRPC協(xié)議與OAP平臺(tái)通信并上報(bào)數(shù)據(jù)。

  • 可觀測(cè)性分析平臺(tái) OAP

接收探針發(fā)送的數(shù)據(jù),并在內(nèi)存中使用分析引擎(Analysis Core)進(jìn)行數(shù)據(jù)的整合運(yùn)算,然后將數(shù)據(jù)存儲(chǔ)到對(duì)應(yīng)的存儲(chǔ)介質(zhì)上,比如 Elasticsearch、MySQL等存儲(chǔ)服務(wù)。同時(shí)OAP還使用查詢引擎(Query Core)提供HTTP查詢接口。OAP默認(rèn)監(jiān)聽(tīng)兩個(gè)端口gRPC協(xié)議端口11800、HTTP端口12800,gRPC用于探針上報(bào)數(shù)據(jù),HTTP端口用于UI連接OAP平臺(tái)獲取數(shù)據(jù)。

  • UI

Skywalking 提供單獨(dú)的UI進(jìn)行數(shù)據(jù)的查看,UI調(diào)用OAP提供的接口,獲取對(duì)應(yīng)的數(shù)據(jù)根據(jù)UI模板的配置進(jìn)行展示。Skywalking UI與OAP之間使用Http協(xié)議進(jìn)行通信。Skywalking UI默認(rèn)監(jiān)聽(tīng)8080端口提供Web服務(wù)。

Java Agent

  • 下載:Java Agent v8.11.0
  • 目錄結(jié)構(gòu)

activations                 # 工具包,默認(rèn)加載。

bootstrap-plugins           # 啟動(dòng)插件,默認(rèn)加載。

config                      # 配置文件

logs                        # 日志

optional-plugins            # 可選擴(kuò)展插件,啟動(dòng)不加載,如需加載將其移到到plugins目錄下。

optional-reporter-plugins   # 可選統(tǒng)計(jì)類插件,啟動(dòng)不加載。

plugins                     # 服務(wù)類插件

skywalking-agent.jar        # 客戶端主程序,需要被服務(wù)啟動(dòng)是引用。

  • 使用:項(xiàng)目啟動(dòng)命令添加-javaagent:/path/skywalking-agent/skywalking-agent.jar
  • 示例:
java -javaagent:/path/skywalking-agent/skywalking-agent.jar -jar your-app.jar
  • 配置:
  • 系統(tǒng)屬性:-Dskywalking.[config]=[value]
  • 代理參數(shù): -javaagent:skywalking-agent.jar=[config]=[value],...
  • 系統(tǒng)環(huán)境變量:agent.service_name=${SW_AGENT_NAME:Your_ApplicationName},如果SW_AGENT_NAME 您的操作系統(tǒng)中存在環(huán)境變量,并且其值為skywalking-agent-demo,則agent.service_name此處的值將被覆蓋為skywalking-agent-demo,否則將被設(shè)置為Your_ApplicationName。
  • 修改目錄/path/skywalking-agent/config/agent.config文件
// todo
//服務(wù)名稱
agent.service_name=${SW_AGENT_NAME:Your_ApplicationName}
// OAP服務(wù)地址
collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:127.0.0.1:11800}

代理選項(xiàng) > System.Properties(-D) > 系統(tǒng)環(huán)境變量 > 配置文件

  • 官方文檔

Client JavaScript

  • 安裝
npm install skywalking-client-js --save
  • 注冊(cè)
import ClientMonitor from 'skywalking-client-js';

   // Report collected data to `http:// + window.location.host + /browser/perfData` in default
   ClientMonitor.register({
      collector: 'http://127.0.0.1:8080',
      service: 'test-ui',
      pagePath: '/current/page/name',
      serviceVersion: 'v1.0.0',
   });
// options
   {
      // 參考方法文檔
   }
  • 手動(dòng)收集指標(biāo)頁(yè)面加載時(shí)或任何其他有意義的時(shí)刻的指標(biāo),PV

register時(shí)設(shè)置autoTracePerf:false

  • 調(diào)用setPerformance
import ClientMonitor from 'skywalking-client-js';

   ClientMonitor.setPerformance({
      collector: 'http://127.0.0.1:8080',
      service: 'browser-app',
      serviceVersion: '1.0.0',
      pagePath: location.href,
      useFmp: true
   });
  • SPA

register時(shí)設(shè)置enableSPA:true,開(kāi)啟單頁(yè)面應(yīng)用基于hashchange event觸發(fā)指標(biāo)采集行為

或者通過(guò)以下方法手動(dòng)處理,在上報(bào)數(shù)據(jù)時(shí)手動(dòng)更新頁(yè)面名稱,當(dāng)調(diào)用該方法時(shí),默認(rèn)情況下將重新報(bào)告頁(yè)面PV

app.on('routeChange', function (next) {
      ClientMonitor.setPerformance({
         collector: 'http://127.0.0.1:8080',
         service: 'browser-app',
         serviceVersion: '1.0.0',
         pagePath: location.href,
         useFmp: true
      });
   });
  • 跟蹤請(qǐng)求數(shù)據(jù)支持跟蹤這些(XMLHttpRequest和Fetch API)兩種模式的數(shù)據(jù)請(qǐng)求。同時(shí),支持基于XMLHttpRequest和fetch的跟蹤庫(kù)和工具,如Axios、SuperAgent、OpenApi等
// Angular
   import { ErrorHandler } from '@angular/core';
   import ClientMonitor from 'skywalking-client-js';

   export class AppGlobalErrorhandler implements ErrorHandler {
   handleError(error) {
      ClientMonitor.reportFrameErrors({
         collector: 'http://127.0.0.1',
         service: 'angular-demo',
         pagePath: '/app',
         serviceVersion: 'v1.0.0',
      }, error);
   }
   }
   @NgModule({
   ...
   providers: [{provide: ErrorHandler, useClass: AppGlobalErrorhandler}]
   })
   class AppModule {}
   ```

   ```js
   // React
   class ErrorBoundary extends React.Component {
   constructor(props) {
      super(props);
      this.state = { hasError: false };
   }
   static getDerivedStateFromError(error) {
      // Update state so the next render will show the fallback UI.
      return { hasError: true };
   }
   componentDidCatch(error, errorInfo) {
      // You can also log the error to an error reporting service
      ClientMonitor.reportFrameErrors({
         collector: 'http://127.0.0.1',
         service: 'react-demo',
         pagePath: '/app',
         serviceVersion: 'v1.0.0',
      }, error);
   }
   render() {
      if (this.state.hasError) {
         // You can render any custom fallback UI
         return <h1>Something went wrong.</h1>;
      }
      return this.props.children; 
   }
   }
   <ErrorBoundary>
   <MyWidget />
   </ErrorBoundary>
   ```

   ```js
   // Vue
   Vue.config.errorHandler = (error) => {
   ClientMonitor.reportFrameErrors({
      collector: 'http://127.0.0.1',
      service: 'vue-demo',
      pagePath: '/app',
      serviceVersion: 'v1.0.0',
   }, error);
   }
   ```
  • 官方文檔

skywalking-client-js

監(jiān)測(cè)對(duì)象

  • 服務(wù)(Service)
對(duì)請(qǐng)求提供端點(diǎn)的單個(gè)應(yīng)用或負(fù)載,在使用埋點(diǎn)、代理或 SDK 的時(shí)候,你可以定義服務(wù)的名字。如果不定義的話,SkyWalking 會(huì)使用在agent.conf中配置的默認(rèn)服務(wù)名稱。
  • 服務(wù)實(shí)例(Instance)
服務(wù)組中的每個(gè)單獨(dú)的工作負(fù)載都稱為一個(gè)實(shí)例。就像pods在 Kubernetes 中一樣,它不需要是單個(gè)操作系統(tǒng)進(jìn)程,但是,如果您使用儀器代理,則實(shí)例實(shí)際上是一個(gè)真正的操作系統(tǒng)進(jìn)程。
  • 端點(diǎn)(Endpoint)
用于傳入請(qǐng)求的服務(wù)中的路徑,例如 HTTP URI 路徑或 gRPC 服務(wù)類 + 方法簽名。

UI指標(biāo)

通過(guò)配置文件定義需要關(guān)注的指標(biāo) 通過(guò)特定的分析語(yǔ)言計(jì)算指標(biāo)

UI包括以下幾個(gè)部分:

  • 儀表盤
  • 拓?fù)鋱D
  • 追蹤
  • 性能剖析
  • 日志
  • 告警
  • 事件
  • 調(diào)試

儀表盤

APM

  • Global

Services Load(CPM / PPM):服務(wù)每分鐘請(qǐng)求數(shù)

Slow Services(ms):慢響應(yīng)服務(wù)(按照響應(yīng)時(shí)間排序)

Un-Health Services (Apdex):Apdex分?jǐn)?shù)(1為滿分)

Slow Endpoints (ms):慢Endpoint的平均響應(yīng)時(shí)間

Global Response Latency(percentile in ms):響應(yīng)時(shí)間百分比

Global Heatmap:服務(wù)響應(yīng)時(shí)間熱力分布圖,根據(jù)時(shí)間段內(nèi)不同響應(yīng)時(shí)間的數(shù)量顯示顏色深度顏色越深,請(qǐng)求越多。

  • Service
  • Service Apdex 數(shù)字:當(dāng)前服務(wù)的Apdex分?jǐn)?shù);
  • Successful Rate(%):當(dāng)前服務(wù)的請(qǐng)求成功率;
  • Service Load (CPM / PPM)數(shù)字:每分鐘調(diào)用次數(shù)(CPM),如果是TCP,表示每分鐘的數(shù)據(jù)包數(shù)(PPM);
  • Service Avg Response Time(ms):當(dāng)前服務(wù)平均響應(yīng)時(shí)間;
  • Service Apdex 折線圖:當(dāng)前服務(wù)一段時(shí)間內(nèi)的Apdex分?jǐn)?shù);
  • Service Response Time Percentile(ms):當(dāng)前服務(wù)的百分比響應(yīng)延時(shí);
  • Successful Rate(%)折線圖:當(dāng)前服務(wù)一段時(shí)間內(nèi)的請(qǐng)求成功率;
  • Service Load (CPM / PPM)折線圖:當(dāng)前服務(wù)一段時(shí)間內(nèi)的每分鐘調(diào)用次數(shù);
  • Service Throughput(Bytes):服務(wù)吞吐量,只適用于TCP服務(wù);
  • Message Queue Consuming Count:消息隊(duì)列消費(fèi)數(shù);
  • Message Queue Avg Consuming Latency(ms):消息隊(duì)列平均延遲時(shí)間;
  • Service Instances Load(CPM / PPM):每個(gè)實(shí)例每分鐘請(qǐng)求數(shù);
  • Slow Service Instance(ms):每個(gè)服務(wù)實(shí)例平均延時(shí);
  • Service Instance Successful Rate(%):服務(wù)實(shí)例的請(qǐng)求成功率。
  • Instance
  • instance_jvm_memory_heap(堆內(nèi)存使用)
  • instance_jvm_memory_heap_max(最大堆內(nèi)存)
  • instance_jvm_memory_noheap(直接內(nèi)存使用)
  • instance_jvm_memory_noheap_max(最大直接內(nèi)存)
  • Service Instance Load(CPM / PPM):當(dāng)前實(shí)例每分鐘調(diào)用數(shù);
  • Service Instance Throughput(Bytes):當(dāng)前實(shí)例的吞吐流量;
  • Service Instance Successful Rate(%):當(dāng)前實(shí)例調(diào)用成功比率;
  • Service Instance Latency(ms):當(dāng)前實(shí)例響應(yīng)延時(shí);
  • JVM CPU(Java Service)%:當(dāng)前實(shí)例JVM的CPU占用百分比(相對(duì)于主機(jī));
  • JVM Memory (Java Service)(MB):當(dāng)前實(shí)例的內(nèi)存占用大小;
  • JVM GC Time(ms):JVM 垃圾回收時(shí)間,包含young gc和old gc;
  • JVM GC Count:JVM垃圾回收次數(shù),包含young gc count和old gc count;
  • JVM Thread Count(java service):當(dāng)前實(shí)例的線程數(shù);
  • JVM Thread State Count (Java Service):當(dāng)前實(shí)例的各狀態(tài)線程數(shù);
  • JVM Class Count (Java Service):當(dāng)前實(shí)例類的計(jì)數(shù)。
  • Endpoint
  • Endpoint Load in Current Service(CPM / PPM):當(dāng)前服務(wù)每個(gè)端點(diǎn)的每分鐘請(qǐng)求數(shù);
  • Slow Endpoints in Current Service(ms):當(dāng)前服務(wù)每個(gè)端點(diǎn)的平均響應(yīng)時(shí)間;
  • Successful Rate in Current Service(%):當(dāng)前服務(wù)每個(gè)端點(diǎn)的請(qǐng)求成功率;
  • Endpoint Load:當(dāng)前端點(diǎn)每個(gè)時(shí)間段的請(qǐng)求量;
  • Endpoint Avg Response Time(ms):當(dāng)前端點(diǎn)每個(gè)時(shí)間段的平均請(qǐng)求響應(yīng)時(shí)間;
  • Endpoint Response Time Percentile(ms):當(dāng)前端點(diǎn)每個(gè)時(shí)間段的響應(yīng)時(shí)間占比;
  • Endpoint Successful Rate(%):當(dāng)前端點(diǎn)每個(gè)時(shí)間段的請(qǐng)求成功率;

Database

  • Database Avg Response Time(ms):當(dāng)前數(shù)據(jù)庫(kù)平均響應(yīng)時(shí)間;
  • Database Access Successful Rate(%):當(dāng)前數(shù)據(jù)庫(kù)訪問(wèn)成功率;
  • Database Traffic(CPM: Calls Per Minute):當(dāng)前數(shù)據(jù)庫(kù)每分鐘請(qǐng)求數(shù);
  • Database Access Latency Percentile(ms):當(dāng)前數(shù)據(jù)庫(kù)響應(yīng)延遲時(shí)間的百分比;
  • Slow Statements(ms):慢查詢,按照?qǐng)?zhí)行時(shí)間排序;
  • All Database Loads(CPM: Calls Per Minute):所有數(shù)據(jù)庫(kù)的請(qǐng)求次數(shù)排序;
  • Un-Health Databases (Successful Rate):所有數(shù)據(jù)庫(kù)請(qǐng)求成功率排序。

SelfObservability

自監(jiān)控,OAP服務(wù)端的各項(xiàng)指標(biāo)

  • 修改配置config/application.yml
# 將-修改為default
   prometheus-fetcher:
     selector: ${SW_PROMETHEUS_FETCHER:default}
     #default:
     #   active: ${SW_PROMETHEUS_FETCHER_ACTIVE:true}

   # 改none為prometheus
   telemetry:
     selector: ${SW_TELEMETRY:prometheus} 
     prometheus:
       host: ${SW_TELEMETRY_PROMETHEUS_HOST:0.0.0.0}
       port: ${SW_TELEMETRY_PROMETHEUS_PORT:1234}
  • 如果telemetry有調(diào)整,則對(duì)應(yīng)修改修改config/fetcher-prom-rules/self.yaml
fetcherInterval: PT15S
   fetcherTimeout: PT10S
   metricsPath: /metrics
   staticConfig:
      # 改為上步中telemetry配置的ip
      targets:
         - url: http://localhost:1234 
            sslCaFilePath:
      labels:
         service: oap-server
  • 檢查:curl http://localhost:1234/metrics

Event

Istio、K8s

VM

Web Browser

對(duì)前端也有一定的監(jiān)控,通過(guò)Skywalking-Client-js組件來(lái)操作,包括Web App、Pages兩個(gè)指標(biāo)。

拓?fù)鋱D

  • 服務(wù)選擇器 支持顯示直接關(guān)系,包括上游和下游;
  • 自定義組 提供服務(wù)組的任意子拓?fù)涔δ埽欠纸M的信息是保存在瀏覽器內(nèi)的;
  • 服務(wù)菜單 當(dāng)您單擊任何服務(wù)時(shí)打開(kāi)。該圖形可以對(duì)所選擇的服務(wù)進(jìn)行度量、跟蹤和告警查詢;
  • 服務(wù)指標(biāo)的關(guān)系 提供服務(wù)RPC交互的度量以及這兩個(gè)服務(wù)的實(shí)例。

追蹤

看每個(gè)接口的調(diào)用鏈,每個(gè)鏈路耗時(shí)、狀態(tài)。如果為失敗展示錯(cuò)誤信息,如果是數(shù)據(jù)庫(kù),會(huì)展示查詢語(yǔ)句。另外可以根據(jù)追蹤tid(trace id)和標(biāo)記(tag)進(jìn)行篩選。

性能剖析

日志

告警

事件

調(diào)試

日志集成

支持logback、log4j、log4j2日志框架集成,基于gRpc通信協(xié)議實(shí)現(xiàn)日志采集。

以logback為例:

  • 引入依賴
<dependency>
            <groupId>org.apache.skywalking</groupId>
            <artifactId>apm-toolkit-logback-1.x</artifactId>
            <version>8.9.0</version>
        </dependency>
  • 修改logback.xml配置
<!-- ... -->

      <appender name="grpc-log" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender">
         <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
            <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.mdc.TraceIdMDCPatternLogbackLayout">
                  <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{tid}] [%thread] %-5level %logger{36} -%msg%n</Pattern>
            </layout>
         </encoder>
      </appender>

      <root level="INFO">
         <!-- ... -->
         <appender-ref ref="grpc-log"/>
      </root>
  • 修改agent配置 ~/config/agent.config
plugin.toolkit.log.grpc.reporter.server_host=${SW_GRPC_LOG_SERVER_HOST:0.0.0.0}
   plugin.toolkit.log.grpc.reporter.server_port=${SW_GRPC_LOG_SERVER_PORT:11800}
   plugin.toolkit.log.grpc.reporter.max_message_size=${SW_GRPC_LOG_MAX_MESSAGE_SIZE:10485760} 
   plugin.toolkit.log.grpc.reporter.upstream_timeout=${SW_GRPC_LOG_GRPC_UPSTREAM_TIMEOUT:30}
  • 官方示例

https://skywalking.apache.org/docs/skywalking-java/v8.11.0/en/setup/service-agent/java-agent/application-toolkit-logback-1.x/

監(jiān)控方法

通過(guò)@Trace注解標(biāo)記需要追蹤的方法調(diào)用情況

  • 引入依賴
<dependency>
         <groupId>org.apache.skywalking</groupId>
         <artifactId>apm-toolkit-trace</artifactId>
         <version>8.9.0</version>
      </dependency>
  • 修改代碼
@Trace
   @GetMapping("/printLog")
   public String printLog() {
      Logger.info("traceId:{}",TraceContext.traceId())
      return "ok";
   }

告警接入

  • 規(guī)則修改配置config/alarm-settings.yml
  • 鉤子支持WebHook、GRPCHook、SlackHook、WechatHook、DingtalkHook、FeishuHook實(shí)現(xiàn)告警信息推送

場(chǎng)景

指標(biāo)性統(tǒng)計(jì)

一個(gè)服務(wù)的 TBS 的正確率、成功率、流量等,這是我們常見(jiàn)的針對(duì)單個(gè)指標(biāo)或者某一個(gè)數(shù)據(jù)庫(kù)的,這就是 Metrics 單指標(biāo)分析

Tracing 分布式追蹤

一次請(qǐng)求的范圍,也就是我們從瀏覽器或者手機(jī)端發(fā)起任何的一次調(diào)用,甚至我們可以再推廣一點(diǎn),是一次業(yè)務(wù)交易,比如說(shuō)一次訂購(gòu)的過(guò)程,從瀏覽商品到最后下定單、支付、物流、最后交到我們的手上。這是一個(gè)流程化的東西,我們需要軌跡,需要去追蹤。

Logging 日志記錄

我們程序在執(zhí)行的過(guò)程中間發(fā)生了一些日志,會(huì)一幀一幀地跳出來(lái)給大家去記錄這個(gè)東西,這是日志記錄。

關(guān)鍵詞

  • Topology:拓?fù)?/li>
  • Trace:追蹤
  • Metrics:度量
  • Span:
  • Apdex:是根據(jù)設(shè)定的閾值和響應(yīng)時(shí)間結(jié)合考慮的衡量標(biāo)準(zhǔn)。它是滿意響應(yīng)時(shí)間和不滿意響應(yīng)時(shí)間相對(duì)于總響應(yīng)時(shí)間的比率。它衡量的是用戶對(duì)你的服務(wù)的滿意程度,因?yàn)閭鹘y(tǒng)的指標(biāo)(如平均響應(yīng)時(shí)間)可能很快就會(huì)容易形成偏差。
  • percentile:標(biāo)簽含義(p50、p75、p90、p95、p99):例如p99為1000ms, 這意味著 99% 的請(qǐng)求應(yīng)該比1000ms更快

結(jié)束語(yǔ)

Apache SkyWalking是一款功能強(qiáng)大的APM系統(tǒng),可以幫助開(kāi)發(fā)人員和運(yùn)維人員更好地了解分布式系統(tǒng)的性能狀況。通過(guò)使用SkyWalking,可以提高應(yīng)用程序的穩(wěn)定性和性能,降低運(yùn)維成本。

責(zé)任編輯:武曉燕 來(lái)源: Java技術(shù)指北
相關(guān)推薦

2023-11-20 08:18:49

Netty服務(wù)器

2022-11-11 19:09:13

架構(gòu)

2023-10-27 08:15:45

2023-11-08 08:15:48

服務(wù)監(jiān)控Zipkin

2022-02-24 07:34:10

SSL協(xié)議加密

2020-02-02 15:14:24

HTTP黑科技前端

2025-09-12 16:31:04

TiDBMCP ServerAI工具

2022-04-28 09:22:46

Vue灰度發(fā)布代碼

2020-10-08 14:32:57

大數(shù)據(jù)工具技術(shù)

2025-01-15 09:06:57

servlet服務(wù)器Java

2022-09-29 13:09:38

DataClassPython代碼

2018-10-22 08:14:04

2022-02-18 10:13:07

SolrElasticSea開(kāi)源

2023-03-31 08:16:53

Flutter優(yōu)化內(nèi)存管理

2022-09-06 11:21:49

光網(wǎng)絡(luò)光纖

2019-07-04 15:16:52

數(shù)據(jù)挖掘大數(shù)據(jù)算法

2023-12-06 16:28:56

2024-05-27 00:00:00

.NET游戲引擎C#

2019-08-06 09:00:00

JavaScript函數(shù)式編程前端

2024-05-07 08:49:36

Hadoop數(shù)據(jù)存儲(chǔ)-分布式存儲(chǔ)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

亚洲色图久久久| 国内精品99| 国产毛片久久| 7777精品伊人久久久大香线蕉 | 亚洲午夜影视影院在线观看| 国产91色在线| 日本黄色网址大全| 俄罗斯一级**毛片在线播放| 久久一本综合| 色视频欧美一区二区三区| 国产精品12| 久久国产免费观看| 9999在线精品视频| ●精品国产综合乱码久久久久| 国产精品福利在线观看| 久久久视频6r| 国产日韩另类视频一区| 91亚洲国产成人精品一区二三| 一区二区三区回区在观看免费视频| 2022亚洲天堂| 天堂a√在线| 99pao成人国产永久免费视频| 精品少妇一区二区| 无码 制服 丝袜 国产 另类| 免费激情视频网站| 亚洲人成人一区二区三区| 精品国产乱码91久久久久久网站| 毛片在线视频观看| 亚洲第一黄色片| 好吊视频一区二区三区四区| 中文字幕一区电影| 小早川怜子一区二区三区| 美女国产在线| 国产成人免费网站| 国内精品久久久久影院优 | 久久久久久在线观看| 日韩最新在线| 欧美性一二三区| 亚洲欧美日韩国产yyy| 国产精品一区二区三区在线免费观看| 小处雏高清一区二区三区| 在线不卡a资源高清| 波多野结衣激情| 丁香花免费高清完整在线播放| 亚洲黄色一区| 欧美激情一二三| 国产又爽又黄无码无遮挡在线观看| 国产精品色婷婷在线观看| 亚洲一区二区三区视频在线| 在线日韩av永久免费观看| 国产美女三级无套内谢| 在线看片欧美| 中文字幕亚洲一区| 亚洲色成人网站www永久四虎| 另类图片第一页| 欧美视频日韩视频在线观看| 视频一区二区综合| 精品国产18久久久久久| 国产精品三上| 98精品国产高清在线xxxx天堂| 亚洲图片另类小说| 亚洲人成777| 91精品久久久久久蜜臀| 欧美又黄又嫩大片a级| 伊人亚洲精品| 日韩欧美123| 欧美在线观看视频网站| 2024短剧网剧在线观看| 久久日韩粉嫩一区二区三区| 91精品视频免费观看| 欧美三级一区二区三区| 欧美激情理论| 免费91在线视频| 波多野结衣片子| 国偷自产av一区二区三区| 欧美三级资源在线| 想看黄色一级片| 在线成人视屏| 亚洲v日本v欧美v久久精品| 亚洲人成77777| 完全免费av在线播放| 日韩中文字幕在线观看| 人妻av一区二区| 日本久久一区| 在线免费观看日韩欧美| 蜜臀av无码一区二区三区| 99久久精品国产一区二区成人| 国内av免费观看| 日韩视频在线你懂得| 亚洲人成网www| 美女视频一区| 国产精品三级视频| 国产欧美日韩综合精品二区| 亚洲图片欧美日韩| 亚洲高清在线| 欧美在线免费观看| 久久免费播放视频| 天天操夜夜操国产精品| 一区二区三欧美| 国产suv精品一区二区68| 九一国产精品| 日韩精品一区二区视频| 又黄又爽又色的视频| 久久国产精品免费精品3p| 伊人久久免费视频| 国产小视频在线看| 蜜桃av一区二区| 国产成人精品日本亚洲| 日韩大片免费在线观看| 亚洲视频碰碰| 国产美女搞久久| 中文字幕+乱码+中文乱码91| 久久精品亚洲| 国产成人精品网站| 亚洲成人黄色片| 国产精品色哟哟| 女性女同性aⅴ免费观女性恋| 日本免费在线一区| 国产视频丨精品|在线观看| www.99re7| 欧美视频久久| 午夜免费日韩视频| 日韩 欧美 综合| 免费在线亚洲欧美| 97av在线播放| a天堂在线观看视频| 国产欧美一区视频| 亚洲三区四区| 国模私拍一区二区国模曼安| 图片区日韩欧美亚洲| 欧美 日韩 国产 高清| 亚洲女同志freevdieo| 欧美日韩国内自拍| 午夜dv内射一区二区| 国产精品白丝一区二区三区| 欧美成人精品xxx| 一本色道久久综合无码人妻| 国产高清不卡二三区| 亚洲国产高清国产精品| 国产精品伦理| 88在线观看91蜜桃国自产| 亚洲a v网站| 久久精品一区| 欧美综合激情| av片在线观看| 欧美日韩电影一区| 欧美日韩一区二区区| 女同另类激情重口| 中文字幕日韩欧美在线视频| 日本韩国欧美中文字幕| 奇米亚洲午夜久久精品| 成人激情视频在线播放| 亚洲女人18毛片水真多| 亚洲欧美另类小说| jizzjizzxxxx| 嫩草国产精品入口| 97香蕉超级碰碰久久免费的优势| 天天摸夜夜添狠狠添婷婷| 日本一区二区免费在线观看视频| 免费无码av片在线观看| 国产成年精品| 欧美成人黑人xx视频免费观看| 国产黄色一区二区| 一区二区三区美女视频| 一道本视频在线观看| 日本一区二区乱| 国产亚洲激情在线| 国产第100页| 久久国产麻豆精品| 2020国产精品久久精品不卡| 麻豆av电影在线观看| 亚洲一区二区在线播放相泽| 国产清纯白嫩初高中在线观看性色| 狠狠做六月爱婷婷综合aⅴ| 久久69精品久久久久久久电影好| 在线观看污污网站| 国产女人水真多18毛片18精品视频 | 777久久久精品一区二区三区| 亚洲区小说区图片区qvod| 国产精品热视频| 色噜噜一区二区三区| 精品久久久久久国产| 国产中年熟女高潮大集合| 麻豆精品在线视频| 国产91沈先生在线播放| 日本成人一区二区| 欧美日韩爱爱视频| 日韩专区一区二区| 亚洲福利一区二区| 久久综合桃花网| 一本色道88久久加勒比精品| 视频一区不卡| 精品福利一区| 国产一区二区丝袜| 成年午夜在线| 一本色道久久综合狠狠躁的推荐| 久久久老熟女一区二区三区91| 亚洲色图欧美| 91中文字幕在线| 毛片免费不卡| 日韩大陆欧美高清视频区| 久久久精品视频在线| 久久久久久久免费视频了| 日韩精品综合在线| 成人系列视频| 国产欧美日韩91| 91白丝在线| 亚洲精品98久久久久久中文字幕| 麻豆成人在线视频| 久久精品亚洲乱码伦伦中文| 精产国品一区二区三区| 日韩中文字幕不卡| 日韩动漫在线观看| 日本少妇一区| 欧美极品在线播放| 一本一道波多野毛片中文在线| 欧美亚洲日本一区| 中文字幕第28页| 最新国产成人在线观看| 亚洲一区二区自偷自拍| av资源网一区| 麻豆传传媒久久久爱| 精品久久电影| 国产日韩欧美电影在线观看| 天堂√中文最新版在线| 欧美成人一二三| 欧美猛烈性xbxbxbxb| 亚洲欧美日韩图片| 亚洲无码久久久久| 欧美视频在线视频| jizz中文字幕| 99re8在线精品视频免费播放| 天天干天天色天天干| 日韩精品电影一区亚洲| 免费在线观看的av网站| 国产精品观看| 国产一级做a爰片久久毛片男| 图片小说视频色综合| 一区二区不卡视频| 色999日韩| 国产精品久久一区二区三区| 日韩在线伦理| 精品国产一区二区三区久久久 | 中文字幕一区二区免费| 欧美亚洲综合另类| www.久久网| 亚洲人成小说网站色在线| 95视频在线观看| 国产高清精品网站| 日本xxxx免费| 日韩中文欧美在线| 丁香啪啪综合成人亚洲| 久久久久在线| 91色国产在线| 麻豆视频观看网址久久| 99九九99九九九99九他书对| 极品少妇xxxx精品少妇偷拍| 欧美 日韩 国产在线观看| 精品电影一区| 岳毛多又紧做起爽| 久久午夜精品| h无码动漫在线观看| 欧美精品观看| 狠狠干 狠狠操| 一区二区三区四区电影| 日本道在线视频| 国产一区二区三区电影在线观看| 日本午夜精品一区二区三区| 色琪琪久久se色| 国产激情片在线观看| 黄色精品一区| 黄色片视频在线免费观看| 青青国产91久久久久久| 午夜激情影院在线观看| 国产二区国产一区在线观看| 又黄又爽的网站| 久久精品视频免费| 中文字幕视频观看| av亚洲精华国产精华精| 国产三级av在线播放| 国产精品看片你懂得| 久久精品一区二区三| 岛国av一区二区在线在线观看| 中文字幕777| 日韩精品一区二| 美女毛片在线看| 久久精品国产亚洲7777| 国产视频三级在线观看播放| 亚洲国产成人91精品| av官网在线观看| 日韩的一区二区| 日本a级在线| 性色av一区二区三区| 久久爱.com| 精品国产区在线| 加勒比色老久久爱综合网| 日韩欧美国产二区| 国语精品一区| 蜜臀av免费观看| 99视频在线精品| 538任你躁在线精品视频网站| 国产精品女人毛片| 国产在线观看99| 欧美三级视频在线| 手机看片一区二区| 久久久国产一区| 日韩成人影音| 久久精品日产第一区二区三区精品版| 国产精品xxxav免费视频| 亚洲mv在线看| 久久aⅴ乱码一区二区三区| 91欧美一区二区三区| 久久久久久久电影| 黄色一级片在线免费观看| 欧美视频一区二区| 你懂的免费在线观看视频网站| 欧美激情小视频| 亚洲国产天堂| 视频一区免费观看| 亚洲在线免费| 亚洲调教欧美在线| 久久丝袜美腿综合| 精品爆乳一区二区三区无码av| 欧美日本国产视频| 国产日本在线| 日本久久久久久久| 五月天亚洲一区| 男女猛烈激情xx00免费视频| 国产高清久久久久| avtt天堂在线| 欧美一区二区三区在线电影 | 色天使综合视频| 欧美大陆一区二区| 蜜乳av综合| 天堂…中文在线最新版在线| 国产精品一区不卡| 少妇光屁股影院| 欧美日韩精品国产| 欧美熟妇交换久久久久久分类| 欧美成人黑人xx视频免费观看| 综合久久伊人| 操bbb操bbb| 国产亚洲一区在线| 精品人妻伦一二三区久| 亚洲综合久久久久| 亚洲国产精品成人久久蜜臀| 欧美麻豆久久久久久中文| 日韩高清在线观看一区二区| 无码毛片aaa在线| 高清国产午夜精品久久久久久| 法国伦理少妇愉情| 粉嫩av一区二区三区免费野| 四虎在线免费观看| 国产z一区二区三区| 精品无人区麻豆乱码久久久| 欧美精品性生活| 中文字幕日韩av资源站| 国产情侣av在线| 欧美极品少妇与黑人| 丝袜连裤袜欧美激情日韩| 久久9精品区-无套内射无码| 久久精品日产第一区二区三区高清版| 中文字幕手机在线视频| 一区二区三区视频免费| 国产999精品在线观看| 黄色一级片黄色| 久久综合久久久久88| 男操女视频网站| 久久精品国亚洲| 风间由美性色一区二区三区四区| 国产av天堂无码一区二区三区| 久久众筹精品私拍模特| 黄色一区二区视频| 久久久国产精品一区| 都市激情亚洲| 玩弄japan白嫩少妇hd| 国产精品久久久久久久久晋中| 91精品国产高清一区二区三密臀| 日韩亚洲国产中文字幕欧美| 久久久久黄久久免费漫画| 成人综合网网址| 精品91在线| 性少妇xx生活| 在线观看www91| av网址在线播放| 成人av番号网| 亚洲无吗在线| 快灬快灬一下爽蜜桃在线观看| 激情成人中文字幕| 成人在线观看网站| 18成人在线| 久久综合狠狠| 免费在线观看日韩| 一个色综合导航| 国产三级精品三级在线观看国产| 国语对白做受xxxxx在线中国| 亚洲男人天堂av| 九九热视频在线观看| 欧美中文字幕在线观看| 久久精品一区二区不卡|