欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

go-zero接入skywalking實現(xiàn)鏈路追蹤的詳細教程

 更新時間:2024年08月26日 08:51:46   作者:zzvine  
SkyWalking是一個開源的服務追蹤系統(tǒng),它專注于分布式系統(tǒng)的可觀測性和服務性能分析,它的主要目標是幫助開發(fā)者理解和優(yōu)化微服務架構中的服務間交互情況,本文介紹了go-zero接入skywalking鏈路追蹤的詳細教程,需要的朋友可以參考下

Skywalking本地測試搭建

這里用Docker搭建

#數(shù)據(jù)存儲用ES,搭建ES
docker run -d -p 9200:9200 -p 9300:9300 --name es -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms128m -Xmx256m" elasticsearch:7.16.3

# 搭建skywalking-oap服務,這里用的是8.9.1版本,oap服務需要關聯(lián)ES
docker run --name skywalking-oap \
--restart always \
-p 11800:11800 -p 12800:12800 -d \
-e TZ=Asia/Shanghai \
-e SW_ES_USER= \
-e SW_ES_PASSWORD= \
-e SW_STORAGE=elasticsearch \
-e SW_STORAGE_ES_CLUSTER_NODES=192.168.1.234:9200 \
-v /etc/localtime:/etc/localtime:ro \
apache/skywalking-oap-server:8.9.1

# 搭建skywalking-ui界面,需要關聯(lián)oap服務
docker run -d \
--name skywalking-ui \
--restart always \
-p 8090:8080 \
--link skywalking-oap:skywalking-oap \
-e TZ=Asia/Shanghai \
-e SW_OAP_ADDRESS=http://skywalking-oap:12800 \
-v /etc/localtime:/etc/localtime:ro \
apache/skywalking-ui:8.9.1

搭建完成,打開ip:8090查看skywalking界面

在這里插入圖片描述

項目引入

go get github.com/apache/skywalking-go

//在main包中引入
import (
	_ "github.com/apache/skywalking-go"
)

接下來,請從官方 SkyWalking 網(wǎng)站下載Go Agent 程序 。當你使用 go build 命令進行編譯時,請在 bin 目錄中找到與當前操作系統(tǒng)匹配的代理程序,并添加 -toolexec=“/path/to/go-agent” -a 參數(shù)。例如,請使用以下命令:

go build -toolexec=“/path/to/go-agent” -a -o test .

在skywalking-go/bin路徑下生成可執(zhí)行文件。
不同的操作系統(tǒng)對應的可執(zhí)行文件不同。例如,mac系統(tǒng)需選擇skywalking-go-agent–darwin-amd64。(親測相應文件在window系統(tǒng)執(zhí)行會報錯,在linux和mac系統(tǒng)正常)

在這里插入圖片描述

dockerfile打包引入

相應的Agent程序skywalking-go-agent放在項目./doc/tool/目錄下,并設置環(huán)境變量,具體看dockerfile

ENV SW_AGENT_NAME=go-${param}
ENV SW_AGENT_REPORTER_GRPC_BACKEND_SERVICE=skywalking-oap.skywalking.svc.cluster.local:11800
ENV SW_AGENT_REPORTER_GRPC_CDS_FETCH_INTERVAL=-1
FROM golang:1.22-alpine AS builder

LABEL stage=gobuilder

ENV GOPROXY https://goproxy.cn,direct
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories

RUN apk update --no-cache && apk add --no-cache tzdata

# 設置工作目錄
WORKDIR /build

# 加載依賴
ADD go.mod .
ADD go.sum .
RUN go mod download

# 復制源代碼
COPY . .

# 靜態(tài)編譯Go程序
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -toolexec="/build/doc/tool/skywalking-go-agent" -a -o app ./service/${struct_name}Service/${param}.go

# 第二階段:運行時鏡像,使用空鏡像scratch或者alpine
FROM alpine

COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt

