skywalking 原始碼的整體結構如下圖所示:
2、apm-commons 模組:skywalking 的公共元件和工具類。
其中包含兩個子模組,apm-datacarrier 模組提供了乙個生產者-消費者模式的快取元件(datacarrier),無論是在 agent 端還是 oap 端都依賴該元件。
apm-util 模組則提供了一些常用的工具類,例如,字串處理工具類(stringutil)、佔位符處理的工具類(propertyplaceholderhelper、placeholderconfigurersupport)等等。
3、apm-protocol 模組:該模組中只有乙個 apm-network 模組,我們需要關注的是其中定義的 .proto 檔案,定義 agent 與後端 oap 使用 grpc 互動時的協議。
4、apm-sniffer 模組:apm-sniffer 模組中有 4 個子模組:
apm-agent 模組:其中包含了剛才使用的 skywalkingagent 這個類,是整個 agent 的入口。
apm-agent-core 模組:skywalking agent 的核心實現都在該模組中。
apm-sdk-plugin 模組:skywalking agent 使用了微核心+外掛程式的架構,該模組下包含了 skywalking agent 的全部外掛程式,
6、oap-server 模組:skywalking oap 的全部實現都在 oap-server 模組,其中包含了多個子模組,
exporter 模組:負責匯出資料。
server-alarm-plugin 模組:負責實現 skywalking 的告警功能。
server-cluster-pulgin 模組:負責 oap 的集群資訊管理,其中提供了接入多種第三方元件的相關外掛程式,
server-configuration 模組:負責管理 oap 的配置資訊,也提供了接入多種配置管理元件的相關外掛程式,
server-core模組:skywalking oap 的核心實現都在該模組中。
server-library 模組:oap 以及 oap 各個外掛程式依賴的公共模組,其中提供了雙佇列 buffer、請求遠端的 client 等工具類,這些模組都是對立於 skywalking oap 體系之外的類庫,我們可以直接拿走使用。
server-query-plugin 模組:skywalking rocketbot 傳送的請求首先由該模組接收處理,目前該模組只支援 graphql 查詢。
server-receiver-plugin 模組:skywalking agent 傳送來的 metrics、trace 以及 register 等寫入請求都是首先由該模組接收處理的,不僅如此,該模組還提供了多種接收其他格式寫入請求的外掛程式,
server-starter 模組:oap 服務啟動的入口。
7、skywalking-ui 目錄:skywalking rocketbot 的前端。
vue渲染頁面的流程 vue原始碼實現的整體流程解析
一 前言 最近一直在使用vue做專案,閒暇之餘查閱了一些關於vue實現原理的資料,一方面對所了解到的知識做個總結,另外一方面希望能對看到此文章的同學有所幫助。本文如有不足之處,還請過往的大佬批評指正。二 vue實現原理概述 vue作為乙個前端漸進式的mvvm開發庫,將廣大的前端勞苦大眾從dom操作中...
vertx原始碼 vert x web的原始碼解析
本來應該要寫的是eventbus的原始碼分析的,但是vert.x中國使用者組 群號 515203212 的小夥伴們好像對vert.x web深入了解的需求更大一些。所以就先分析vert.x web的實現原理吧。分析完之後發現篇幅較長,請耐心看完。vert.x web主要的功能是路由,還有常用的htt...
原始碼學習 ArrayList的擴容原始碼分析
原始碼如下 下面是arraylist的擴容機制 arraylist的擴容機制提高了效能,如果每次只擴充乙個,那麼頻繁的插入會導致頻繁的拷貝,降低效能,而arraylist的擴容機制避免了這種情況。如有必要,增加此arraylist例項的容量,以確保它至少能容納元素的數量 param mincapac...