最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SkyWalking使用和Docker環(huán)境下部署方式

 更新時(shí)間:2026年02月11日 09:30:29   作者:Hoking  
Skywalking是一款分布式系統(tǒng)的應(yīng)用程序性能監(jiān)視工具,專為微服務(wù)、云原生架構(gòu)和基于容器(Docker、K8S、Mesos)架構(gòu)而設(shè)計(jì),該框架采用字節(jié)碼注入的方式實(shí)現(xiàn)代碼的無(wú)侵入,數(shù)據(jù)存儲(chǔ)支持Mysql、Elasticsearch等

一、Skywalking概述

1、Skywalking介紹

Skywalking是分布式系統(tǒng)的應(yīng)用程序性能監(jiān)視工具,專為微服務(wù),云原生架構(gòu)和基于容器(Docker,K8S,Mesos)架構(gòu)而設(shè)計(jì),它是一款優(yōu)秀的APM(Application Performance Management)工具,包括了分布式追蹤,性能指標(biāo)分析和服務(wù)依賴分析等。

Skywalking是一個(gè)國(guó)產(chǎn)的開(kāi)源框架,2015年由吳晟個(gè)人開(kāi)源,2017年加入Apache孵化器,國(guó)人開(kāi)源的產(chǎn)品,主要開(kāi)發(fā)人員來(lái)自于華為,2019年4月17日Apache董事會(huì)批準(zhǔn)SkyWalking成為頂級(jí)項(xiàng)目,支持Java、.Net、NodeJs等探針,數(shù)據(jù)存儲(chǔ)支持Mysql、Elasticsearch等,跟Pinpoint一樣采用字節(jié)碼注入的方式實(shí)現(xiàn)代碼的無(wú)侵入,探針采集數(shù)據(jù)粒度粗,但性能表現(xiàn)優(yōu)秀,且對(duì)云原生支持,目前增長(zhǎng)勢(shì)頭強(qiáng)勁,社區(qū)活躍。

2、Skywalking架構(gòu)圖

整個(gè)架構(gòu),分成上、下、左、右四部分

  • 1)上部分 Agent :負(fù)責(zé)從應(yīng)用中,收集鏈路信息,發(fā)送給 SkyWalking OAP 服務(wù)器。目前支持 SkyWalking、Zikpin、Jaeger 等提供的 Tracing 數(shù)據(jù)信息。Agent 收集 SkyWalking Tracing 數(shù)據(jù),傳遞給服務(wù)器。
  • 2)下部分 SkyWalking OAP :負(fù)責(zé)接收 Agent 發(fā)送的 Tracing 數(shù)據(jù)信息,然后進(jìn)行分析(Analysis Core) ,存儲(chǔ)到外部存儲(chǔ)器( Storage ),最終提供查詢( Query )功能。
  • 3)右部分 Storage :Tracing 數(shù)據(jù)存儲(chǔ)。目前支持 ES、MySQL、Sharding Sphere、TiDB、H2 多種存儲(chǔ)器。而我們目前采用的是 ES ,主要考慮是 SkyWalking 開(kāi)發(fā)團(tuán)隊(duì)自己的生產(chǎn)環(huán)境采用 ES 為主。
  • 4)左部分 SkyWalking UI :負(fù)責(zé)提供控臺(tái),查看鏈路等等。

SkyWalking 三個(gè)核心部分

  • Agent(探針):Agent 運(yùn)?在各個(gè)服務(wù)實(shí)例中,負(fù)責(zé)采集服務(wù)實(shí)例的 Trace 、Metrics 等數(shù)據(jù),然后通過(guò) gRPC ?式上報(bào)給 SkyWalking 后端。
  • OAP:SkyWalking 的后端服務(wù),?個(gè)是負(fù)責(zé)接收 Agent 上報(bào)上來(lái)的 Trace、Metrics 等數(shù)據(jù),進(jìn)?流式分析,最終將分析得到的結(jié)果寫?持久化存儲(chǔ)中,另?個(gè)是負(fù)責(zé)響應(yīng) SkyWalking UI 界?發(fā)送來(lái)的查詢請(qǐng)求。
  • UI 界?:展示查詢結(jié)果。

SkyWalking Agent實(shí)現(xiàn)原理

  • SkyWalking Agent是通過(guò)Java Agent的方式隨著應(yīng)用程序一起啟動(dòng),然后通過(guò)Byte Buddy庫(kù)動(dòng)態(tài)插入埋點(diǎn)信息收集Trace信息。
  • Java Agent本質(zhì)上就是?個(gè)Jar包,它會(huì)調(diào)? Instrumentation API,來(lái)修改已經(jīng)加載到JVM中的字節(jié)碼。
  • Instrumentation API由JVM提供?來(lái)修改已加載類的?具,可以提供Java語(yǔ)?編寫的插樁功能,動(dòng)態(tài)修改運(yùn)?時(shí)代碼的能?。

