1
0
Fork 0
mirror of https://codeberg.org/icewind/prometheus-mdns-rs.git synced 2026-06-03 09:54:21 +02:00
This commit is contained in:
Robin Appelman 2025-06-02 21:29:38 +02:00
commit 5753229f6a
5 changed files with 40 additions and 37 deletions

View file

@ -1,6 +1,7 @@
# mDNS service discovery for Prometheus # mDNS service discovery for Prometheus
Discovers mDNS/ZeroConf/Bonjour service announcements under \_prometheus-http.\_tcp for ad-hoc discovery of devices on LAN networks. Discovers mDNS/ZeroConf/Bonjour service announcements under
\_prometheus-http.\_tcp for ad-hoc discovery of devices on LAN networks.
## Usage ## Usage
@ -38,4 +39,6 @@ MDNS.addServiceTxt("prometheus-http", "tcp", "name", prometheus_name);
## Credits ## Credits
Wholly inspired by [prometheus-mdns-sd](https://github.com/msiebuhr/prometheus-mdns-sd) by Morten Siebuhr Wholly inspired by
[prometheus-mdns-sd](https://github.com/msiebuhr/prometheus-mdns-sd) by Morten
Siebuhr

View file

@ -10,20 +10,21 @@
inputs.flakelight.follows = "flakelight"; inputs.flakelight.follows = "flakelight";
}; };
}; };
outputs = { mill-scale, ... }: mill-scale ./. { outputs = {mill-scale, ...}:
nixosModules = { outputs, ... }: { mill-scale ./. {
default = nixosModules = {outputs, ...}: {
{ pkgs default = {
, config pkgs,
, lib config,
, ... lib,
...
}: { }: {
imports = [ ./nix/module.nix ]; imports = [./nix/module.nix];
config = lib.mkIf config.services.prometheus-mdns-sd.enable { config = lib.mkIf config.services.prometheus-mdns-sd.enable {
nixpkgs.overlays = [ outputs.overlays.default ]; nixpkgs.overlays = [outputs.overlays.default];
services.prometheus-mdns-sd.package = lib.mkDefault pkgs.prometheus-mdns-sd; services.prometheus-mdns-sd.package = lib.mkDefault pkgs.prometheus-mdns-sd;
}; };
}; };
};
}; };
};
} }

View file

@ -1,12 +1,12 @@
{ config {
, lib config,
, pkgs lib,
, ... pkgs,
...
}: }:
with lib; let with lib; let
cfg = config.services.prometheus-mdns-sd; cfg = config.services.prometheus-mdns-sd;
in in {
{
options.services.prometheus-mdns-sd = { options.services.prometheus-mdns-sd = {
enable = mkEnableOption "WiFi prometheus exporter"; enable = mkEnableOption "WiFi prometheus exporter";
@ -25,7 +25,7 @@ in
config = mkIf cfg.enable { config = mkIf cfg.enable {
systemd.services."prometheus-mdns-sd" = { systemd.services."prometheus-mdns-sd" = {
wantedBy = [ "multi-user.target" ]; wantedBy = ["multi-user.target"];
serviceConfig = { serviceConfig = {
ExecStart = "${cfg.package}/bin/prometheus-mdns-sd-rs ${cfg.target}"; ExecStart = "${cfg.package}/bin/prometheus-mdns-sd-rs ${cfg.target}";
@ -50,9 +50,9 @@ in
RestrictAddressFamilies = "AF_INET"; RestrictAddressFamilies = "AF_INET";
RestrictRealtime = true; RestrictRealtime = true;
ProtectProc = "invisible"; ProtectProc = "invisible";
SystemCallFilter = [ "@system-service" "~@resources" "~@privileged" ]; SystemCallFilter = ["@system-service" "~@resources" "~@privileged"];
IPAddressDeny = "any"; IPAddressDeny = "any";
IPAddressAllow = [ "multicast" "192.168.0.0/16" ]; IPAddressAllow = ["multicast" "192.168.0.0/16"];
PrivateUsers = true; PrivateUsers = true;
ProcSubset = "pid"; ProcSubset = "pid";
RuntimeDirectory = "prometheus-mdns-sd"; RuntimeDirectory = "prometheus-mdns-sd";

View file

@ -1,3 +1,3 @@
final: prev: { final: prev: {
prometheus-mdns-sd = final.callPackage ./package.nix { }; prometheus-mdns-sd = final.callPackage ./package.nix {};
} }

View file

@ -1,22 +1,21 @@
{ stdenv {
, rustPlatform stdenv,
, lib rustPlatform,
, lib,
}: }: let
let
inherit (lib.sources) sourceByRegex; inherit (lib.sources) sourceByRegex;
inherit (builtins) fromTOML readFile; inherit (builtins) fromTOML readFile;
src = sourceByRegex ../. [ "Cargo.*" "(src)(/.*)?" ]; src = sourceByRegex ../. ["Cargo.*" "(src)(/.*)?"];
cargoPackage = (fromTOML (readFile ../Cargo.toml)).package; cargoPackage = (fromTOML (readFile ../Cargo.toml)).package;
in in
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
inherit (cargoPackage) version; inherit (cargoPackage) version;
pname = cargoPackage.name; pname = cargoPackage.name;
inherit src; inherit src;
cargoLock = { cargoLock = {
lockFile = ../Cargo.lock; lockFile = ../Cargo.lock;
}; };
} }