package mainimport ("net/http")func main() {http.HandleFunc("/hello", func(writer http.ResponseWriter, request *http.Request) {writer.Write([]byte("Hello World from skywalking-go-agent"))})err := http.ListenAndServe(":8080", nil)if err != nil {panic(err)}}
bin 目录下的二进制文件,根据当前操作系统选择对应的二进制文件,即为 Agent 文件。例如在 Linux 系统,Agent 文件为 skywalking-go-agent-0.4.0-linux-amd64。/path/to/agent -inject /path/to/your/project [-all]
/path/to/agent 为步骤1中得到的 Agent 文件,/path/to/your/project 为 Go 项目主目录。go get github.com/apache/skywalking-go
import _ "github.com/apache/skywalking-go"
agent:service_name: "<serviceName>" # <serviceName>替换为应用名reporter:grpc:backend_service: "<endpoint>" # <endpoint>替换为上报地址authentication: "<token>" # <token>替换为业务系统Token
<serviceName> :应用名,多个使用相同 serviceName 接入的应用进程,在 APM 中会表现为相同应用下的多个实例。应用名最长63个字符,只能包含小写字母、数字及分隔符“ - ”,且必须以小写字母开头,数字或小写字母结尾。<token> :前置步骤中拿到业务系统 Token。<endpoint> :前置步骤中拿到的接入点。-toolexec="/path/to/agent" -config /path/to/config.yaml -a
/path/to/agent 为步骤1中得到的 Agent 文件,/path/to/config.yaml 为步骤3得到的配置文件。go build -toolexec='/path/to/agent -config /path/to/config.yaml' -a -o test .
https://localhost:8080/hello,应用就会向 APM 上报处理 HTTP 请求相关的链路数据。在有正常流量的情况下,应用性能监控 > 应用列表 中将展示接入的应用。单击应用名称/ID 进入应用详情页,再选择实例分析,即可看到接入的应用实例。由于可观测数据的处理存在一定延时,如果接入后在控制台没有查询到应用或实例,请等待30秒左右。package mainimport ("github.com/apache/skywalking-go/toolkit/trace")
trace.GetTraceID()trace.GetSpanID()
trace.CreateLocalSpan("testAddLog")trace.StopSpan()
trace.AddLog(...string) // 添加 Logtrace.SetTag("key","value") // 添加 Tag
trace.AddEvent(trace.DebugEventType, "foo")
文档反馈