2 个不稳定版本
0.2.0 | 2022 年 12 月 19 日 |
---|---|
0.1.0 | 2022 年 10 月 18 日 |
#624 in 数据库接口
193 每月下载次数
97KB
1.5K SLoC
Snowplow Rust 分析工具
Snowplow 是一个可扩展的开源平台,用于收集丰富、高质量、低延迟的数据。它旨在收集企业业务的高质量、完整行为数据。
要了解更多信息,请访问 Snowplow 网站 和我们的 文档。
Snowplow Rust 追踪器概述
Snowplow Rust 追踪器允许您在通过 Snowplow 管道时向您的 Rust 应用程序添加分析功能。
使用此追踪器,您可以在用户与您的 Rust 应用程序交互时收集粒度事件级数据。
有关每个追踪器的技术文档可以在我们的 文档 中找到。
快速入门
安装
将 snowplow_tracker
作为依赖项添加到 Rust 应用程序内的 Cargo.toml
[dependencies]
snowplow_tracker = "0.2.0"
在您的代码中使用软件包 API
use snowplow_tracker::Snowplow;
使用追踪器
使用 Snowplow::create_tracker
函数实例化追踪器。该函数接受三个必需参数:namespace
、app_id
、collector_url
和一个可选参数,subject
。追踪器 namespace
识别追踪器实例;您可以使用不同的命名空间创建多个追踪器。The app_id
识别您的应用程序。The collector_url
是发送事件到 Snowplow 收集器的 URI。The subject
允许将可选的主题附加到追踪器,该主题将与所有事件一起发送
use snowplow_tracker::Subject;
let subject = Subject::builder().language("en-gb").build().unwrap();
let tracker = Snowplow::create_tracker("ns", "app_id", "https://...", Some(subject));
要跟踪事件,只需实例化它们各自类型并将它们传递给带有可选上下实体 tracker.track
方法。请参阅文档以了解事件属性的规范。
// Tracking a Screen View event
let screen_view_event = match ScreenViewEvent::builder()
.id(Uuid::new_v4())
.name("a screen view")
.previous_name("previous name")
.build()
{
Ok(event) => event,
Err(e) => panic!("ScreenViewEvent could not be built: {e}"), // your error handling here
};
let screen_view_event_id = match tracker.track(screen_view_event, None) {
Ok(uuid) => uuid,
Err(e) => panic!("Failed to emit event: {e}"), // your error handling here
};
// Tracking a Self-Describing event with context entity
let self_describing_event = match SelfDescribingEvent::builder()
.schema("iglu:com.snowplowanalytics.snowplow/screen_view/jsonschema/1-0-0")
.data(json!({"name": "test", "id": "something else"}))
.build()
{
Ok(event) => event,
Err(e) => panic!("SelfDescribingEvent could not be built: {e}"), // your error handling here
};
let event_context = Some(vec![SelfDescribingJson::new(
"iglu:org.schema/WebPage/jsonschema/1-0-0",
json!({"keywords": ["tester"]}),
)]);
let self_desc_event_id = match tracker.track(self_describing_event, event_context) {
Ok(uuid) => uuid,
Err(e) => panic!("Failed to emit event: {e}"), // your error handling here
};
// Tracking a Structured event
let structured_event = match StructuredEvent::builder()
.category("shop")
.action("add-to-basket")
.label("Add To Basket")
.property("pcs")
.value(2.0)
.build()
{
Ok(event) => event,
Err(e) => panic!("StructuredEvent could not be built: {e}"), // your error handling here
};
let struct_event_id = match tracker.track(structured_event, None) {
Ok(uuid) => uuid,
Err(e) => panic!("Failed to emit event: {e}"), // your error handling here
};
// Close the emitter when done
tracker.close_emitter()
了解更多信息
技术文档 | 设置指南 |
---|---|
技术文档 | 设置指南 |
维护者
贡献 |
---|
贡献 |
测试
版权和许可证
Snowplow Rust 追踪器版权所有 2022 Snowplow Analytics Ltd.
本软件受Apache许可证第2.0版(以下简称“许可证”)许可;除非适用法律要求或书面同意,否则不得使用本软件。
除非适用法律要求或书面同意,否则根据许可证分发的软件按“现状”分发,不提供任何形式的明示或暗示担保。有关许可证下的权限和限制的具体语言,请参阅许可证。
依赖项
~6–21MB
~292K SLoC