Skip to content

update some demos #2

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
8 changes: 8 additions & 0 deletions skywalking-go-demo/.idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions skywalking-go-demo/.idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 9 additions & 0 deletions skywalking-go-demo/.idea/skywalking-go-demo.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions skywalking-go-demo/.idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

57 changes: 2 additions & 55 deletions skywalking-go-demo/README.md
Original file line number Diff line number Diff line change
@@ -1,57 +1,4 @@
# SkyWalking上报Go应用数据Demo
## 简介
1. 一个包含http请求和操作MySql的Python Demo。
2. 使用SkyWalking-Python Agent埋点监控,并将数据上报至可观测链路OpenTelemetry。
3. service基于Gin框架实现,解析Http请求并对MySql数据库执行增删查改操作。
4. proxy接收Http请求并对其进行路由转发,其中实现了部分手动埋点。
5. client基于Go2Sky(Go2Sky实现了Http的自动埋点)实现Http客户端实例,周期向service发送Http请求。
## 获取接入点信息
1. 登录[链路追踪控制台](https://tracing.console.aliyun.com/),在页面顶部选择需要接入的区域。
2. 在左侧导航栏单击集群配置,然后单击接入点信息页签。
3. 在接入点信息页签的集群信息区域打开显示Token开关。
4. 在客户端采集工具区域单击SkyWalking,获取接入点信息。
## 用SkyWalking为Go应用自动埋点
1. 下载package
```
# 下载skywalking go sdk:go2sky
go get -u github.com/SkyAPM/go2sky

# 下载go2sky的gin中间件
go get github.com/SkyAPM/go2sky-plugins/gin/v3

# 下载go2sky的sql中间件
go get github.com/SkyAPM/go2sky-plugins/sql
```
2. 启动demo产生上报数据
```
# 说明:service的监听地址是proxy的目标转发地址。上报数据相关的三个参数是oap-server、oap-auth、service-name。
# oap-server、oap-auth、service属于go2sky相关环境变量,也可以直接设置环境变量,go2sky会自动获取。

# step1: 启动service/UserService.go
cd skywalking-go-demo/service
go build
./service --dsn <your-sql-dsn> --listen-addr <your-bind-address> --oap-server <your-collector-backend-address> --oap-auth <your-oap-auth> --service-name <your-service-name> --sql-peer-addr <your-mysql-peer-addr>

# step2: 启动proxy/UserProxy.go
cd skywalking-go-demo/proxy
go build
./proxy --dsn <your-sql-dsn> --listen-addr <your-bind-address> --oap-server <your-collector-backend-address> --oap-auth <your-oap-auth> --service-name <your-service-name> --target-addr <your-target-forwarding-addr>

# 补充: 在client/HttpClient.go中实现了Http客户端(Go2Sky增强版)测试,Go2Sky支持对Http Client的自动埋点。启动方式:
cd skywalking-go-demo/client
go build
./client --oap-server <your-collector-backend-address> --oap-auth <your-oap-auth> --service-name <your-service-name> --target-addr <your-target-forwarding-addr>
```
3. 使用Http请求,触发监控数据生成及上报。
```
# 方法1: 命令行使用curl
curl -X GET http://<your-proxy-listen-addr>/execute

# 方法2: 打开浏览器,在地址栏输入url
http://<your-proxy-listen-addr>/execute

# 方法3: goland 新建http文件,在里面写http请求

# 补充:如果使用client/HttpClient,无需自行生成Http请求。
```
4. 登录[链路追踪控制台](https://tracing.console.aliyun.com/),查看应用监控状态。
1. go2sky-demo: 基于Go2sky Agent的go demo
2. skywalking-go-demo: 基于skywalking-go Agent的go demo
57 changes: 57 additions & 0 deletions skywalking-go-demo/go2sky-demo/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# SkyWalking上报Go应用数据Demo
## 简介
1. 一个包含http请求和操作MySql的Python Demo。
2. 使用SkyWalking-Python Agent埋点监控,并将数据上报至可观测链路OpenTelemetry。
3. service基于Gin框架实现,解析Http请求并对MySql数据库执行增删查改操作。
4. proxy接收Http请求并对其进行路由转发,其中实现了部分手动埋点。
5. client基于Go2Sky(Go2Sky实现了Http的自动埋点)实现Http客户端实例,周期向service发送Http请求。
## 获取接入点信息
1. 登录[链路追踪控制台](https://tracing.console.aliyun.com/),在页面顶部选择需要接入的区域。
2. 在左侧导航栏单击集群配置,然后单击接入点信息页签。
3. 在接入点信息页签的集群信息区域打开显示Token开关。
4. 在客户端采集工具区域单击SkyWalking,获取接入点信息。
## 用SkyWalking为Go应用自动埋点
1. 下载package
```
# 下载skywalking go sdk:go2sky
go get -u github.com/SkyAPM/go2sky

# 下载go2sky的gin中间件
go get github.com/SkyAPM/go2sky-plugins/gin/v3

# 下载go2sky的sql中间件
go get github.com/SkyAPM/go2sky-plugins/sql
```
2. 启动demo产生上报数据
```
# 说明:service的监听地址是proxy的目标转发地址。上报数据相关的三个参数是oap-server、oap-auth、service-name。
# oap-server、oap-auth、service属于go2sky相关环境变量,也可以直接设置环境变量,go2sky会自动获取。

# step1: 启动service/UserService.go
cd skywalking-go-demo/service
go build
./service --dsn <your-sql-dsn> --listen-addr <your-bind-address> --oap-server <your-collector-backend-address> --oap-auth <your-oap-auth> --service-name <your-service-name> --sql-peer-addr <your-mysql-peer-addr>

# step2: 启动proxy/UserProxy.go
cd skywalking-go-demo/proxy
go build
./proxy --dsn <your-sql-dsn> --listen-addr <your-bind-address> --oap-server <your-collector-backend-address> --oap-auth <your-oap-auth> --service-name <your-service-name> --target-addr <your-target-forwarding-addr>

# 补充: 在client/HttpClient.go中实现了Http客户端(Go2Sky增强版)测试,Go2Sky支持对Http Client的自动埋点。启动方式:
cd skywalking-go-demo/client
go build
./client --oap-server <your-collector-backend-address> --oap-auth <your-oap-auth> --service-name <your-service-name> --target-addr <your-target-forwarding-addr>
```
3. 使用Http请求,触发监控数据生成及上报。
```
# 方法1: 命令行使用curl
curl -X GET http://<your-proxy-listen-addr>/execute

# 方法2: 打开浏览器,在地址栏输入url
http://<your-proxy-listen-addr>/execute

# 方法3: goland 新建http文件,在里面写http请求

# 补充:如果使用client/HttpClient,无需自行生成Http请求。
```
4. 登录[链路追踪控制台](https://tracing.console.aliyun.com/),查看应用监控状态。
45 changes: 45 additions & 0 deletions skywalking-go-demo/go2sky-demo/go.mod
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
module go2sky-demo

go 1.20

require (
github.com/SkyAPM/go2sky v1.5.0
github.com/SkyAPM/go2sky-plugins/gin/v3 v3.0.0-20230614023504-1db7dc6350fd
github.com/SkyAPM/go2sky-plugins/sql v0.0.0-20230614023504-1db7dc6350fd
github.com/gin-gonic/gin v1.9.1
github.com/go-sql-driver/mysql v1.7.1
github.com/jmoiron/sqlx v1.3.5
skywalking.apache.org/repo/goapi v0.0.0-20220401015832-2c9eee9481eb
)

require (
github.com/bytedance/sonic v1.9.1 // indirect
github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 // indirect
github.com/gabriel-vasile/mimetype v1.4.2 // indirect
github.com/gin-contrib/sse v0.1.0 // indirect
github.com/go-playground/locales v0.14.1 // indirect
github.com/go-playground/universal-translator v0.18.1 // indirect
github.com/go-playground/validator/v10 v10.14.0 // indirect
github.com/goccy/go-json v0.10.2 // indirect
github.com/golang/protobuf v1.5.2 // indirect
github.com/google/uuid v1.1.2 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/klauspost/cpuid/v2 v2.2.4 // indirect
github.com/leodido/go-urn v1.2.4 // indirect
github.com/mattn/go-isatty v0.0.19 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/pelletier/go-toml/v2 v2.0.8 // indirect
github.com/pkg/errors v0.8.1 // indirect
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
github.com/ugorji/go/codec v1.2.11 // indirect
golang.org/x/arch v0.3.0 // indirect
golang.org/x/crypto v0.9.0 // indirect
golang.org/x/net v0.10.0 // indirect
golang.org/x/sys v0.8.0 // indirect
golang.org/x/text v0.9.0 // indirect
google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84 // indirect
google.golang.org/grpc v1.40.0 // indirect
google.golang.org/protobuf v1.30.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)
Loading