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次下载
20KB
199 行
metrics_server
注意:此库的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