Java Agent具有兩種加載?式

靜態(tài)加載

這種?式下,在應(yīng)?程序的任何代碼被執(zhí)?之前,就加載Agent以修改字節(jié)碼。靜態(tài)加載需要使?JVM 的-javaagent參數(shù):

java -javaagent:agent.jar -jar application.jar
# 可以同時(shí)加載多個(gè)Agents
java -javaagent:agentA.jar -javaagent:agentB.jar application.jar

動(dòng)態(tài)加載

這種?式下,Agent可以在運(yùn)?時(shí)動(dòng)態(tài)按需的加載。動(dòng)態(tài)加載需要調(diào)?Java Attach API。

// 根據(jù)PID查找?標(biāo)JVM,并連接到JVM 
VirtualMachine jvm = VirtualMachine.attach(jvmPid); 
// 加載Agent 
jvm.loadAgent(agentFile.getAbsolutePath()); 
// 取消到JVM的連接 
jvm.detach();

Instrumentation

Instrumentation是java提供的修改已經(jīng)加載到JVM中字節(jié)碼的API。使? Instrumentation,開(kāi)發(fā)者可以構(gòu)建?個(gè)獨(dú)?于應(yīng)?程序的代理程序(Agent),?來(lái)監(jiān)測(cè)和協(xié)助運(yùn)?在 JVM 上的程序,甚?能夠替換和修改某些類的定義。有了這樣的功能,開(kāi)發(fā)者就可以實(shí)現(xiàn)更為靈活的運(yùn)?時(shí)虛擬機(jī)監(jiān)控和Java 類操作了,這樣的特性實(shí)際上提供了?種虛擬機(jī)級(jí)別?持的 AOP 實(shí)現(xiàn)?式,使得開(kāi)發(fā)者?需對(duì) JDK 做任何升級(jí)和改動(dòng),就可以實(shí)現(xiàn)某些 AOP 的功能了。JVM級(jí)別AOP。

在JDK 1.6以前,instrument只能在JVM剛啟動(dòng)開(kāi)始加載類時(shí)生效,而在JDK 1.6之后,instrument支持了在運(yùn)行時(shí)對(duì)類定義的修改。在 Java SE 6 ??,instrumentation 包被賦予了更強(qiáng)?的功能:?jiǎn)?dòng)后的instrument、本地代碼 (native code)instrument,以及動(dòng)態(tài)改變 classpath 等等。這些改變,意味著 Java 具有更強(qiáng)的動(dòng)態(tài)控制、解釋能?,它使得 Java 語(yǔ)?變得更加靈活多變。

二、Docker環(huán)境下使用docker-compose部署Skywalking

1、相關(guān)組件及版本

序號(hào)

組件

版本

備注

1

skywalking-oap-server

8.9.1

2

elasticsearch

7.17.6

3

skywalking-ui

8.9.1

4

apache-skywalking-java-agent

8.15.0

2、創(chuàng)建目錄賦予權(quán)限

mkdir elasticsearch
cd elasticsearch
mkdir logs
mkdir data
chmod 775 logs
chmod 775 data

3、準(zhǔn)備docker-compose.yml文件

version: '3.3'
services:
  elasticsearch:
    image: elasticsearch:7.17.6
    container_name: elasticsearch
    restart: always
    ports:
      - 9200:9200
    environment:
      - "TAKE_FILE_OWNERSHIP=true" #volumes 掛載權(quán)限 如果不想要掛載es文件改配置可以刪除
      - "discovery.type=single-node" #單機(jī)模式啟動(dòng)
      - "TZ=Asia/Shanghai" # 設(shè)置時(shí)區(qū)
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m" # 設(shè)置jvm內(nèi)存大小
    volumes:
      - ./elasticsearch/logs:/usr/share/elasticsearch/logs
      - ./elasticsearch/data:/usr/share/elasticsearch/data
     #- ./elasticsearch/conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
    ulimits:
      memlock:
        soft: -1
        hard: -1
  skywalking-oap-server:
    image: apache/skywalking-oap-server:8.9.1
    container_name: skywalking-oap-server
    depends_on:
      - elasticsearch
    links:
      - elasticsearch
    restart: always
    ports:
      - 11800:11800
      - 12800:12800
    environment:
      SW_STORAGE: elasticsearch  # 指定ES版本
      SW_STORAGE_ES_CLUSTER_NODES: elasticsearch:9200
      TZ: Asia/Shanghai
    #volumes:
     #- ./oap/conf/alarm-settings.yml:/skywalking/config/alarm-settings.yml
  skywalking-ui:
    image: apache/skywalking-ui:8.9.1
    container_name: skywalking-ui
    depends_on:
      - skywalking-oap-server
    links:
      - skywalking-oap-server
    restart: always
    ports:
      - 8080:8080
    environment:
      SW_OAP_ADDRESS: http://skywalking-oap-server:12800
      TZ: Asia/Shanghai

