#metrics #server #http

metrics_server

一个无需烦恼、单一责任、安全易用的HTTP/S服务器,用于轻松暴露应用程序中的指标

20个版本 (破坏性)

0.15.0 2024年5月29日
0.13.0 2023年8月28日
0.12.0 2023年2月23日
0.10.1 2022年12月27日
0.1.1 2022年2月28日

#182 in HTTP服务器

每月28次下载

MIT许可证

20KB
199

metrics_server

CI Version Docs License

注意:此库的API目前不应被视为稳定 - 它可能在v1之前发生变化。

一个无需烦恼、单一责任、安全易用的HTTP/S服务器,用于轻松暴露应用程序中的指标。

此crate提供了一个线程安全、简约的HTTP/S服务器,用于缓冲指标并通过标准/metrics端点提供它们。它的目的是去除创建此类简单机制所需的样板代码。目前,它相对具有偏见和天真,以保持复杂性最小。

用法

在您的Cargo.toml依赖项中包含此库

[dependencies]
metrics_server = "0.15"

要启用TLS支持,传递可选的功能标志

[dependencies]
metrics_server = { version = "0.15", features = ["tls"] }

HTTP

use metrics_server::MetricsServer;

// Create a new HTTP server and start listening for requests in the background.
let server = MetricsServer::http("localhost:8001");

// Publish your application metrics.
let bytes = server.update("my_awesome_metric = 10".into());
assert_eq!(22, bytes);

// Stop the server.
server.stop().unwrap();

HTTPS

注意:目前没有选项可以跳过TLS证书验证。

use metrics_server::MetricsServer;

// Load TLS config.
let cert = include_bytes!("/path/to/cert.pem").to_vec();
let key = include_bytes!("/path/to/key.pem").to_vec();

// Create a new HTTPS server and start listening for requests in the background.
let server = MetricsServer::https("localhost:8443", cert, key);

// Publish your application metrics.
let bytes = server.update("my_awesome_metric = 10".into());
assert_eq!(22, bytes);

// Stop the server.
server.stop().unwrap();

提供自定义URL

use metrics_server::MetricsServer;

// Create a new server and specify the URL path to serve.
let mut server = MetricsServer::new("localhost:8001", None, None);
server.serve_uri("/path/to/metrics");

// Publish your application metrics.
let bytes = server.update("my_awesome_metric = 10".into());
assert_eq!(22, bytes);

// Stop the server.
server.stop().unwrap();

有关更全面的用法,请参阅包含的示例

依赖项

~2–11MB
~125K SLoC