SkyWalking——SkyWalking二次開發必備知識


SkyWalking二次開發必備知識

SkyWalking 的 Java 探針端是如何實現無侵入式埋點的?

在探針開發或者排查線上問題的時候,應該如何進行遠程調試?

SkyWalking 最新支持的 Service Mesh 到底是什么?

一、JavaAgent 介紹

  1.1 概念簡介

  SkyWalking 探針在使用上是無代碼侵入的,而這種無侵入的自動埋點基於 Java 的 JavaAgent 技術。

  啟動時加載的 JavaAgent(以下所說的 JavaAgent 均代表啟動時加載的 JavaAgent)是 JDK 1.5 中引入的 java.lang.Instrument 包,該包提供了一些工具使得在類加載時期修改 Class 類成為了可能。這實際上就是提供了一種虛擬機級別的 AOP此特性為用戶提供了在 JVM 將字節碼文件讀入內存之后,使用對應的字節流在 Java 堆中生成一個 Class 對象之前,對其字節碼進行修改的能力,而JVM 也會使用用戶修改過的字節碼進行 Class 對象的創建

 

  SkyWalking 探針依賴於 JavaAgent 在一些特殊點(某個類的某些方法)攔截對應的字節碼數據並進行 AOP 修改。當某個調用鏈路運行至已經被 SkyWalking 代碼過的方法時,SkyWalking 會通過代理邏輯進行這些關鍵節點信息的收集、傳遞和上報,從而還原出整個分布式鏈路。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM