mirror of
https://codeberg.org/icewind/palantir.git
synced 2026-06-03 10:14:09 +02:00
advertise self over mdns
This commit is contained in:
parent
23234c95b1
commit
f8684de7f5
3 changed files with 60 additions and 0 deletions
49
Cargo.lock
generated
49
Cargo.lock
generated
|
|
@ -553,6 +553,27 @@ dependencies = [
|
|||
"unicode-normalization",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "if-addrs"
|
||||
version = "0.6.7"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2273e421f7c4f0fc99e1934fe4776f59d8df2972f4199d703fc0da9f2a9f73de"
|
||||
dependencies = [
|
||||
"if-addrs-sys",
|
||||
"libc",
|
||||
"winapi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "if-addrs-sys"
|
||||
version = "0.3.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "de74b9dd780476e837e5eb5ab7c88b49ed304126e412030a0adba99c8efe79ea"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"libc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "indenter"
|
||||
version = "0.3.3"
|
||||
|
|
@ -587,6 +608,24 @@ version = "0.2.111"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8e167738f1866a7ec625567bae89ca0d44477232a4f7c52b1c7f2adc2c98804f"
|
||||
|
||||
[[package]]
|
||||
name = "libmdns"
|
||||
version = "0.6.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fac185a4d02e873c6d1ead59d674651f8ae5ec23ffe1637bee8de80665562a6a"
|
||||
dependencies = [
|
||||
"byteorder",
|
||||
"futures-util",
|
||||
"hostname",
|
||||
"if-addrs",
|
||||
"log",
|
||||
"multimap",
|
||||
"rand",
|
||||
"socket2",
|
||||
"thiserror",
|
||||
"tokio",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "log"
|
||||
version = "0.4.14"
|
||||
|
|
@ -671,6 +710,15 @@ dependencies = [
|
|||
"winapi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "multimap"
|
||||
version = "0.8.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a"
|
||||
dependencies = [
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "multipart"
|
||||
version = "0.18.0"
|
||||
|
|
@ -780,6 +828,7 @@ dependencies = [
|
|||
"hostname",
|
||||
"iai",
|
||||
"libc",
|
||||
"libmdns",
|
||||
"once_cell",
|
||||
"regex",
|
||||
"tokio",
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ libc = "0.2"
|
|||
ahash = "0.7"
|
||||
bollard = "0.11"
|
||||
futures-util = "0.3"
|
||||
libmdns = "0.6"
|
||||
|
||||
[dev-dependencies]
|
||||
iai = "0.1"
|
||||
|
|
|
|||
10
src/main.rs
10
src/main.rs
|
|
@ -2,10 +2,12 @@ use bollard::Docker;
|
|||
use color_eyre::{Report, Result};
|
||||
use futures_util::pin_mut;
|
||||
use futures_util::StreamExt;
|
||||
use libmdns::Responder;
|
||||
use palantir::docker::{get_docker, stat, Container};
|
||||
use palantir::get_metrics;
|
||||
use palantir::power::power_usage;
|
||||
use palantir::zfs::arcstats;
|
||||
use tokio::runtime::Handle;
|
||||
use warp::reject::Reject;
|
||||
use warp::{Filter, Rejection};
|
||||
|
||||
|
|
@ -64,6 +66,14 @@ async fn main() -> Result<()> {
|
|||
let docker = get_docker().await;
|
||||
let docker = warp::any().map(move || docker.clone());
|
||||
|
||||
let mdns = Responder::spawn(&Handle::current())?;
|
||||
let _svc = mdns.register(
|
||||
"_prometheus-http._tcp".into(),
|
||||
"Palantir prometheus exporter".into(),
|
||||
host_port,
|
||||
&[&"/metrics"],
|
||||
);
|
||||
|
||||
let metrics = warp::path!("metrics").and(docker).and_then(serve_metrics);
|
||||
|
||||
warp::serve(metrics).run(([0, 0, 0, 0], host_port)).await;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue