46次发布
0.2.2 | 2019年10月1日 |
---|---|
0.1.14 | 2020年1月16日 |
0.1.12 | 2019年11月11日 |
0.0.9 | 2019年7月24日 |
401 在 模板引擎 中排名
每月115次 下载
32KB
680 行
用于与LogDNA的Ingest API通信的客户端库
此crate严重依赖Hyper和Tokio进行操作。强烈建议阅读它们的相应文档以了解此crate的高级用法。
概述
总体流程相当简单,首先使用Client::builder
创建一个新的客户端。
然后根据需要多次调用Client::send
。
示例
首先需要一个Tokio运行时
let mut rt = Runtime::new().expect("Runtime::new()");
客户端需要一个请求模板来生成新的请求
let params = Params::builder()
.hostname("rust-client-test")
.ip("127.0.0.1")
.tags("this,is,a,test")
.build()
.expect("Params::builder()");
let template = RequestTemplate::builder()
.host("logs.logdna.com")
.params(params)
.api_key("ingestion key goes here")
.build()
.expect("RequestTemplate::builder()");
现在您已经拥有了创建客户端所需的一切
let client = Client::new(request_template);
要使用客户端,我们需要调用Client::send
Client::send
需要一个IngestBody
,因此让我们创建一个
// Lets build a line, note that only line is required
let labels = Labels::new()
.add("app", "test")
.add("workload", "test");
let line1 = Line::builder()
.line("this is a test")
.app("rust-client")
.level("INFO")
.labels(labels)
.build()
.expect("Line::builder()");
let line2 = Line::builder()
.line("this is also a test")
.app("rust-client")
.level("ERROR")
.build()
.expect("Line::builder()");
let body = IngestBody::new(vec![line1,line2]);
现在我们只需要使用上面创建的客户端发送体
let response = client.send(IngestBody::new(vec![line]));
响应需要在您之前创建的运行时上启动
如果响应未被轮询(在运行时上启动),则不会发生任何事情
assert_eq!(Response::Sent, rt.block_on(response).unwrap())
依赖关系
~12–24MB
~359K SLoC