Python SDK
版本记录
版本 | 说明 | 日期 |
---|---|---|
V1.0.5 | 修复消息事件中 DataSourceId 参数错误的问题,维度表上报时删除多余参数 | 2023-12-01 |
V1.0.2 | 支持埋点事件事件变量、用户变量可传列表类型 | 2022-04-20 |
V1.0.1 | 支持埋点事件可传eventTime参数 | 2022-04-02 |
V1.0.0 | 支持自定义事件,用户属性事件 | 2022-03-28 |
简介
GrowingIO 提供在Python Server端部署的SDK,方便集成后可以快速的进行事件上报操作。
兼容 Python2.7+ 和 Python3.5+.
集成准备
获取SDK初始化必传参数:AccountID、DataSourceID、ServerHost
info
AccountID:项目ID,代表一个项目
DataSourceID:数据源ID,代表一个数据源
ServerHost:采集数据上报的服务器地址,非平台地址
AccountID、DataSourceID 需要在CDP增长平台上新建数据源,或从已创建的数据源中获取, 如不清楚或无权限请联系您的专属项目经理或技术支持
创建
查看
下载 & 安装
可以使用 pip 下载我们的sdk
pip install growingio_tracker
使用说明
初始化参数
参数 | 必选 | 类型 | 默认值 | 说明 |
---|---|---|---|---|
product_id | true | string | 项目 ID,对应 AccountID | |
data_source_id | true | string | 数据源 ID,对应 DataSourceID | |
server_host | true | string | 数据收集服务域名,对应 ServerHost ,请参考运维手册或联系技术支持获取 | |
consumer | false | object | 用于配置事件的发送逻辑 |
代码示例
from growingio_tracker import GrowingTracker
# 方式1:使用默认配置
growing_tracker = GrowingTracker('<product_id>', '<data_source_id>', '<server_host>')
# 方式2: 自定义发送策略
from growingio_tracker import DefaultConsumer
default_consumer = DefaultConsumer('<product_id>', '<data_source_id>', '<server_host>')
growing_tracker = GrowingTracker.consumer(default_consumer)
发送策略
在 Python Sdk 中,提供了不同的事件发送策略,我们可以通过设置不同的策略来配置事件的发送逻辑.
默认策略配置参数
参数 | 必选 | 类型 | 默认值 | 说明 |
---|---|---|---|---|
product_id | true | string | 项目 ID,见数据源配置 | |
data_source_id | true | string | 数据源 ID,见数据源配置 | |
server_host | true | string | 数据收集服务域名,请参考运维手册或联系技术支持获取 | |
data_parser | false | object | JsonParser | 数据格式处理逻辑,默认处理JSON格式 |
retry_limit | false | int | 3 | 数据上传重试次数 |
request_timeout | false | int | 5 | 数据请求超时时间,默认5秒 |
retry_backoff_factor | false | float | 0.25 | 数据上传重试间隔,默认0.25秒 |
verify_cert | false | bool | True | 网络请求证书验证 |
立即发送(默认)
当通过 API 传入事件时,SDK会立即将事件上报。
from growingio_tracker import DefaultConsumer
# 生成事件发 送策略
default_consumer = DefaultConsumer('<product_id>', '<data_source_id>', '<server_host>')
# 通过传入发送策略来初始化 SDK
growing_tracker = GrowingTracker.consumer(default_consumer)
队列发送
只有当队列事件数目达到设置的队列最大值时才会上传数据。
额外参数 | 必选 | 类型 | 默认值 | 说明 |
---|---|---|---|---|
max_size | false | int | 500 | 当队列数据达到设置的最大值时,打包上传事件信息,默认最大值为500条 |
from growingio_tracker import BufferedConsumer
buffer_consumer = BufferedConsumer('<product_id>', '<data_source_id>', '<server_host>')
growing_tracker = GrowingTracker.consumer(buffer_consumer)
异步队列发送
队列发送的异步版,当队列事件数目达到设置的队列最大值时或者超过设置的定时时间后才会上传数据。
额外参数 | 必选 | 类型 | 默认值 | 说明 |
---|---|---|---|---|
flush_after | false | int | 10 | 每隔一定时间发送队列中的数据,默认时间为10秒 |
max_size | false | int | 500 | 当队列数据达到设置的最大值时,打包上传事件信息,默认最大值为500条 |
from growingio_tracker import AsyncBufferedConsumer
async_consumer = AsyncBufferedConsumer('<product_id>', '<data_source_id>', '<server_host>')
growing_tracker = GrowingTracker.consumer(async_consumer)
日志测试
用于打印日志,请在测试环境中使用。
from growingio_tracker import DebugConsumer
# 生成事件发送策略
debug_consumer = DebugConsumer('<product_id>', '<data_source_id>', '<server_host>')
# 通过传入发送策略来初始化 SDK
growing_tracker = GrowingTracker.consumer(debug_consumer)
数据格式
python sdk 可以通过配置数据解析器来改变数据上传的格式,默认为JSON格式。除此之外,SDK 中额外提供了 snappy 的处理逻辑。
使用 Snappy 压缩数据
要求安装 python-snappy 依赖库 : pip install python-snappy
参数 | 必选 | 类型 | 默认值 | 说明 |
---|---|---|---|---|
crypt_data | false | bool | False | 是否对数据进行异或加密(只对python3+有效) |
from growingio_tracker import DefaultConsumer
from growingio_tracker_snappy import SnappyParser
data_parser = SnappyParser()
default_consumer = DefaultConsumer('<product_id>', '<data_source_id>', '<server_host>', data_parser)
growing_tracker = GrowingTracker.consumer(default_consumer)