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
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
@ -38,4 +39,6 @@ MDNS.addServiceTxt("prometheus-http", "tcp", "name", prometheus_name);
## 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,17 +10,18 @@
inputs.flakelight.follows = "flakelight";
};
};
outputs = { mill-scale, ... }: mill-scale ./. {
nixosModules = { outputs, ... }: {
default =
{ pkgs
, config
, lib
, ...
outputs = {mill-scale, ...}:
mill-scale ./. {
nixosModules = {outputs, ...}: {
default = {
pkgs,
config,
lib,
...
}: {
imports = [ ./nix/module.nix ];
imports = [./nix/module.nix];
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;
};
};

View file

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

View file

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

View file

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