go skywalking agent 接入apm

Goland 清理缓存

GoLand 的缓存可能卡在旧状态,手动清理最彻底:

  • 删除项目根目录下的 .idea 文件夹(隐藏文件夹)

  • (可选)清理全局缓存:C:\Users\zhou\AppData\Local\JetBrains\GoLand\ 下的caches缓存目录

在go mod 模式下,ide泛红可以这样操作。

版本

bash 复制代码
C:\Users\zhou>go version
go version go1.26.0 windows/amd64

C:\Users\zhou>


## 编译版本
go build -toolexec="D:\lib\skywalking-go\bin\skywalking-go-agent-0.4.0-windows-amd64 -config ./apm.yaml" -a -o app.exe .

apm.yaml

bash 复制代码
agent:
  service_name: devops-apm-dev
reporter:
  grpc:
    backend_service: apm.qq.com:11800

# 添加这一行,设为 info 级别
logging:
  level: "info"

代码

bash 复制代码
package main

import (
	"fmt"
	"log"
	"net/http"

	_ "github.com/apache/skywalking-go"
	"github.com/apache/skywalking-go/toolkit/trace"
)

func main() {
	http.HandleFunc("/ping", func(w http.ResponseWriter, r *http.Request) {
		// 1. 创建入口 Span(注意官方示例的写法)
		trace.CreateEntrySpan("/ping", func(key string) (string, error) {
			return r.Header.Get(key), nil
		})
		defer trace.StopSpan()

		// 2. 设置 Span 信息
		trace.SetOperationName("ping-handler")
		trace.SetTag("http.method", r.Method)
		trace.SetTag("http.url", r.URL.Path)
		trace.SetTag("http.status_code", "200")

		// 3. 业务逻辑
		log.Println("收到 /ping 请求")
		fmt.Fprintf(w, "pong")
	})

	log.Println("Server starting on :8080")
	err := http.ListenAndServe(":8080", nil)
	if err != nil {
		log.Fatal(err)
	}
}

debug启动

bash 复制代码
set SW_AGENT_LOG_LEVEL=debug
set GODEBUG=http2debug=2
app.exe

循环请求

bash 复制代码
for /l %i in (1,0,2) do (curl http://127.0.0.1:8080/ping & timeout /t 2 >nul)
相关推荐
AscendKing13 天前
可观测性选型:ELK vs SkyWalking,到底哪个更重?是二选一,还是两者一起部署?
elk·skywalking·apm·可观测
苏渡苇14 天前
Spring Insight:跨服务调用链路是怎么串起来的?
spring boot·后端·spring·系统监控·apm
飞鸟真人24 天前
应用性能监测(APM)之 (五)Prometheus与OpenMetrics协议
prometheus·apm·open telemetry·openmetrics
苏渡苇1 个月前
Spring Insight 里如何把 Span 画成瀑布时间线
后端·spring·spring cloud·springboot·监控·apm
苏渡苇1 个月前
Spring Insight 里如何把 Span 收成一条链路
spring boot·spring·spring cloud·系统监控·apm
ManageEngine卓豪1 个月前
如何用 OpenTelemetry 实现企业分布式应用的全链路可视化?Applications Manager 集成方案与配置
可视化·apm·应用性能管理·分布式应用
编程序的员3 个月前
使用OpenTelemetry来监控GoLang应用
运维·golang·monitoring·apm·opentelemetry
yueqc13 个月前
Android 渲染(三):掉帧监控
android·渲染·apm·掉帧
Databuff4 个月前
国产开源APM databuff 成为 CNCF 顶级项目opentelemetry 官宣Vendor
运维·开源·skywalking·apm·可观测性·opentelemetry
热爱运维的小七4 个月前
深度解析|应用性能 + RUM + 拨测:现代 IT 运维的可观测性“铁三角”
运维·it运维·devops·apm·rum·网站拨测