You need to enable JavaScript to run this app.
全域数据集成

全域数据集成

复制全文
埋点采集
Go
复制全文
Go
一、简介

火山引擎DataSail提供埋点数据上报Go SDK,用户在开通DataSail服务之后,可以通过SDK将数据上报到火山云。

二、前置准备

服务开通

请确保您已开通了您需要访问的服务。您可前往火山引擎控制台开通全域数据集成服务,详见服务开通

获取安全凭证

Access Key(访问密钥)是访问火山引擎服务的安全凭证,包含Access Key ID(简称为AK)和Secret Access Key(简称为SK)两部分。您可登录火山引擎控制台,前往访问控制访问密钥 中创建及管理您的Access Key。更多信息可参考访问密钥帮助文档

产品接入

  1. 申请应用

路径:应用管理-新建应用

  1. 申请Topic

路径:数据采集-topic管理-新建Topic

  1. 申请数据采集

路径:数据采集-采集管理-新建采集任务

三、上报示例

环境

  • Go (推荐使用1.17及以上版本)

  • Java 8

  • Maven (推荐使用3.1.1及以上版本)

  • 运行环境 (Linux, Mac OS X)

参数

参数名类型配置项含义示例备注
ConfigCallerstring代表业务名称datasail.dataset.test

AccessKey

string

火山云 Access Key

AKLTZWU******

SecretKey

string

火山云 Secret Key

TW1KaVlU******

Domainstring数据上报域名datasail01-cn-beijing.volceapplog.com
TaskKeystring采集任务IDhkktppvwtuv0xy000获取路径:数据采集->采集管理->采集任务 ID 🔗
Aidint应用APP ID500000获取路径:应用管理->APP ID 🔗
IsDebudboolean是否开启埋点验证false开启埋点验证开关,数据会双发到验证链路
Regionstring数据上报区域cn-beijing

代码示例

  1. 下载datasail_collector_go_cloud,与自己的项目目录在同一层

    datasail_collector_go_cloud-master.tar.gz
    33.00KB

  2. 替换包名

    go mod edit -replace volcengine.com/datasail/datasail_collector_go_cloud=../datasail_collector_go_cloud
    
  3. 更新依赖

    go get volcengine.com/datasail/datasail_collector_go_cloud
    
  4. 上报数据

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

安全声明

Go开源组件声明.txt
9.08KB
最近更新时间:2023.12.19 19:46:27
这个页面对您有帮助吗?
有用
有用
无用
无用