火山引擎DataSail提供埋点数据上报Go SDK,用户在开通DataSail服务之后,可以通过SDK将数据上报到火山云。
请确保您已开通了您需要访问的服务。您可前往火山引擎控制台开通全域数据集成服务,详见服务开通。
Access Key(访问密钥)是访问火山引擎服务的安全凭证,包含Access Key ID(简称为AK)和Secret Access Key(简称为SK)两部分。您可登录火山引擎控制台,前往访问控制 的访问密钥 中创建及管理您的Access Key。更多信息可参考访问密钥帮助文档 。
路径:应用管理-新建应用
路径:数据采集-topic管理-新建Topic
路径:数据采集-采集管理-新建采集任务
Go (推荐使用1.17及以上版本)
Java 8
Maven (推荐使用3.1.1及以上版本)
运行环境 (Linux, Mac OS X)
参数名 | 类型 | 配置项含义 | 示例 | 备注 | |
---|---|---|---|---|---|
Config | Caller | string | 代表业务名称 | datasail.dataset.test | |
AccessKey | string | 火山云 Access Key | AKLTZWU****** | ||
SecretKey | string | 火山云 Secret Key | TW1KaVlU****** | ||
Domain | string | 数据上报域名 | datasail01-cn-beijing.volceapplog.com | ||
TaskKey | string | 采集任务ID | hkktppvwtuv0xy000 | 获取路径:数据采集->采集管理->采集任务 ID 🔗 | |
Aid | int | 应用APP ID | 500000 | 获取路径:应用管理->APP ID 🔗 | |
IsDebud | boolean | 是否开启埋点验证 | false | 开启埋点验证开关,数据会双发到验证链路 | |
Region | string | 数据上报区域 | cn-beijing |
下载datasail_collector_go_cloud,与自己的项目目录在同一层
替换包名
go mod edit -replace volcengine.com/datasail/datasail_collector_go_cloud=../datasail_collector_go_cloud
更新依赖
go get volcengine.com/datasail/datasail_collector_go_cloud
上报数据
package main import ( "encoding/json" "fmt" "github.com/golang/protobuf/proto" "log" "volcengine.com/datasail/datasail_collector_go_cloud" "volcengine.com/datasail/datasail_collector_go_cloud/pb_event" ) func main() { user := &pb_event.User{ UserUniqueId: proto.String("14_13468385056"), DeviceId: proto.Uint64(13468385056), } // 自定义headers,大部分情况下不需要。标准字段请使用预定义字段。 headers := map[string]interface{}{} headers["test_field"] = 542 jsonBytes, _ := json.Marshal(headers) header := &pb_event.Header{ AppId: proto.Uint32(5000054), //必选 AppName: proto.String("test_app"), Headers: proto.String(string(jsonBytes)), } params := map[string]interface{}{} params["test_params_field"] = 123 paramsBytes, _ := json.Marshal(params) event := &pb_event.Event{ Event: proto.String("test_go_detail"), Time: proto.Uint32(123), Params: proto.String(string(paramsBytes)), } // 构造collector 并传入服务的psm与服务所属火山账号的AK和SK collector, err := datasail_collector_go_cloud.NewDataSailCollector("domain", datasail_collector_go_cloud.Config{ Caller: "your caller", AccessKey: "your ak", SecretKey: "your sk", TaskKey: "your task_key", IsDebug: true, // 是否开启debug,如开启,则双方数据至埋点验证 DebugResultHandler: func(result interface{}) { // 只有开启debug功能,此回调接口才会生效 // 埋点验证,线上上报均会回调此方法,埋点验证回调时result为上报的数据。线上上报回调时result为nil data, _ := json.Marshal(result) fmt.Println("succeed:" + string(data)) }, }) if err != nil { log.Panic("collect events error:" + err.Error()) return } events := []*pb_event.Event{event} marioEvent := &pb_event.MarioEvents{ User: user, Header: header, Events: events, } if err := collector.CollectMarioEvents(marioEvent); err != nil { log.Panic("collect events error:" + err.Error()) } collector.Close() }