提交 a9bb5ac1 authored 作者: Serhij S's avatar Serhij S

setup_metrics_exporter

上级 6fba490c
......@@ -41,12 +41,15 @@ tokio = { version = "1.36.0", optional = true }
hostname = { version = "0.3.1", optional = true }
env_logger = "0.11.3"
log = "0.4.21"
metrics-exporter-prometheus = { version = "0.14.0", optional = true }
metrics = { version = "0.22.3", optional = true }
[features]
eapi = ["eva-common", "eva-sdk", "busrt", "tokio", "hostname"]
modbus = ["rmodbus"]
eapi = ["dep:eva-common", "dep:eva-sdk", "dep:busrt", "dep:tokio", "dep:hostname"]
modbus = ["dep:rmodbus"]
openssl-vendored = ["busrt/openssl-vendored", "eva-common/openssl-vendored"]
full = ["eapi", "modbus"]
metrics = ["dep:metrics", "dep:metrics-exporter-prometheus"]
full = ["eapi", "modbus", "metrics"]
[dev-dependencies]
insta = "1.36.1"
......
......@@ -10,6 +10,9 @@ use thread_rt::{RTParams, Scheduling};
pub use log::LevelFilter;
pub use roboplc_derive::DataPolicy;
#[cfg(feature = "metrics")]
pub use metrics;
/// Event buffers
pub mod buf;
/// Reliable TCP/Serial communications
......@@ -251,6 +254,12 @@ pub fn suicide(delay: Duration, warn: bool) {
};
}
#[cfg(feature = "metrics")]
pub fn setup_metrics_exporter() -> Result<()> {
let builder = metrics_exporter_prometheus::PrometheusBuilder::new();
builder.install().map_err(Error::io)
}
/// Sets panic handler to immediately kill the process and its childs with SIGKILL
pub fn setup_panic() {
std::panic::set_hook(Box::new(move |info: &PanicInfo| {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论