tencent cloud

腾讯云可观测平台

动态与公告
产品动态
产品简介
产品概述
产品优势
基本功能
基本概念
应用场景
使用限制
购买指南
云产品监控
应用性能监控
终端性能监控
前端性能监控
云拨测
Prometheus 监控服务
Grafana 服务
事件总线
云压测
快速入门
监控概览
实例分组
云产品监控
应用性能监控
云拨测
云压测
Prometheus 监控服务
Grafana 服务
创建 Dashboard
事件总线
告警服务
云产品监控
云产品监控指标
控制台操作指南
云服务器监控组件
云产品监控对接 Grafana
故障处理
实践教程
应用性能监控
应用性能监控简介
接入指南
控制台操作指南
实践教程
参考信息
常见问题
终端性能监控
终端性能监控概述
控制台操作指南
接入指南
实践教程
前端性能监控
前端性能监控简介
控制台操作指南
接入指南
常见问题
云拨测
产品简介
控制台操作指南
常见问题
云压测
云压测概述
控制台操作指南
实践教程
JavaScript API 列表
常见问题
Prometheus 监控
Prometheus 监控简介
接入指南
控制台操作指南
实践教程
Terraform
常见问题
Grafana 服务
产品简介
控制台操作指南
Grafana 平台常用功能指引
常见问题
Dashboard
什么是 Dashboard
控制台操作指南
告警管理
控制台操作指南
故障处理
常见问题
事件总线
事件总线简介
控制台操作指南
实践教程
常见问题
报表管理
常见问题
腾讯云可观测平台常见问题
告警服务相关
一般性问题
监控图表相关
云服务器监控组件相关
动态阈值告警相关
云监控对接 Grafana 相关
文档阅读指南
相关协议
应用性能监控服务等级协议
APM 隐私协议
APM 数据处理和安全协议
前端性能监控服务等级协议
终端性能监控服务等级协议
云拨测服务等级协议
Prometheus 监控服务服务等级协议
Grafana 服务服务等级协议
云压测服务等级协议
云压测使用限制
Cloud Monitor Service Level Agreement
词汇表

通过 SkyWalking-Go 接入 Go 应用

PDF
聚焦模式
字号
最后更新时间: 2025-10-13 19:10:48
SkyWalking Go 是 SkyWalking 社区为 Go 应用提供的性能监控方案,可以在不需要修改业务代码的情况下,将 Go 应用接入应用性能监控 APM。关于 SkyWalking Go 的更多信息,请参考 项目文档。SkyWalking Go 对 Go 系常用依赖库和框架,包括 Gin、GORM、gRPC 等,提供了自动埋点,其他支持自动埋点的依赖库和框架请参考 SkyWalking 社区提供的 完整列表

示例 Demo 应用

通过如下 Demo 代码,可以启动一个最简单的 HTTP 服务:
package main

import (
"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)
}
}

前置步骤:获取接入点和 Token

1. 登录 腾讯云可观测平台 控制台。
2. 在左侧菜单栏中选择应用性能监控,单击应用列表 > 接入应用
3. 在右侧弹出的数据接入抽屉框中,单击 Go 语言。
4. 接入 Go 应用页面,选择您所要接入的地域以及业务系统
5. 选择接入协议类型SkyWalking
6. 上报方式选择您所想要的上报方式,获取您的接入点Token
说明:
内网上报:使用此上报方式,您的服务需运行在腾讯云 VPC。通过 VPC 直接联通,在避免外网通信的安全风险同时,可以节省上报流量开销。
外网上报:当您的服务部署在本地或非腾讯云 VPC 内,可以通过此方式上报数据。请注意外网通信存在安全风险,同时也会造成一定上报流量费用。

接入 Go 应用

步骤1:下载 Agent

前往 SkyWalking 下载页,在 Go Agent 栏目,点击 Distribution,下载 tar 格式的 Agent 包,文件名后缀为 tgz
解包后,得到 bin 目录下的二进制文件,根据当前操作系统选择对应的二进制文件,即为 Agent 文件。例如在 Linux 系统,Agent 文件为 skywalking-go-agent-0.4.0-linux-amd64

步骤2:安装 Agent

SkyWalking Go 提供了2种方式安装 Agent,可以选择任一种方式安装:

Agent 注入方式

如果您不需要在代码中自定义埋点,可以选择 Agent 注入方式。执行命令如下:
/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
在 main 中引入依赖:
import _ "github.com/apache/skywalking-go"

步骤3:修改接入 APM 的配置

从社区的 默认配置文件 获取配置文件模板,保存为文本文件,可以命名为 config.yaml
修改配置文件,至少需要配置如下3项:
agent:
service_name: "<serviceName>" # <serviceName>替换为应用名
reporter:
grpc:
backend_service: "<endpoint>" # <endpoint>替换为上报地址
authentication: "<token>" # <token>替换为业务系统Token
对应的字段说明如下:
<serviceName> :应用名,多个使用相同 serviceName 接入的应用进程,在 APM 中会表现为相同应用下的多个实例。应用名最长63个字符,只能包含小写字母、数字及分隔符“ - ”,且必须以小写字母开头,数字或小写字母结尾。
<token> :前置步骤中拿到业务系统 Token。
<endpoint> :前置步骤中拿到的接入点。

步骤4:基于 SkyWalking-Go 编译项目

在编译 Go 项目的时候,添加如下参数:
-toolexec="/path/to/agent" -config /path/to/config.yaml -a
其中,/path/to/agent 为步骤1中得到的 Agent 文件,/path/to/config.yaml 为步骤3得到的配置文件。
假设编译的产出物为 test,完整命令为:
go build -toolexec='/path/to/agent -config /path/to/config.yaml' -a -o test .

接入验证

启动 Go 应用后,通过8080端口访问对应的接口,例如 https://localhost:8080/hello,应用就会向 APM 上报处理 HTTP 请求相关的链路数据。在有正常流量的情况下,应用性能监控 > 应用列表 中将展示接入的应用。单击应用名称/ID 进入应用详情页,再选择实例分析,即可看到接入的应用实例。由于可观测数据的处理存在一定延时,如果接入后在控制台没有查询到应用或实例,请等待30秒左右。

自定义链路埋点

在自动埋点的基础上,通过 SkyWalking Toolkit 可以添加自定义埋点。
引入相关包:
package main

import (
"github.com/apache/skywalking-go/toolkit/trace"
)
获取 TraceId 和 SpanId:
trace.GetTraceID()

trace.GetSpanID()
创建和销毁 Span:
trace.CreateLocalSpan("testAddLog")

trace.StopSpan()
给 Span 添加属性:
trace.AddLog(...string) // 添加 Log

trace.SetTag("key","value") // 添加 Tag
创建 Event:
trace.AddEvent(trace.DebugEventType, "foo")
更多 Tracing API 的用法,请参考 SkyWalking 官方代码

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