# 設置工作目錄
WORKDIR /app

# 復制編譯好的二進制文件到運行時鏡像
COPY --from=builder /build/app .
COPY --from=builder /build/i18n /app/i18n
COPY --from=builder /build/key/google_play_service_account_key.json /etc/ssl/certs/google_play_service_account_key.json
COPY --from=builder /build/key/SubscriptionKey_23HSTRGFC3.p8 /etc/ssl/certs/SubscriptionKey_23HSTRGFC3.p8

# 設置 SkyWalking Agent 的配置
ENV SW_AGENT_NAME=go-${param}
ENV SW_AGENT_REPORTER_GRPC_BACKEND_SERVICE=skywalking-oap.skywalking.svc.cluster.local:11800
ENV SW_AGENT_REPORTER_GRPC_CDS_FETCH_INTERVAL=-1

# 運行程序
ENTRYPOINT ["./app"]
# 設置CMD指令來指定參數(shù),默認測試環(huán)境的etcd
CMD ["16.162.220.93:2379"]

最后效果圖

在這里插入圖片描述

以上就是go-zero接入skywalking鏈路追蹤的詳細教程的詳細內(nèi)容,更多關于go-zero skywalking鏈路追蹤的資料請關注腳本之家其它相關文章!

相關文章

  • 在Linux系統(tǒng)中安裝Go語言的詳細教程

    在Linux系統(tǒng)中安裝Go語言的詳細教程

    這篇文章主要介紹了在Linux系統(tǒng)中安裝Go語言的詳細教程,由于國內(nèi)很多人對谷歌的盲目追捧,導致Go語言在國內(nèi)的人氣遠超國外...需要的朋友可以參考下
    2015-06-06
  • Go通過goroutine實現(xiàn)多協(xié)程文件上傳的基本流程

    Go通過goroutine實現(xiàn)多協(xié)程文件上傳的基本流程

    多協(xié)程文件上傳是指利用多線程或多協(xié)程技術,同時上傳一個或多個文件,以提高上傳效率和速度,本文給大家介紹了Go通過goroutine實現(xiàn)多協(xié)程文件上傳的基本流程,需要的朋友可以參考下
    2024-05-05
  • Golang基于Vault實現(xiàn)敏感信息保護

    Golang基于Vault實現(xiàn)敏感信息保護

    Vault?是一個強大的敏感信息管理工具,自帶了多種認證引擎和密碼引擎,本文主要探討應用程序如何安全地從?Vault?獲取敏感信息,并進一步實現(xiàn)自動輪轉(zhuǎn),感興趣的可以了解一下
    2023-06-06
  • Golang泛型的使用方法詳解

    Golang泛型的使用方法詳解

    這篇文章主要介紹了Golang中泛型的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-06-06
  • golang定時器Timer的用法和實現(xiàn)原理解析

    golang定時器Timer的用法和實現(xiàn)原理解析

    這篇文章主要介紹了golang定時器Ticker,本文主要來看一下Timer的用法和實現(xiàn)原理,需要的朋友可以參考以下內(nèi)容
    2023-04-04
  • Go依賴注入工具wire的具體使用

    Go依賴注入工具wire的具體使用

    本文主要介紹了Go依賴注入工具wire的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-05-05
  • Golang運行報錯找不到包:package?xxx?is?not?in?GOROOT的解決過程

    Golang運行報錯找不到包:package?xxx?is?not?in?GOROOT的解決過程

    這篇文章主要給大家介紹了關于Golang運行報錯找不到包:package?xxx?is?not?in?GOROOT的解決過程,文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2022-07-07
  • Go如何實現(xiàn)json字符串與各類struct相互轉(zhuǎn)換

    Go如何實現(xiàn)json字符串與各類struct相互轉(zhuǎn)換

    這篇文章主要介紹了Go如何實現(xiàn)json字符串與各類struct相互轉(zhuǎn)換,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 最新評論