3、執(zhí)行啟動(dòng)服務(wù)命令

docker-compose up -d

4、訪問(wèn)UI地址http:${IP}:8080

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Docker?Kill/Pause/Unpause命令使用與區(qū)別小結(jié)

    Docker?Kill/Pause/Unpause命令使用與區(qū)別小結(jié)

    本文詳細(xì)介紹了Docker中的三個(gè)重要命令,kill、pause和unpause,這些命令在管理和操作運(yùn)行中的容器時(shí)非常有用,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • docker用root進(jìn)入容器的操作

    docker用root進(jìn)入容器的操作

    這篇文章主要介紹了docker用root進(jìn)入容器的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • 基于iptables的Docker端口白名單控制實(shí)現(xiàn)

    基于iptables的Docker端口白名單控制實(shí)現(xiàn)

    本文主要介紹了通過(guò)iptables為Docker?Compose部署的容器設(shè)置宿主機(jī)端口IP白名單,強(qiáng)調(diào)規(guī)則順序與持久化配置,提供單端口和multiport兩種實(shí)現(xiàn)方式,感興趣的可以了解一下
    2025-07-07
  • Docker部署rabbitmq遇到的兩個(gè)問(wèn)題

    Docker部署rabbitmq遇到的兩個(gè)問(wèn)題

    當(dāng)使用docker部署rabbitmq時(shí)遇到兩個(gè)問(wèn)題,訪問(wèn)交換機(jī)時(shí)報(bào)錯(cuò),另一種是訪問(wèn)channel時(shí)報(bào)錯(cuò),本文給大家分享解決方案,感興趣的朋友跟隨小編一起看看吧
    2021-07-07
  • 詳解將本地docker容器遷移到服務(wù)端

    詳解將本地docker容器遷移到服務(wù)端

    這篇文章主要介紹了詳解將本地docker容器遷移到服務(wù)端,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • docker unpause詳解(Docker容器管理)

    docker unpause詳解(Docker容器管理)

    本文概述Docker容器暫停恢復(fù)機(jī)制,重點(diǎn)解析dockerunpause命令功能、與重啟的對(duì)比、應(yīng)用場(chǎng)景及底層實(shí)現(xiàn),強(qiáng)調(diào)其在資源高效利用與服務(wù)連續(xù)性中的關(guān)鍵作用,對(duì)docker unpause相關(guān)知識(shí)感興趣的朋友一起看看吧
    2025-06-06
  • 使用Docker部署Neko自托管虛擬瀏覽器(Firefox)的流程

    使用Docker部署Neko自托管虛擬瀏覽器(Firefox)的流程

    本文介紹了基于WebRTC的自托管虛擬瀏覽器環(huán)境Neko的部署方法,包括使用Docker和Docker Compose部署、基本配置、使用方法及注意事項(xiàng)等內(nèi)容,適合團(tuán)隊(duì)協(xié)作、遠(yuǎn)程演示等場(chǎng)景,需要的朋友可以參考下
    2026-04-04
  • IDEA集成Docker實(shí)現(xiàn)打包的方法

    IDEA集成Docker實(shí)現(xiàn)打包的方法

    本文主要介紹了IDEA集成Docker實(shí)現(xiàn)打包的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Docker安裝Nacos服務(wù)的實(shí)現(xiàn)

    Docker安裝Nacos服務(wù)的實(shí)現(xiàn)

    本文主要介紹了Docker安裝Nacos服務(wù)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Docker容器搭建android編譯環(huán)境的實(shí)踐記錄

    Docker容器搭建android編譯環(huán)境的實(shí)踐記錄

    這篇文章主要介紹了Docker容器搭建android編譯環(huán)境的實(shí)踐記錄,主要包括部署容器、鏡像管理、容器管理等相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07

最新評(píng)論

罗甸县| 明星| 阜平县| 靖安县| 水富县| 绥中县| 寿光市| 宝兴县| 柘荣县| 永仁县| 临夏市| 岳普湖县| 永定县| 洛阳市| 安化县| 徐水县| 庄浪县| 龙里县| 龙游县| 偃师市| 精河县| 个旧市| 华容县| 刚察县| 屏山县| 潢川县| 新沂市| 新竹县| 三亚市| 东阳市| 炉霍县| 读书| 改则县| 吴江市| 桃源县| 黄大仙区| 大英县| 永春县| 根河市| 三河市| 崇左市|