精品欧美一区二区三区在线观看 _久久久久国色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)

久草视频免费在线播放| 亚洲一二三区av| 高清一区二区三区四区| 国产欧美高清| 中文字幕国产亚洲2019| 久久99爱视频| 人人澡人人添人人爽一区二区| 国产精品66部| 国产91九色视频| 午夜爱爱毛片xxxx视频免费看| 999国产精品一区| 在线观看视频一区二区| 亚洲小说欧美另类激情| 午夜影院免费体验区| 久久成人免费电影| 欧美壮男野外gaytube| 91免费公开视频| 菁菁伊人国产精品| 欧美高清一级片在线| 久久久999视频| jizz性欧美| 国产亚洲女人久久久久毛片| 97中文在线| 亚洲天堂视频网| 国产亚洲毛片在线| 久久久久久91香蕉国产| 亚洲色图第四色| 一区二区三区韩国免费中文网站| 日韩一区二区电影网| 中文字幕第21页| 亚洲优女在线| 亚洲一二三四区不卡| 免费看av软件| 日本中文字幕电影在线免费观看| 91香蕉视频污在线| 国产精品一区二区av| 国产99久一区二区三区a片| 日韩精品亚洲专区| 日韩av大片在线| 六月丁香婷婷综合| 日韩午夜高潮| 午夜免费在线观看精品视频| 农村黄色一级片| 手机在线一区二区三区| 夜夜嗨av一区二区三区四区| 可以直接看的无码av| 第一区第二区在线| 欧美不卡123| 超级砰砰砰97免费观看最新一期| 日韩在线你懂得| 欧美日韩免费观看一区三区| 国产av人人夜夜澡人人爽| 黑人巨大亚洲一区二区久| 性做久久久久久免费观看欧美| 久久99国产精品一区| а√天堂官网中文在线| 一区二区在线看| 狠狠精品干练久久久无码中文字幕| 毛片av在线| 亚洲欧美偷拍卡通变态| 91看片淫黄大片91| 手机在线免费av| 亚洲成人一二三| 日韩免费视频播放| 三上悠亚一区二区| 在线精品视频免费播放| mm131亚洲精品| 久久中文字幕一区二区| 日韩欧美一区中文| 亚洲一区和二区| 欧美亚洲国产日韩| 亚洲性无码av在线| 任我爽在线视频| 欧美日韩综合| 91成人精品网站| 久久影视中文字幕| 经典一区二区三区| 国产精品久久久久久久久久久久午夜片| 亚洲a视频在线观看| 成人黄色大片在线观看| 欧美二区在线看| 性开放的欧美大片| 一区二区三区高清| 国产福利视频在线播放| 素人啪啪色综合| 欧美大片一区二区| 双性尿奴穿贞c带憋尿| 欧美日韩水蜜桃| 欧美成人激情视频| wwwxxx亚洲| 久久精品国产一区二区三区免费看| 91欧美日韩一区| 囯产精品久久久久久| 久久免费美女视频| 亚洲小视频在线播放| gay欧美网站| 91精品中文字幕一区二区三区| 精品少妇人妻av一区二区三区| 国语产色综合| 欧美精品video| 中文字幕一区二区三区免费看 | 国产又粗又猛又爽| 成人视屏免费看| 亚洲激情一区二区| 黄色视屏在线免费观看| 欧美狂野另类xxxxoooo| 国产精品伦子伦| 亚洲成人日韩| 国产精品99蜜臀久久不卡二区| 国产福利资源在线| 国产亚洲成aⅴ人片在线观看 | 老鸭窝91久久精品色噜噜导演| 国产精品免费观看在线| 视频一区二区免费| 亚洲日本乱码在线观看| 日本成人在线免费视频| 亚洲一区二区三区在线免费| 色先锋资源久久综合5566| 亚洲国产成人精品激情在线| 国产在线国偷精品产拍免费yy| 欧美激情导航| 九九色在线视频| 678五月天丁香亚洲综合网| 国产女主播喷水高潮网红在线| 午夜国产精品视频免费体验区| 国产精品久久久久久久久久新婚| 99久久精品无免国产免费| 国产日韩欧美电影| 黄色片视频在线免费观看| 91免费精品国偷自产在线在线| 日韩一区二区欧美| 欧美成人一区二区三区四区| av欧美精品.com| 久无码久无码av无码| 欧一区二区三区| 久久久91精品| 一级特黄aaa大片在线观看| 欧美韩国一区二区| 免费在线激情视频| 少妇精品导航| 欧美一级电影免费在线观看| 色欲av永久无码精品无码蜜桃| **欧美大码日韩| 91精品999| 国产精品久久久久久久免费观看 | 久久久久久毛片免费看| 欧美日韩第一视频| 精品国产伦一区二区三区| 亚洲乱码国产乱码精品精98午夜| www.久久久久久久久久久| 日韩欧美综合| 成人黄在线观看| 91精选在线| 精品久久久久一区| 日韩和一区二区| 久久综合资源网| 日韩欧美黄色大片| 青青草综合网| 91亚洲午夜在线| 日韩激情av| 亚洲精品成人久久电影| 久热这里只有精品6| 久久综合九色综合97_久久久| 无码无遮挡又大又爽又黄的视频| 精品一区av| 国产精品夜间视频香蕉| 国产原创在线观看| 欧美不卡一区二区三区四区| 成人午夜视频精品一区| wwwwxxxxx欧美| 黄色一级二级三级| 99久久99久久精品国产片桃花| 亚洲一区二区自拍| 18video性欧美19sex高清| 亚洲老头同性xxxxx| 中文字幕人妻精品一区| 亚洲日本青草视频在线怡红院| 亚洲欧美日韩色| 青青国产91久久久久久 | 男人天堂久久久| 精品日韩成人av| 岛国av中文字幕| 亚洲欧美成人一区二区三区| 妖精视频一区二区| 日本欧美一区二区| 成人污网站在线观看| 天海翼精品一区二区三区| 国产精品永久免费视频| 欧美草逼视频| 国产一区二区三区丝袜 | 亚洲欧洲免费视频| 国产巨乳在线观看| 欧美日韩久久久久| a一级免费视频| 99久久久久久| 国产欧美激情视频| 乱人伦精品视频在线观看| 先锋影音男人资源| 精品久久久亚洲| 成人欧美一区二区| 国产精品第一国产精品| 98视频在线噜噜噜国产| 老司机午夜在线视频| 亚洲精品久久久久久久久久久久| 在线播放成人av| 狠狠久久五月精品中文字幕| 午夜69成人做爰视频| 国产视频911| 中文字幕在线播放一区| 国产一级精品在线| 久久精品影视大全| 国产日韩1区| 成人免费a级片| 五月综合激情| 亚洲7777| 欧美美女在线观看| 国产视频在线观看一区| 免费观看亚洲视频大全| 国产美女久久精品| 欧美91看片特黄aaaa| 久久久久免费视频| 中文字幕伦理免费在线视频| 中文综合在线观看| 韩国福利在线| 亚洲欧美日韩精品久久亚洲区| 亚洲高清视频在线播放| 欧美一区二区三区免费大片 | 日韩女优av电影在线观看| 久久国产香蕉视频| 日韩欧美亚洲成人| 国产成人在线免费观看视频| 亚洲线精品一区二区三区| 国产女人18水真多毛片18精品| 国产精品女人毛片| 中文字幕黄色网址| 欧美激情综合在线| 2019男人天堂| 欧美激情一区在线| 国产精品国产三级国产专业不 | 国产拍在线视频| 久久久久久久国产精品视频| 色婷婷av在线| 欧美国产日韩在线| bl在线肉h视频大尺度| 欧美极品美女视频网站在线观看免费| 怡红院在线播放| 欧美国产日韩一区二区在线观看| 欧美高清另类hdvideosexjaⅴ| 欧美巨乳美女视频| 国产美女情趣调教h一区二区| 欧美多人爱爱视频网站| 欧美xxx黑人xxx水蜜桃| 69影院欧美专区视频| 日本乱码一区二区三区不卡| 55夜色66夜色国产精品视频| 超碰aⅴ人人做人人爽欧美| 日韩免费av在线| 国产精品亚洲d| 国产综合香蕉五月婷在线| 精品国产一级| 超碰在线观看97| 精品嫩草影院| 日本一区二区三区www| 欧美aaaaaaaaaaaa| 无码毛片aaa在线| 一区二区三区福利| 亚洲一二三区av| 国产精品自在在线| 北京富婆泄欲对白| 国产日韩亚洲欧美综合| 色婷婷粉嫩av| 亚洲h在线观看| 超碰在线免费97| 日韩三级.com| 免费在线黄色影片| 久久黄色av网站| av中文字幕在线看| 国产成人在线一区| 蜜桃精品视频| 欧洲一区二区日韩在线视频观看免费| 不卡在线一区二区| 日韩精品久久一区二区| 久久久久久久波多野高潮日日| 午夜久久久精品| 国产成人av电影在线| 波多野结衣办公室33分钟| 国产精品久久久久久久久免费丝袜| 久久久精品视频免费观看| 欧美日韩国产综合视频在线观看中文| 亚洲毛片一区二区三区| 91精品国产手机| 美国成人毛片| 欧美成人免费播放| 成人啊v在线| 国产福利久久| 91青青国产在线观看精品| 国产人妻777人伦精品hd| 日本强好片久久久久久aaa| 日本国产在线视频| 亚洲图片你懂的| 青青视频在线免费观看| 日韩精品一区二区三区在线播放 | 日本精品性网站在线观看| 电影中文字幕一区二区| 欧美日韩另类丝袜其他| 午夜精彩国产免费不卡不顿大片| 午夜dv内射一区二区| zzijzzij亚洲日本少妇熟睡| 可以免费看av的网址| 日韩欧美中文字幕在线播放| 国产高清视频免费观看| 永久555www成人免费| www在线观看黄色| 亚洲综合精品一区二区| 日韩一区二区三区免费播放| 妺妺窝人体色www在线小说| 高清在线观看日韩| 黑人操日本美女| 欧美影视一区在线| 青梅竹马是消防员在线| 性色av一区二区三区在线观看| 激情综合婷婷| 国产91av视频在线观看| 男女激情视频一区| 最近中文字幕在线mv视频在线 | 久久亚洲成人精品| 成人精品国产| 欧美中文娱乐网| 久久久精品五月天| 在线 丝袜 欧美 日韩 制服| 亚洲国产成人高清精品| 亚洲xxxx天美| 欧美精品免费播放| 精品中文字幕一区二区三区四区| 亚洲一区精彩视频| 久久99精品一区二区三区三区| 五月天精品视频| 91福利精品视频| yw在线观看| 国产精自产拍久久久久久| 欧美色图国产精品| 久久综合伊人77777麻豆最新章节| 久久中文字幕电影| 久久精品久久久久久久| 亚洲三级av在线| 成人涩涩视频| 亚洲一区二区三区免费看| 麻豆91在线播放免费| 免费观看特级毛片| 5858s免费视频成人| av在线导航| 国产传媒欧美日韩| 国产欧美一级| 丁香花五月婷婷| 欧美日韩亚洲另类| 97超碰在线公开在线看免费| 99re国产视频| 亚洲经典自拍| 新91视频在线观看| 欧美日韩在线播放一区| 含羞草www国产在线视频| 亚洲自拍在线观看| 亚洲国产片色| 亚洲a v网站| 欧美精品久久久久久久久老牛影院| 欧美激情免费| 国产精品区免费视频| 乱码第一页成人| 爱爱视频免费在线观看| 精品国产露脸精彩对白| 都市激情亚洲综合| 亚洲欧洲国产精品久久| 国产伦精品一区二区三区在线观看| 国产在线免费视频| 亚洲精品日韩丝袜精品| 日韩电影精品| av网站手机在线观看| 久久综合九色综合久久久精品综合 | 欧美zzoo| 成人网在线视频| 伊人成人在线| 黄色免费一级视频| 精品播放一区二区| 国产成人免费9x9x人网站视频| 国产精品jizz在线观看老狼| 成人av在线一区二区| 艳妇乳肉豪妇荡乳av无码福利| 欧美成人网在线| 亚洲瘦老头同性70tv| 三年中文在线观看免费大全中国| 性做久久久久久免费观看| 95在线视频| 国产精品亚洲综合| 麻豆精品在线看| 国产成人精品a视频一区| 中文字幕亚洲一区| 日韩动漫一区| 麻豆网站免费观看| 91国产视频在线观看| 国产盗摄一区二区|