Merge pull request #251882 from r-ryantm/auto-update/prometheus-snmp-exporter
prometheus-snmp-exporter: 0.22.0 -> 0.25.0
This commit is contained in:
commit
c00a2d02bd
@ -128,6 +128,10 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
|
||||
- `security.pam.enableSSHAgentAuth` now requires `services.openssh.authorizedKeysFiles` to be non-empty,
|
||||
which is the case when `services.openssh.enable` is true. Previously, `pam_ssh_agent_auth` silently failed to work.
|
||||
|
||||
- The configuration format for `services.prometheus.exporters.snmp` changed with release 0.23.0.
|
||||
The module now includes an optional config check, that is enabled by default, to make the change obvious before any deployment.
|
||||
More information about the configuration syntax change is available in the [upstream repository](https://github.com/prometheus/snmp_exporter/blob/b75fc6b839ee3f3ccbee68bee55f1ae99555084a/auth-split-migration.md).
|
||||
|
||||
## Other Notable Changes {#sec-release-24.05-notable-changes}
|
||||
|
||||
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
||||
|
@ -4,6 +4,25 @@ with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.prometheus.exporters.snmp;
|
||||
|
||||
# This ensures that we can deal with string paths, path types and
|
||||
# store-path strings with context.
|
||||
coerceConfigFile = file:
|
||||
if (builtins.isPath file) || (lib.isStorePath file) then
|
||||
file
|
||||
else
|
||||
(lib.warn ''
|
||||
${logPrefix}: configuration file "${file}" is being copied to the nix-store.
|
||||
If you would like to avoid that, please set enableConfigCheck to false.
|
||||
'' /. + file);
|
||||
|
||||
checkConfig = file:
|
||||
pkgs.runCommandLocal "checked-snmp-exporter-config.yml" {
|
||||
nativeBuildInputs = [ pkgs.buildPackages.prometheus-snmp-exporter ];
|
||||
} ''
|
||||
ln -s ${coerceConfigFile file} $out
|
||||
snmp_exporter --dry-run --config.file $out
|
||||
'';
|
||||
in
|
||||
{
|
||||
port = 9116;
|
||||
@ -24,15 +43,23 @@ in
|
||||
Snmp exporter configuration as nix attribute set. Mutually exclusive with 'configurationPath' option.
|
||||
'';
|
||||
example = {
|
||||
"default" = {
|
||||
"version" = 2;
|
||||
"auth" = {
|
||||
"community" = "public";
|
||||
};
|
||||
auths.public_v2 = {
|
||||
community = "public";
|
||||
version = 2;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
enableConfigCheck = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = lib.mdDoc ''
|
||||
Whether to run a correctness check for the configuration file. This depends
|
||||
on the configuration file residing in the nix-store. Paths passed as string will
|
||||
be copied to the store.
|
||||
'';
|
||||
};
|
||||
|
||||
logFormat = mkOption {
|
||||
type = types.enum ["logfmt" "json"];
|
||||
default = "logfmt";
|
||||
@ -50,9 +77,13 @@ in
|
||||
};
|
||||
};
|
||||
serviceOpts = let
|
||||
configFile = if cfg.configurationPath != null
|
||||
then cfg.configurationPath
|
||||
else "${pkgs.writeText "snmp-exporter-conf.yml" (builtins.toJSON cfg.configuration)}";
|
||||
uncheckedConfigFile = if cfg.configurationPath != null
|
||||
then cfg.configurationPath
|
||||
else "${pkgs.writeText "snmp-exporter-conf.yml" (builtins.toJSON cfg.configuration)}";
|
||||
configFile = if cfg.enableConfigCheck then
|
||||
checkConfig uncheckedConfigFile
|
||||
else
|
||||
uncheckedConfigFile;
|
||||
in {
|
||||
serviceConfig = {
|
||||
ExecStart = ''
|
||||
|
@ -1392,9 +1392,11 @@ let
|
||||
snmp = {
|
||||
exporterConfig = {
|
||||
enable = true;
|
||||
configuration.default = {
|
||||
version = 2;
|
||||
auth.community = "public";
|
||||
configuration = {
|
||||
auths.public_v2 = {
|
||||
community = "public";
|
||||
version = 2;
|
||||
};
|
||||
};
|
||||
};
|
||||
exporterTest = ''
|
||||
|
@ -2,16 +2,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "snmp_exporter";
|
||||
version = "0.22.0";
|
||||
version = "0.25.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "prometheus";
|
||||
repo = "snmp_exporter";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-HncffOX0/z8XIEXTOkt6bcnAfY7xwgNBGhUwC3FIJjo=";
|
||||
sha256 = "sha256-6Y2zJwY5gToJlY6iLug2jNXXtNLNz98WoTKGcWgYzaA=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-n0LPKmGPxLZgvzdpyuE67WOJv7MKN28m7PtQpWYdtMk=";
|
||||
vendorHash = "sha256-8soLDI/hBzSZB6Lfj1jVkIWfIkMPJmp84bu7TKg7jeo=";
|
||||
|
||||
buildInputs = [ net-snmp ];
|
||||
|
||||
@ -23,6 +23,6 @@ buildGoModule rec {
|
||||
description = "SNMP Exporter for Prometheus";
|
||||
homepage = "https://github.com/prometheus/snmp_exporter";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ oida willibutz Frostman ];
|
||||
maintainers = with maintainers; [ oida Frostman ];
|
||||
};
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user