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)
相关推荐
汉得数字平台2 天前
【鲲苍提效】应用链路全景透视,让性能问题无处可藏
apm·性能监控·异构系统管理
低调的JVM7 天前
EasyTelemetry:让OpenTelemetry拥抱Arthas Trace的强大功能
apm·可观测·javaagent·opentelemetry
Minilinux201813 天前
Android音频系列(09)-AudioPolicyManager代码解析
android·音视频·apm·audiopolicy·音频策略
芒果de香蕉皮18 天前
开源飞控APM备降点源码分析
无人机·二次开发·apm·开源飞控·备降点
星光20253 个月前
APM学习(7):ArduPilot初始化过程
ardupilot·apm
xixixi777773 个月前
了解一下APM工具——就像给软件系统装的“全身CT”,能实时透视从用户点击到后端数据库的每个环节性能,精准定位哪里慢、为什么慢
数据库·安全·数据采集·apm·日志监控
ManageEngine卓豪4 个月前
Azure 监控工具怎么选?从原生局限到第三方解决方案的效率跃升
microsoft·azure·apm·azure监控
飞翔的佩奇7 个月前
OpenTelemetry学习笔记(十二):在APM系统中,属性的命名空间处理遵循规则
笔记·学习·springboot·sdk·apm·opentelemetry
鼠鼠我捏,要死了捏7 个月前
基于SkyWalking的微服务APM监控实战指南
skywalking·apm·microservices