21个版本 (破坏性更新)

0.16.0 2023年6月16日
0.15.0 2022年1月20日
0.14.1 2021年3月31日
0.14.0 2020年8月5日
0.3.1 2015年7月24日

#146 in 调试

Download history 538/week @ 2024-03-13 757/week @ 2024-03-20 453/week @ 2024-03-27 521/week @ 2024-04-03 410/week @ 2024-04-10 431/week @ 2024-04-17 633/week @ 2024-04-24 746/week @ 2024-05-01 471/week @ 2024-05-08 634/week @ 2024-05-15 477/week @ 2024-05-22 699/week @ 2024-05-29 548/week @ 2024-06-05 539/week @ 2024-06-12 404/week @ 2024-06-19 667/week @ 2024-06-26

2,306 每月下载量
3 crate 中使用

MIT 许可协议

25KB
426

Rust Statsd

Build Status

Rust中StatsD的实现

使用客户端库

statsd 包作为依赖项添加到你的 Cargo.toml 文件中

[dependencies]
statsd = "^0.16"

statsd要正常工作,您需要 rustc >= 1.31.0。

然后,您可以获取客户端实例并开始跟踪指标

// Load the crate
extern crate statsd;

// Import the client object.
use statsd::Client;

// Get a client with the prefix of `myapp`. The host should be the
// IP:port of your statsd daemon.
let client = Client::new("127.0.0.1:8125", "myapp").unwrap();

跟踪指标

创建客户端后,您可以跟踪计时器和指标

// Increment a counter by 1
client.incr("some.counter");

// Decrement a counter by 1
client.decr("some.counter");

// Update a gauge
client.gauge("some.value", 12.0);

// Modify a counter by an arbitrary float.
client.count("some.counter", 511.0);

// Send a histogram value as a float.
client.histogram("some.histogram", 511.0);

// Send a key/value.
client.kv("some.data", 15.26);

跟踪计时器

可以使用 timer()time() 更新计时器

// Update a timer based on a calculation you've done.
client.timer("operation.duration", 13.4);

// Time a closure
client.time("operation.duration", || {
	// Do something expensive.
});

管道

一次可以使用管道将多个指标发送到StatsD

let mut pipe = client.pipeline():

// Increment a counter by 1
pipe.incr("some.counter");

// Decrement a counter by 1
pipe.decr("some.counter");

// Update a gauge
pipe.gauge("some.value", 12.0);

// Modify a counter by an arbitrary float.
pipe.count("some.counter", 511.0);

// Send a histogram value as a float.
pipe.histogram("some.histogram", 511.0);

// Send a key/value.
pipe.kv("some.data", 15.26);

// Set max UDP packet size if you wish, default is 512
pipe.set_max_udp_size(128);

// Send to StatsD
pipe.send(&client);

管道还有助于使函数更容易测试,因为您可以传递一个管道并确信不会发送任何UDP数据包。

许可协议

MIT 许可协议 下授权。

依赖项

~310KB