diff options
Diffstat (limited to 'nixpkgs/pkgs/servers/monitoring/prometheus')
88 files changed, 4585 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/Cargo.lock b/nixpkgs/pkgs/servers/monitoring/prometheus/Cargo.lock new file mode 100644 index 000000000000..e03f69f58f1c --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/Cargo.lock @@ -0,0 +1,1016 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +[[package]] +name = "ansi_term" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "approx" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "072df7202e63b127ab55acfe16ce97013d5b97bf160489336d3f1840fd78e99e" +dependencies = [ + "num-traits", +] + +[[package]] +name = "async-trait" +version = "0.1.51" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44318e776df68115a881de9a8fd1b9e53368d7a4a5ce4cc48517da3393233a5e" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi", + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "autocfg" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bytes" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38" + +[[package]] +name = "bytes" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8" + +[[package]] +name = "cc" +version = "1.0.70" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d26a6ce4b6a484fa3edb70f7efa6fc430fd2b87285fe8b84304fd0936faa0dc0" + +[[package]] +name = "cfg-if" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "claim" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f81099d6bb72e1df6d50bb2347224b666a670912bb7f06dbe867a4a070ab3ce8" +dependencies = [ + "autocfg", +] + +[[package]] +name = "clap" +version = "2.33.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002" +dependencies = [ + "ansi_term", + "atty", + "bitflags", + "strsim", + "textwrap", + "unicode-width", + "vec_map", +] + +[[package]] +name = "core-foundation" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25b9e03f145fd4f2bf705e07b900cd41fc636598fe5dc452fd0db1441c3f496d" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7ca8a5221364ef15ce201e8ed2f609fc312682a8f4e0e3d4aa5879764e0fa3b" + +[[package]] +name = "domain" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2eb073186f6285f852b9e71b544111306ab08da4a6b40c25a73f4c9ee3e3df29" +dependencies = [ + "rand", +] + +[[package]] +name = "dtoa" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56899898ce76aaf4a0f24d914c97ea6ed976d42fec6ad33fcbb0a1103e07b2b0" + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "fuchsia-zircon" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" +dependencies = [ + "bitflags", + "fuchsia-zircon-sys", +] + +[[package]] +name = "fuchsia-zircon-sys" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" + +[[package]] +name = "futures-channel" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5da6ba8c3bb3c165d3c7319fc1cc8304facf1fb8db99c5de877183c08a273888" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88d1c26957f23603395cd326b0ffe64124b818f4449552f960d815cfba83a53d" + +[[package]] +name = "futures-sink" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36ea153c13024fe480590b3e3d4cad89a0cfacecc24577b68f86c6ced9c2bc11" + +[[package]] +name = "futures-task" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d3d00f4eddb73e498a54394f228cd55853bdf059259e8e7bc6e69d408892e99" + +[[package]] +name = "futures-util" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36568465210a3a6ee45e1f165136d68671471a501e632e9a98d96872222b5481" +dependencies = [ + "autocfg", + "futures-core", + "futures-task", + "pin-project-lite 0.2.7", + "pin-utils", +] + +[[package]] +name = "getrandom" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "wasi", +] + +[[package]] +name = "h2" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e4728fd124914ad25e99e3d15a9361a879f6620f63cb56bbb08f95abb97a535" +dependencies = [ + "bytes 0.5.6", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap", + "slab", + "tokio", + "tokio-util", + "tracing", + "tracing-futures", +] + +[[package]] +name = "hashbrown" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" + +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "http" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "527e8c9ac747e28542699a951517aa9a6945af506cd1f2e1b53a576c17b6cc11" +dependencies = [ + "bytes 1.1.0", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13d5ff830006f7646652e057693569bfe0d51760c0085a071769d142a205111b" +dependencies = [ + "bytes 0.5.6", + "http", +] + +[[package]] +name = "httparse" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acd94fdbe1d4ff688b67b04eee2e17bd50995534a61539e45adfefb45e5e5503" + +[[package]] +name = "httpdate" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "494b4d60369511e7dea41cf646832512a94e542f68bb9c49e54518e0f468eb47" + +[[package]] +name = "hyper" +version = "0.13.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a6f157065790a3ed2f88679250419b5cdd96e714a0d65f7797fd337186e96bb" +dependencies = [ + "bytes 0.5.6", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project", + "socket2", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "indexmap" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc633605454125dec4b66843673f01c7df2b89479b32e0ed634e43a91cff62a5" +dependencies = [ + "autocfg", + "hashbrown", +] + +[[package]] +name = "iovec" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" +dependencies = [ + "libc", +] + +[[package]] +name = "itoa" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" + +[[package]] +name = "kernel32-sys" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" +dependencies = [ + "winapi 0.2.8", + "winapi-build", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "libc" +version = "0.2.102" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2a5ac8f984bfcf3a823267e5fde638acc3325f6496633a5da6bb6eb2171e103" + +[[package]] +name = "log" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "memchr" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a" + +[[package]] +name = "mio" +version = "0.6.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4" +dependencies = [ + "cfg-if 0.1.10", + "fuchsia-zircon", + "fuchsia-zircon-sys", + "iovec", + "kernel32-sys", + "libc", + "log", + "miow", + "net2", + "slab", + "winapi 0.2.8", +] + +[[package]] +name = "mio-uds" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afcb699eb26d4332647cc848492bbc15eafb26f08d0304550d5aa1f612e066f0" +dependencies = [ + "iovec", + "libc", + "mio", +] + +[[package]] +name = "miow" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d" +dependencies = [ + "kernel32-sys", + "net2", + "winapi 0.2.8", + "ws2_32-sys", +] + +[[package]] +name = "native-tls" +version = "0.2.3" +source = "git+https://github.com/Goirad/rust-native-tls.git?branch=pkcs8-squashed#255dd5493b446755a9e40be3a4638afedfe67b03" +dependencies = [ + "lazy_static", + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "net2" +version = "0.2.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "391630d12b68002ae1e25e8f974306474966550ad82dac6886fb8910c19568ae" +dependencies = [ + "cfg-if 0.1.10", + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "num-traits" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" +dependencies = [ + "autocfg", +] + +[[package]] +name = "once_cell" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56" + +[[package]] +name = "openssl" +version = "0.10.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d9facdb76fec0b73c406f125d44d86fdad818d66fef0531eec9233ca425ff4a" +dependencies = [ + "bitflags", + "cfg-if 1.0.0", + "foreign-types", + "libc", + "once_cell", + "openssl-sys", +] + +[[package]] +name = "openssl-probe" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a" + +[[package]] +name = "openssl-src" +version = "111.16.0+1.1.1l" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ab2173f69416cf3ec12debb5823d244127d23a9b127d5a5189aa97c5fa2859f" +dependencies = [ + "cc", +] + +[[package]] +name = "openssl-sys" +version = "0.9.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1996d2d305e561b70d1ee0c53f1542833f4e1ac6ce9a6708b6ff2738ca67dc82" +dependencies = [ + "autocfg", + "cc", + "libc", + "openssl-src", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "pin-project" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "576bc800220cc65dac09e99e97b08b358cfab6e17078de8dc5fee223bd2d0c08" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e8fe8163d14ce7f0cdac2e040116f22eac817edabff0be91e8aff7e9accf389" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "pin-project-lite" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777" + +[[package]] +name = "pin-project-lite" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d31d11c69a6b52a174b42bdc0c30e5e11670f90788b2c471c31c1d17d449443" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkg-config" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c" + +[[package]] +name = "ppv-lite86" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857" + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9f5105d4fdaab20335ca9565e106a5d9b82b6219b5ba735731124ac6711d23d" +dependencies = [ + "unicode-xid", +] + +[[package]] +name = "quote" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", + "rand_hc", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" +dependencies = [ + "getrandom", +] + +[[package]] +name = "rand_hc" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d51e9f596de227fda2ea6c84607f5558e196eeaf43c986b724ba4fb8fdf497e7" +dependencies = [ + "rand_core", +] + +[[package]] +name = "redox_syscall" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff" +dependencies = [ + "bitflags", +] + +[[package]] +name = "remove_dir_all" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "schannel" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75" +dependencies = [ + "lazy_static", + "winapi 0.3.9", +] + +[[package]] +name = "security-framework" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ef2429d7cefe5fd28bd1d2ed41c944547d4ff84776f5935b456da44593a16df" +dependencies = [ + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e31493fc37615debb8c5090a7aeb4a9730bc61e77ab10b9af59f1a202284f895" +dependencies = [ + "core-foundation-sys", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" +dependencies = [ + "libc", +] + +[[package]] +name = "simple_logger" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7de33c687404ec3045d4a0d437580455257c0436f858d702f244e7d652f9f07" +dependencies = [ + "atty", + "log", + "winapi 0.3.9", +] + +[[package]] +name = "slab" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c307a32c1c5c437f38c7fd45d753050587732ba8628319fbdf12a7e289ccc590" + +[[package]] +name = "socket2" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "122e570113d28d773067fab24266b66753f6ea915758651696b6e35e49f88d6e" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "strsim" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" + +[[package]] +name = "structopt" +version = "0.3.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf9d950ef167e25e0bdb073cf1d68e9ad2795ac826f2f3f59647817cf23c0bfa" +dependencies = [ + "clap", + "lazy_static", + "structopt-derive", +] + +[[package]] +name = "structopt-derive" +version = "0.4.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "134d838a2c9943ac3125cf6df165eda53493451b719f3255b2a26b85f772d0ba" +dependencies = [ + "heck", + "proc-macro-error", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "syn" +version = "1.0.76" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6f107db402c2c2055242dbf4d2af0e69197202e9faacbef9571bbe47f5a1b84" +dependencies = [ + "proc-macro2", + "quote", + "unicode-xid", +] + +[[package]] +name = "tempfile" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "rand", + "redox_syscall", + "remove_dir_all", + "winapi 0.3.9", +] + +[[package]] +name = "textwrap" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" +dependencies = [ + "unicode-width", +] + +[[package]] +name = "tokio" +version = "0.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6703a273949a90131b290be1fe7b039d0fc884aa1935860dfcbe056f28cd8092" +dependencies = [ + "bytes 0.5.6", + "fnv", + "futures-core", + "iovec", + "lazy_static", + "libc", + "memchr", + "mio", + "mio-uds", + "pin-project-lite 0.1.12", + "signal-hook-registry", + "slab", + "tokio-macros", + "winapi 0.3.9", +] + +[[package]] +name = "tokio-macros" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e44da00bfc73a25f814cd8d7e57a68a5c31b74b3152a0a1d1f590c97ed06265a" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tokio-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a70f4fcd7b3b24fb194f837560168208f669ca8cb70d0c4b862944452396343" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be8242891f2b6cbef26a2d7e8605133c2c554cd35b3e4948ea892d6d68436499" +dependencies = [ + "bytes 0.5.6", + "futures-core", + "futures-sink", + "log", + "pin-project-lite 0.1.12", + "tokio", +] + +[[package]] +name = "tower-service" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" + +[[package]] +name = "tracing" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84f96e095c0c82419687c20ddf5cb3eadb61f4e1405923c9dc8e53a1adacbda8" +dependencies = [ + "cfg-if 1.0.0", + "log", + "pin-project-lite 0.2.7", + "tracing-core", +] + +[[package]] +name = "tracing-core" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46125608c26121c81b0c6d693eab5a420e416da7e43c426d2e8f7df8da8a3acf" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "tracing-futures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" +dependencies = [ + "pin-project", + "tracing", +] + +[[package]] +name = "try-lock" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" + +[[package]] +name = "unbound-telemetry" +version = "0.1.0" +dependencies = [ + "approx", + "async-trait", + "claim", + "domain", + "dtoa", + "hyper", + "itoa", + "libc", + "log", + "native-tls", + "openssl", + "simple_logger", + "structopt", + "tokio", + "tokio-tls", +] + +[[package]] +name = "unicode-segmentation" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b" + +[[package]] +name = "unicode-width" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973" + +[[package]] +name = "unicode-xid" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "vec_map" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" + +[[package]] +name = "version_check" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe" + +[[package]] +name = "want" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" +dependencies = [ + "log", + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.10.2+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" + +[[package]] +name = "winapi" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-build" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "ws2_32-sys" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" +dependencies = [ + "winapi 0.2.8", + "winapi-build", +] diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/alertmanager.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/alertmanager.nix new file mode 100644 index 000000000000..ba1c35ee294d --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/alertmanager.nix @@ -0,0 +1,49 @@ +{ lib +, go +, buildGoModule +, fetchFromGitHub +, installShellFiles +}: + +buildGoModule rec { + pname = "alertmanager"; + version = "0.27.0"; + rev = "v${version}"; + + src = fetchFromGitHub { + inherit rev; + owner = "prometheus"; + repo = "alertmanager"; + hash = "sha256-soE2D/PLesV1+Kif9myB54a9zIFIa94i0BrmywJPTbI="; + }; + + vendorHash = "sha256-zkHIdEdAy44iV2F929NB3ISuUbxdecaeZcsNQQGd06E="; + + subPackages = [ "cmd/alertmanager" "cmd/amtool" ]; + + ldflags = let t = "github.com/prometheus/common/version"; in [ + "-X ${t}.Version=${version}" + "-X ${t}.Revision=${src.rev}" + "-X ${t}.Branch=unknown" + "-X ${t}.BuildUser=nix@nixpkgs" + "-X ${t}.BuildDate=unknown" + "-X ${t}.GoVersion=${lib.getVersion go}" + ]; + + nativeBuildInputs = [ installShellFiles ]; + + postInstall = '' + $out/bin/amtool --completion-script-bash > amtool.bash + installShellCompletion amtool.bash + $out/bin/amtool --completion-script-zsh > amtool.zsh + installShellCompletion amtool.zsh + ''; + + meta = with lib; { + description = "Alert dispatcher for the Prometheus monitoring system"; + homepage = "https://github.com/prometheus/alertmanager"; + changelog = "https://github.com/prometheus/alertmanager/blob/v${version}/CHANGELOG.md"; + license = licenses.asl20; + maintainers = with maintainers; [ benley fpletz globin Frostman ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/apcupsd-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/apcupsd-exporter.nix new file mode 100644 index 000000000000..5bb98203fa2d --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/apcupsd-exporter.nix @@ -0,0 +1,24 @@ +{ lib, buildGoModule, fetchFromGitHub, nixosTests }: + +buildGoModule rec { + pname = "apcupsd-exporter"; + version = "0.3.0"; + + src = fetchFromGitHub { + owner = "mdlayher"; + repo = "apcupsd_exporter"; + rev = "v${version}"; + sha256 = "sha256-c0LsUqpJbmWQmbmSGdEy7Bbk20my6iWNLeqtU5BjYlw="; + }; + + vendorHash = "sha256-bvLwHLviIAGmxYY1O0wFDWAMginEUklicrbjIbbPuUw="; + + passthru.tests = { inherit (nixosTests.prometheus-exporters) apcupsd; }; + + meta = with lib; { + description = "Provides a Prometheus exporter for the apcupsd Network Information Server (NIS)"; + homepage = "https://github.com/mdlayher/apcupsd_exporter"; + license = licenses.mit; + maintainers = with maintainers; [ _1000101 mdlayher ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/artifactory-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/artifactory-exporter.nix new file mode 100644 index 000000000000..f77257745872 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/artifactory-exporter.nix @@ -0,0 +1,41 @@ +{ lib +, buildGoModule +, fetchFromGitHub +, nixosTests +}: + +buildGoModule rec { + pname = "artifactory_exporter"; + version = "1.13.2"; + rev = "v${version}"; + + src = fetchFromGitHub { + owner = "peimanja"; + repo = pname; + rev = rev; + hash = "sha256-m5ToXry1LgjWSTU9bjOtsgfVF8wKiKuTwCIC7jNGSKY="; + }; + + vendorHash = "sha256-ikWxTHmqHFWAReKMf6LFza/bhkcfxa4euXUixKPvcpQ="; + + subPackages = [ "." ]; + + ldflags = [ + "-s" + "-w" + "-X github.com/prometheus/common/version.Version=${version}" + "-X github.com/prometheus/common/version.Revision=${rev}" + "-X github.com/prometheus/common/version.Branch=master" + "-X github.com/prometheus/common/version.BuildDate=19700101-00:00:00" + ]; + + passthru.tests = { inherit (nixosTests.prometheus-exporters) artifactory; }; + + meta = with lib; { + description = "JFrog Artifactory Prometheus Exporter"; + homepage = "https://github.com/peimanja/artifactory_exporter"; + changelog = "https://github.com/peimanja/artifactory_exporter/releases/tag/v${version}"; + license = licenses.asl20; + maintainers = with maintainers; [ lbpdt ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/atlas-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/atlas-exporter.nix new file mode 100644 index 000000000000..ce40a93e66f8 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/atlas-exporter.nix @@ -0,0 +1,22 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "atlas-exporter"; + version = "1.0.4"; + + src = fetchFromGitHub { + owner = "czerwonk"; + repo = "atlas_exporter"; + rev = version; + sha256 = "sha256-vhUhWO7fQpUHT5nyxbT8AylgUqDNZRSb+EGRNGZJ14E="; + }; + + vendorHash = "sha256-tR+OHxj/97AixuAp0Kx9xQsKPAxpvF6hDha5BgMBha0="; + + meta = with lib; { + description = "Prometheus exporter for RIPE Atlas measurement results "; + homepage = "https://github.com/czerwonk/atlas_exporter"; + license = licenses.lgpl3; + maintainers = with maintainers; [ clerie ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/aws-s3-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/aws-s3-exporter.nix new file mode 100644 index 000000000000..dd0ea4ec5ec4 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/aws-s3-exporter.nix @@ -0,0 +1,24 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "aws-s3-exporter"; + version = "0.5.0"; + + src = fetchFromGitHub { + owner = "ribbybibby"; + repo = "s3_exporter"; + rev = "v${version}"; + sha256 = "sha256-dYkMCCAIlFDFOFUNJd4NvtAeJDTsHeJoH90b5pSGlQE="; + }; + + vendorHash = null; + + ldflags = [ "-s" "-w" ]; + + meta = with lib; { + description = "Exports Prometheus metrics about S3 buckets and objects"; + homepage = "https://github.com/ribbybibby/s3_exporter"; + license = licenses.asl20; + maintainers = [ maintainers.mmahut ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/bind-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/bind-exporter.nix new file mode 100644 index 000000000000..1ee84e5e703a --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/bind-exporter.nix @@ -0,0 +1,24 @@ +{ lib, buildGoModule, fetchFromGitHub, nixosTests }: + +buildGoModule rec { + pname = "bind_exporter"; + version = "0.7.0"; + + src = fetchFromGitHub { + rev = "v${version}"; + owner = "prometheus-community"; + repo = "bind_exporter"; + sha256 = "sha256-x/XGatlXCKo9cI92JzFItApsjuZAfZX+8IZRpy7PVUo="; + }; + + vendorHash = "sha256-f0ei/zotOj5ebURAOWUox/7J3jS2abQ5UgjninI9nRk="; + + passthru.tests = { inherit (nixosTests.prometheus-exporters) bind; }; + + meta = with lib; { + description = "Prometheus exporter for bind9 server"; + homepage = "https://github.com/digitalocean/bind_exporter"; + license = licenses.asl20; + maintainers = with maintainers; [ rtreffer ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/bird-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/bird-exporter.nix new file mode 100644 index 000000000000..f61e400d860f --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/bird-exporter.nix @@ -0,0 +1,24 @@ +{ lib, buildGoModule, fetchFromGitHub, nixosTests }: + +buildGoModule rec { + pname = "bird-exporter"; + version = "1.4.3"; + + src = fetchFromGitHub { + owner = "czerwonk"; + repo = "bird_exporter"; + rev = version; + sha256 = "sha256-aClwJ+J83iuZbfNP+Y1vKEjBULD5wh/R3TMceCccacc="; + }; + + vendorHash = "sha256-0EXRpehdpOYpq6H9udmNnQ24EucvAcPUKOlFSAAewbE="; + + passthru.tests = { inherit (nixosTests.prometheus-exporters) bird; }; + + meta = with lib; { + description = "Prometheus exporter for the bird routing daemon"; + homepage = "https://github.com/czerwonk/bird_exporter"; + license = licenses.mit; + maintainers = with maintainers; [ lukegb ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/bitcoin-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/bitcoin-exporter.nix new file mode 100644 index 000000000000..f2d50fe85014 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/bitcoin-exporter.nix @@ -0,0 +1,42 @@ +{ lib, fetchFromGitHub, fetchpatch, python3Packages }: + +python3Packages.buildPythonApplication rec { + pname = "bitcoin-prometheus-exporter"; + version = "0.5.0"; + + format = "other"; + + src = fetchFromGitHub { + owner = "jvstein"; + repo = pname; + rev = "v${version}"; + sha256 = "0l0j6dyb0vflh386z3g8srysay5sf47g5rg2f5xrkckv86rjr115"; + }; + + patches = [ + # remove after update to new release + (fetchpatch { + name = "configurable-listening-address.patch"; + url = "https://patch-diff.githubusercontent.com/raw/jvstein/bitcoin-prometheus-exporter/pull/11.patch"; + sha256 = "0a2l8aqgprc1d5k8yg1gisn6imh9hzg6j0irid3pjvp5i5dcnhyq"; + }) + ]; + + propagatedBuildInputs = with python3Packages; [ prometheus-client bitcoinlib riprova ]; + + installPhase = '' + mkdir -p $out/bin + cp bitcoind-monitor.py $out/bin/ + + mkdir -p $out/share/${pname} + cp -r dashboard README.md $out/share/${pname}/ + ''; + + meta = with lib; { + description = "Prometheus exporter for Bitcoin Core nodes"; + homepage = "https://github.com/jvstein/bitcoin-prometheus-exporter"; + license = licenses.bsd3; + maintainers = with maintainers; [ mmilata ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/blackbox-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/blackbox-exporter.nix new file mode 100644 index 000000000000..8025cffca843 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/blackbox-exporter.nix @@ -0,0 +1,38 @@ +{ lib, buildGoModule, fetchFromGitHub, nixosTests }: + +buildGoModule rec { + pname = "blackbox_exporter"; + version = "0.24.0"; + rev = "v${version}"; + + src = fetchFromGitHub { + inherit rev; + owner = "prometheus"; + repo = "blackbox_exporter"; + sha256 = "sha256-eoXSBliHadRGPT6+K75p2tEjKHKXmLz4svE59yQAEuM="; + }; + + vendorHash = "sha256-yhgmJaWdYR5w5A8MVnHQS1yF6sTIMd1TOiesV4mc0Gs="; + + # dns-lookup is performed for the tests + doCheck = false; + + passthru.tests = { inherit (nixosTests.prometheus-exporters) blackbox; }; + + ldflags = [ + "-s" + "-w" + "-X github.com/prometheus/common/version.Version=${version}" + "-X github.com/prometheus/common/version.Revision=${rev}" + "-X github.com/prometheus/common/version.Branch=unknown" + "-X github.com/prometheus/common/version.BuildUser=nix@nixpkgs" + "-X github.com/prometheus/common/version.BuildDate=unknown" + ]; + + meta = with lib; { + description = "Blackbox probing of endpoints over HTTP, HTTPS, DNS, TCP and ICMP"; + homepage = "https://github.com/prometheus/blackbox_exporter"; + license = licenses.asl20; + maintainers = with maintainers; [ globin fpletz willibutz Frostman ma27 ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/cloudflare-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/cloudflare-exporter.nix new file mode 100644 index 000000000000..6d15188aaebe --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/cloudflare-exporter.nix @@ -0,0 +1,23 @@ +{ buildGoModule, fetchFromGitHub, lib }: + +buildGoModule rec { + pname = "cloudflare-exporter"; + version = "0.0.14"; + + src = fetchFromGitHub { + rev = version; + owner = "lablabs"; + repo = pname; + sha256 = "sha256-A7JnHx9yipTwv63287BqmGrJ3yQ21NhB1z7rrHe6Ok8="; + }; + + vendorHash = "sha256-B/+UTkoGAoJLMr+zdXXSC2CWGHx+Iu5E2qp4AA/nmHM="; + + meta = with lib; { + description = "Prometheus Cloudflare Exporter"; + homepage = "https://github.com/lablabs/cloudflare-exporter"; + license = licenses.asl20; + maintainers = with maintainers; [ bbigras ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/collectd-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/collectd-exporter.nix new file mode 100644 index 000000000000..1ff0ad38f47a --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/collectd-exporter.nix @@ -0,0 +1,26 @@ +{ lib, buildGoModule, fetchFromGitHub, nixosTests }: + +buildGoModule rec { + pname = "collectd-exporter"; + version = "0.6.0"; + + src = fetchFromGitHub { + owner = "prometheus"; + repo = "collectd_exporter"; + rev = "v${version}"; + sha256 = "sha256-8oibunEHPtNdbhVgF3CL6D/xE7bR8hee6+D2IJMzaqY="; + }; + + vendorHash = "sha256-fQO2fiotqv18xewXVyh6sA4zx5ZNUR6mCebYenryrKI="; + + ldflags = [ "-s" "-w" ]; + + passthru.tests = { inherit (nixosTests.prometheus-exporters) collectd; }; + + meta = with lib; { + description = "Relay server for exporting metrics from collectd to Prometheus"; + homepage = "https://github.com/prometheus/collectd_exporter"; + license = licenses.asl20; + maintainers = with maintainers; [ benley ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/consul-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/consul-exporter.nix new file mode 100644 index 000000000000..a365bda5202a --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/consul-exporter.nix @@ -0,0 +1,31 @@ +{ lib +, buildGoModule +, fetchFromGitHub +}: + +buildGoModule rec { + pname = "consul_exporter"; + version = "0.11.0"; + + src = fetchFromGitHub { + owner = "prometheus"; + repo = "consul_exporter"; + rev = "refs/tags/v${version}"; + hash = "sha256-3aPLpTV+xuotpBYmRDfU3ewRRlmf7VUdh/u9/SLQDeE="; + }; + + vendorHash = "sha256-fsST29HGwJVLVSoAr8tNukW81iJtpb/oypwp5cH7oLQ="; + + ldflags = [ + "-s" + "-w" + ]; + + meta = with lib; { + description = "Prometheus exporter for Consul metrics"; + homepage = "https://github.com/prometheus/consul_exporter"; + changelog = "https://github.com/prometheus/consul_exporter/releases/tag/v${version}"; + license = licenses.asl20; + maintainers = with maintainers; [ hectorj ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/dcgm-exporter/default.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/dcgm-exporter/default.nix new file mode 100644 index 000000000000..c995d4036ae0 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/dcgm-exporter/default.nix @@ -0,0 +1,69 @@ +{ lib +, buildGoModule +, fetchFromGitHub +, cudaPackages +, dcgm +, linuxPackages +}: +buildGoModule rec { + pname = "dcgm-exporter"; + + # The first portion of this version string corresponds to a compatible DCGM + # version. + version = "3.2.5-3.1.7"; # N.B: If you change this, update dcgm as well to the matching version. + + src = fetchFromGitHub { + owner = "NVIDIA"; + repo = pname; + rev = "refs/tags/${version}"; + hash = "sha256-+Hviq+iu1LBcy2VwmCX5xOq1I/zevfydesVlrVorGOI="; + }; + + # Upgrade to go 1.17 during the vendoring FOD build because it fails otherwise. + overrideModAttrs = _: { + preBuild = '' + substituteInPlace go.mod --replace 'go 1.16' 'go 1.17' + go mod tidy + ''; + postInstall = '' + cp go.mod "$out/go.mod" + ''; + }; + + CGO_LDFLAGS = "-ldcgm"; + + buildInputs = [ + dcgm + ]; + + # gonvml and go-dcgm do not work with ELF BIND_NOW hardening because not all + # symbols are available on startup. + hardeningDisable = [ "bindnow" ]; + + # Copy the modified go.mod we got from the vendoring process. + preBuild = '' + cp vendor/go.mod go.mod + ''; + + vendorHash = "sha256-Fjvx15e/psxoqoS6c6GhiQfe7g2aI40EmPR26xLhrzg="; + + nativeBuildInputs = [ + cudaPackages.autoAddOpenGLRunpathHook + ]; + + # Tests try to interact with running DCGM service. + doCheck = false; + + postFixup = '' + patchelf --add-needed libnvidia-ml.so "$out/bin/dcgm-exporter" + ''; + + meta = with lib; { + description = "NVIDIA GPU metrics exporter for Prometheus leveraging DCGM"; + homepage = "https://github.com/NVIDIA/dcgm-exporter"; + license = licenses.asl20; + maintainers = teams.deshaw.members; + mainProgram = "dcgm-exporter"; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/default.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/default.nix new file mode 100644 index 000000000000..b511faf42fb6 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/default.nix @@ -0,0 +1,134 @@ +{ stdenv +, lib +, go +, buildGoModule +, fetchFromGitHub +, fetchurl +, nixosTests +, enableAWS ? true +, enableAzure ? true +, enableConsul ? true +, enableDigitalOcean ? true +, enableDNS ? true +, enableEureka ? true +, enableGCE ? true +, enableHetzner ? true +, enableIONOS ? true +, enableKubernetes ? true +, enableLinode ? true +, enableMarathon ? true +, enableMoby ? true +, enableNomad ? true +, enableOpenstack ? true +, enableOVHCloud ? true +, enablePuppetDB ? true +, enableScaleway ? true +, enableTriton ? true +, enableUyuni ? true +, enableVultr ? true +, enableXDS ? true +, enableZookeeper ? true +}: + +let + version = "2.49.1"; + webUiStatic = fetchurl { + url = "https://github.com/prometheus/prometheus/releases/download/v${version}/prometheus-web-ui-${version}.tar.gz"; + hash = "sha256-cHMzu7/WquRvbCUlAs4U6PrLP4PAigdYOyNbvxNoeIA="; + }; +in +buildGoModule rec { + pname = "prometheus"; + inherit version; + + outputs = [ "out" "doc" "cli" ]; + + src = fetchFromGitHub { + owner = "prometheus"; + repo = "prometheus"; + rev = "v${version}"; + hash = "sha256-cqUyjRL+T7ARGcUWMCaeWMo7DR1gvPp08maNz9a3RG0="; + }; + + vendorHash = "sha256-fDT7YrnUfS93yseo+1mLrSGPBewm7CpcHPCz1kxM6Uo="; + + excludedPackages = [ "documentation/prometheus-mixin" ]; + + postPatch = '' + tar -C web/ui -xzf ${webUiStatic} + + patchShebangs scripts + + # Enable only select service discovery to shrink binaries. + ( + true # prevent bash syntax error when all plugins are disabled + ${lib.optionalString enableAWS "echo - github.com/prometheus/prometheus/discovery/aws"} + ${lib.optionalString enableAzure "echo - github.com/prometheus/prometheus/discovery/azure"} + ${lib.optionalString enableConsul "echo - github.com/prometheus/prometheus/discovery/consul"} + ${lib.optionalString enableDigitalOcean "echo - github.com/prometheus/prometheus/discovery/digitalocean"} + ${lib.optionalString enableDNS "echo - github.com/prometheus/prometheus/discovery/dns"} + ${lib.optionalString enableEureka "echo - github.com/prometheus/prometheus/discovery/eureka"} + ${lib.optionalString enableGCE "echo - github.com/prometheus/prometheus/discovery/gce"} + ${lib.optionalString enableHetzner "echo - github.com/prometheus/prometheus/discovery/hetzner"} + ${lib.optionalString enableIONOS "echo - github.com/prometheus/prometheus/discovery/ionos"} + ${lib.optionalString enableKubernetes "echo - github.com/prometheus/prometheus/discovery/kubernetes"} + ${lib.optionalString enableLinode "echo - github.com/prometheus/prometheus/discovery/linode"} + ${lib.optionalString enableMarathon "echo - github.com/prometheus/prometheus/discovery/marathon"} + ${lib.optionalString enableMoby "echo - github.com/prometheus/prometheus/discovery/moby"} + ${lib.optionalString enableNomad "echo - github.com/prometheus/prometheus/discovery/nomad"} + ${lib.optionalString enableOpenstack "echo - github.com/prometheus/prometheus/discovery/openstack"} + ${lib.optionalString enableOVHCloud "echo - github.com/prometheus/prometheus/discovery/ovhcloud"} + ${lib.optionalString enablePuppetDB "echo - github.com/prometheus/prometheus/discovery/puppetdb"} + ${lib.optionalString enableScaleway "echo - github.com/prometheus/prometheus/discovery/scaleway"} + ${lib.optionalString enableTriton "echo - github.com/prometheus/prometheus/discovery/triton"} + ${lib.optionalString enableUyuni "echo - github.com/prometheus/prometheus/discovery/uyuni"} + ${lib.optionalString enableVultr "echo - github.com/prometheus/prometheus/discovery/vultr"} + ${lib.optionalString enableXDS "echo - github.com/prometheus/prometheus/discovery/xds"} + ${lib.optionalString enableZookeeper "echo - github.com/prometheus/prometheus/discovery/zookeeper"} + ) > plugins.yml + ''; + + preBuild = '' + if [[ -d vendor ]]; then GOARCH= make -o assets assets-compress plugins; fi + ''; + + tags = [ "builtinassets" ]; + + ldflags = + let + t = "github.com/prometheus/common/version"; + in + [ + "-s" + "-w" + "-X ${t}.Version=${version}" + "-X ${t}.Revision=unknown" + "-X ${t}.Branch=unknown" + "-X ${t}.BuildUser=nix@nixpkgs" + "-X ${t}.BuildDate=unknown" + "-X ${t}.GoVersion=${lib.getVersion go}" + ]; + + preInstall = '' + mkdir -p "$out/share/doc/prometheus" "$out/etc/prometheus" + cp -a $src/documentation/* $out/share/doc/prometheus + cp -a $src/console_libraries $src/consoles $out/etc/prometheus + ''; + + postInstall = '' + moveToOutput bin/promtool $cli + ''; + + # https://hydra.nixos.org/build/130673870/nixlog/1 + # Test mock data uses 64 bit data without an explicit (u)int64 + doCheck = !(stdenv.isDarwin || stdenv.hostPlatform.parsed.cpu.bits < 64); + + passthru.tests = { inherit (nixosTests) prometheus; }; + + meta = with lib; { + description = "Service monitoring system and time series database"; + homepage = "https://prometheus.io"; + license = licenses.asl20; + maintainers = with maintainers; [ fpletz willibutz Frostman ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/dmarc-metrics-exporter/default.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/dmarc-metrics-exporter/default.nix new file mode 100644 index 000000000000..2b2c5354ca1c --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/dmarc-metrics-exporter/default.nix @@ -0,0 +1,61 @@ +{ lib +, python3 +, fetchFromGitHub +}: + +python3.pkgs.buildPythonApplication rec { + pname = "dmarc-metrics-exporter"; + version = "1.0.0"; + + disabled = python3.pythonOlder "3.8"; + + pyproject = true; + + src = fetchFromGitHub { + owner = "jgosmann"; + repo = "dmarc-metrics-exporter"; + rev = "refs/tags/v${version}"; + hash = "sha256-pT2GGoNPCHBZZbbBE93cJjgogBNcdpvLmrVakNMu6tY="; + }; + + pythonRelaxDeps = true; + + nativeBuildInputs = with python3.pkgs; [ + poetry-core + pythonRelaxDepsHook + ]; + + propagatedBuildInputs = with python3.pkgs; [ + bite-parser + dataclasses-serialization + prometheus-client + structlog + uvicorn + xsdata + ] + ++ uvicorn.optional-dependencies.standard; + + nativeCheckInputs = with python3.pkgs; [ + aiohttp + pytest-asyncio + pytestCheckHook + requests + ]; + + disabledTestPaths = [ + # require networking + "dmarc_metrics_exporter/tests/test_e2e.py" + "dmarc_metrics_exporter/tests/test_imap_client.py" + "dmarc_metrics_exporter/tests/test_imap_queue.py" + ]; + + pythonImportsCheck = [ "dmarc_metrics_exporter" ]; + + meta = { + description = "Export Prometheus metrics from DMARC reports"; + homepage = "https://github.com/jgosmann/dmarc-metrics-exporter"; + changelog = "https://github.com/jgosmann/dmarc-metrics-exporter/blob/v${version}/CHANGELOG.rst"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ ma27 ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/dnsmasq-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/dnsmasq-exporter.nix new file mode 100644 index 000000000000..f6af24264fe9 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/dnsmasq-exporter.nix @@ -0,0 +1,26 @@ +{ lib, buildGoModule, fetchFromGitHub, nixosTests }: + +buildGoModule rec { + pname = "dnsmasq_exporter"; + version = "0.2.0"; + + src = fetchFromGitHub { + owner = "google"; + repo = "dnsmasq_exporter"; + rev = "v${version}"; + hash = "sha256-8r5q5imI+MxnU7+TFqdIc+JRX0zZY4pmUoAGlFqs8cQ="; + }; + + vendorHash = "sha256-dEM0mn3JJl0M6ImWmkuvwBSfGWkhpVvZE7GtC1BQF7c="; + + doCheck = false; + + passthru.tests = { inherit (nixosTests.prometheus-exporters) dnsmasq; }; + + meta = with lib; { + inherit (src.meta) homepage; + description = "A dnsmasq exporter for Prometheus"; + license = licenses.asl20; + maintainers = with maintainers; [ willibutz globin ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/domain-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/domain-exporter.nix new file mode 100644 index 000000000000..5f5ce702cebc --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/domain-exporter.nix @@ -0,0 +1,26 @@ +{ lib, buildGoModule, fetchFromGitHub, fetchpatch, nixosTests }: + +buildGoModule rec { + pname = "domain-exporter"; + version = "1.23.0"; + + src = fetchFromGitHub { + owner = "caarlos0"; + repo = "domain_exporter"; + rev = "v${version}"; + hash = "sha256-5GyDQkd8zXZ9TtauWfW9uW8xkgtEICFm6f4Q/jVqOBc="; + }; + + vendorHash = "sha256-EPpzrig40WXt5mo/vPTFjh+gYdFOlMknjNJHNChlQwk="; + + doCheck = false; # needs internet connection + + passthru.tests = { inherit (nixosTests.prometheus-exporters) domain; }; + + meta = with lib; { + homepage = "https://github.com/caarlos0/domain_exporter"; + description = "Exports the expiration time of your domains as prometheus metrics"; + license = licenses.mit; + maintainers = with maintainers; [ mmilata prusnak peterhoeg caarlos0 ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/dovecot-exporter-deps.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/dovecot-exporter-deps.nix new file mode 100644 index 000000000000..d94aad821485 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/dovecot-exporter-deps.nix @@ -0,0 +1,102 @@ +# This file was generated by https://github.com/kamilchm/go2nix v1.2.1 +[ + { + goPackagePath = "github.com/alecthomas/template"; + fetch = { + type = "git"; + url = "https://github.com/alecthomas/template"; + rev = "a0175ee3bccc567396460bf5acd36800cb10c49c"; + sha256 = "0qjgvvh26vk1cyfq9fadyhfgdj36f1iapbmr5xp6zqipldz8ffxj"; + }; + } + { + goPackagePath = "github.com/alecthomas/units"; + fetch = { + type = "git"; + url = "https://github.com/alecthomas/units"; + rev = "2efee857e7cfd4f3d0138cc3cbb1b4966962b93a"; + sha256 = "1j65b91qb9sbrml9cpabfrcf07wmgzzghrl7809hjjhrmbzri5bl"; + }; + } + { + goPackagePath = "github.com/beorn7/perks"; + fetch = { + type = "git"; + url = "https://github.com/beorn7/perks"; + rev = "3a771d992973f24aa725d07868b467d1ddfceafb"; + sha256 = "1l2lns4f5jabp61201sh88zf3b0q793w4zdgp9nll7mmfcxxjif3"; + }; + } + { + goPackagePath = "github.com/gogo/protobuf"; + fetch = { + type = "git"; + url = "https://github.com/gogo/protobuf"; + rev = "4aa4cc277ae58d2fab6cfe51dd17df5dceaf457d"; + sha256 = "009z6rpivyakgsxs0zkm94c9i7l65hcw2ljvah94wq3y6v6j47gs"; + }; + } + { + goPackagePath = "github.com/golang/protobuf"; + fetch = { + type = "git"; + url = "https://github.com/golang/protobuf"; + rev = "0f2620f554cf5c8e281a2eb655a035f5a0f6dc90"; + sha256 = "0lxngq1a8cnsy6dlr6gi8pjv3fir2wiw76qh075pa9g02h7ywhv3"; + }; + } + { + goPackagePath = "github.com/matttproud/golang_protobuf_extensions"; + fetch = { + type = "git"; + url = "https://github.com/matttproud/golang_protobuf_extensions"; + rev = "c12348ce28de40eed0136aa2b644d0ee0650e56c"; + sha256 = "1d0c1isd2lk9pnfq2nk0aih356j30k3h1gi2w0ixsivi5csl7jya"; + }; + } + { + goPackagePath = "github.com/prometheus/client_golang"; + fetch = { + type = "git"; + url = "https://github.com/prometheus/client_golang"; + rev = "b5bfa0eb2c8d46bd91dc58271e973c5f0bbebcfa"; + sha256 = "1msxzkdgi0ing4ddmp0s4qrf267n6ylafw9mbz5yrr7spb1dgxgk"; + }; + } + { + goPackagePath = "github.com/prometheus/client_model"; + fetch = { + type = "git"; + url = "https://github.com/prometheus/client_model"; + rev = "5c3871d89910bfb32f5fcab2aa4b9ec68e65a99f"; + sha256 = "04psf81l9fjcwascsys428v03fx4fi894h7fhrj2vvcz723q57k0"; + }; + } + { + goPackagePath = "github.com/prometheus/common"; + fetch = { + type = "git"; + url = "https://github.com/prometheus/common"; + rev = "c7de2306084e37d54b8be01f3541a8464345e9a5"; + sha256 = "11dqfm2d0m4sjjgyrnayman96g59x2apmvvqby9qmww2qj2k83ig"; + }; + } + { + goPackagePath = "github.com/prometheus/procfs"; + fetch = { + type = "git"; + url = "https://github.com/prometheus/procfs"; + rev = "05ee40e3a273f7245e8777337fc7b46e533a9a92"; + sha256 = "0f6fnczxa42b9rys2h3l0m8fy3x5hrhaq707vq0lbx5fcylw8lis"; + }; + } + { + goPackagePath = "gopkg.in/alecthomas/kingpin.v2"; + fetch = { + type = "git"; + url = "https://gopkg.in/alecthomas/kingpin.v2"; + rev = "947dcec5ba9c011838740e680966fd7087a71d0d"; + sha256 = "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r"; + }; + } +] diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/dovecot-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/dovecot-exporter.nix new file mode 100644 index 000000000000..ff7156360a9c --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/dovecot-exporter.nix @@ -0,0 +1,26 @@ +{ lib, buildGoPackage, fetchFromGitHub, nixosTests }: + +buildGoPackage rec { + pname = "dovecot_exporter"; + version = "0.1.3"; + + goPackagePath = "github.com/kumina/dovecot_exporter"; + + src = fetchFromGitHub { + owner = "kumina"; + repo = "dovecot_exporter"; + rev = version; + sha256 = "1lnxnnm45fhcyv40arcvpiiibwdnxdwhkf8sbjpifx1wspvphcj9"; + }; + + goDeps = ./dovecot-exporter-deps.nix; + + passthru.tests = { inherit (nixosTests.prometheus-exporters) dovecot; }; + + meta = with lib; { + inherit (src.meta) homepage; + description = "Prometheus metrics exporter for Dovecot"; + license = licenses.asl20; + maintainers = with maintainers; [ willibutz globin ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/exportarr/default.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/exportarr/default.nix new file mode 100644 index 000000000000..821baf91417c --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/exportarr/default.nix @@ -0,0 +1,40 @@ +{ lib +, stdenv +, buildGoModule +, fetchFromGitHub +}: + +buildGoModule rec { + pname = "exportarr"; + version = "1.6.2"; + + src = fetchFromGitHub { + owner = "onedr0p"; + repo = "exportarr"; + rev = "v${version}"; + hash = "sha256-Eacu8NeAAQqztzVpBhW1UeKQU+FBEJcx5+mcaByQid8="; + }; + + vendorHash = "sha256-lizPm/3hxKt7ZxKkhbwsj1nL8bWmE90QqRGxTqMSMAw="; + + subPackages = [ "cmd/exportarr" ]; + + CGO_ENABLE = 0; + + ldflags = [ "-s" "-w" ]; + + tags = lib.optionals stdenv.isLinux [ "netgo" ]; + + preCheck = '' + # Run all tests. + unset subPackages + ''; + + meta = with lib; { + description = "AIO Prometheus Exporter for Sonarr, Radarr or Lidarr"; + homepage = "https://github.com/onedr0p/exportarr"; + changelog = "https://github.com/onedr0p/exportarr/releases/tag/${src.rev}"; + license = licenses.mit; + maintainers = with maintainers; [ azahi ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/fastly-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/fastly-exporter.nix new file mode 100644 index 000000000000..ba2d5217e344 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/fastly-exporter.nix @@ -0,0 +1,31 @@ +{ lib +, buildGoModule +, fetchFromGitHub +, nixosTests +}: + +buildGoModule rec { + pname = "fastly-exporter"; + version = "7.6.1"; + + src = fetchFromGitHub { + owner = "fastly"; + repo = "fastly-exporter"; + rev = "v${version}"; + hash = "sha256-JUbjWAJ70iq0RCr6U2thbtZ3nmCic9wGtSf2ArRy4uA="; + }; + + vendorHash = "sha256-lEaMhJL/sKNOXx0W+QHMG4QUUE6Pc4AqulhgyCMQQNY="; + + passthru.tests = { + inherit (nixosTests.prometheus-exporters) fastly; + }; + + meta = with lib; { + description = "Prometheus exporter for the Fastly Real-time Analytics API"; + homepage = "https://github.com/fastly/fastly-exporter"; + license = licenses.asl20; + maintainers = teams.deshaw.members; + mainProgram = "fastly-exporter"; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/flow-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/flow-exporter.nix new file mode 100644 index 000000000000..1b9f05dae3e2 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/flow-exporter.nix @@ -0,0 +1,23 @@ +{ buildGoModule, fetchFromGitHub, lib }: + +buildGoModule rec { + pname = "flow-exporter"; + version = "1.1.1"; + + src = fetchFromGitHub { + rev = "v${version}"; + owner = "neptune-networks"; + repo = pname; + sha256 = "sha256-6FqupoYWRvex7XhM7ly8f7ICnuS9JvCRIVEBIJe+64k="; + }; + + vendorHash = "sha256-2raOUOPiMUMydIsfSsnwUAAiM7WyMio1NgL1EoADr2s="; + + meta = with lib; { + description = "Export network flows from kafka to Prometheus"; + homepage = "https://github.com/neptune-networks/flow-exporter"; + license = licenses.mit; + maintainers = with maintainers; [ kloenk ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/fritzbox-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/fritzbox-exporter.nix new file mode 100644 index 000000000000..99d306f9710d --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/fritzbox-exporter.nix @@ -0,0 +1,26 @@ +{ lib, buildGoModule, fetchFromGitHub, nixosTests }: + +buildGoModule rec { + pname = "fritzbox-exporter"; + version = "unstable-2021-04-13"; + + src = fetchFromGitHub { + rev = "fd36539bd7db191b3734e17934b5f1e78e4e9829"; + owner = "mxschmitt"; + repo = "fritzbox_exporter"; + hash = "sha256-NtxgOGoFZjvNCn+alZF9Ngen4Z0nllR/NTgY5ixrL3E="; + }; + + vendorHash = "sha256-VhQAEVxRJjIzFP67LUKhfGxdUbTQB7UCK8/JKwpoy0w="; + + subPackages = [ "cmd/exporter" ]; + + passthru.tests = { inherit (nixosTests.prometheus-exporters) fritzbox; }; + + meta = with lib; { + description = "Prometheus Exporter for FRITZ!Box (TR64 and UPnP)"; + homepage = "https://github.com/mxschmitt/fritzbox_exporter"; + license = licenses.asl20; + maintainers = with maintainers; [ bachp flokli sbruder ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/gitlab-ci-pipelines-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/gitlab-ci-pipelines-exporter.nix new file mode 100644 index 000000000000..ddcc080983df --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/gitlab-ci-pipelines-exporter.nix @@ -0,0 +1,29 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "gitlab-ci-pipelines-exporter"; + version = "0.5.6"; + + src = fetchFromGitHub { + owner = "mvisonneau"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-SbFaB808Xa7XvHR8ruu9wADVPUVwe5ogA+L+PSYb7kQ="; + }; + + subPackages = [ "cmd/${pname}" ]; + + ldflags = [ + "-X main.version=v${version}" + ]; + + vendorHash = "sha256-qZ9Ph8YZBBGS3dFlk3zTynU9WuRUHl2fVSPtd7hUB8E="; + doCheck = true; + + meta = with lib; { + description = "Prometheus / OpenMetrics exporter for GitLab CI pipelines insights"; + homepage = "https://github.com/mvisonneau/gitlab-ci-pipelines-exporter"; + license = licenses.asl20; + maintainers = with maintainers; [ mmahut mvisonneau ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/graphite-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/graphite-exporter.nix new file mode 100644 index 000000000000..3c27d018d781 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/graphite-exporter.nix @@ -0,0 +1,36 @@ +{ lib, buildGoModule, fetchFromGitHub, nixosTests }: + +buildGoModule rec { + pname = "graphite-exporter"; + version = "0.15.0"; + + src = fetchFromGitHub { + owner = "prometheus"; + repo = "graphite_exporter"; + rev = "v${version}"; + hash = "sha256-2u8grG5n0XkBS6zNxYrPyL+HP5/jEe/bXLt/1l759o4="; + }; + + vendorHash = "sha256-wt2eDCNZAss3zSqvXeKTlsrPfj8pMXKWa3Yb33uuW0M="; + + preCheck = let + skippedTests = [ + "TestBacktracking" + "TestInconsistentLabelsE2E" + "TestIssue111" + "TestIssue61" + "TestIssue90" + ]; + in '' + buildFlagsArray+=("-run" "[^(${builtins.concatStringsSep "|" skippedTests})]") + ''; + + passthru.tests = { inherit (nixosTests.prometheus-exporters) graphite; }; + + meta = { + description = "An exporter for metrics exported in the Graphite plaintext protocol"; + homepage = "https://github.com/prometheus/graphite_exporter"; + license = lib.licenses.asl20; + maintainers = [ lib.maintainers.misterio77 ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/haproxy-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/haproxy-exporter.nix new file mode 100644 index 000000000000..aa558bc8c9fd --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/haproxy-exporter.nix @@ -0,0 +1,24 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "haproxy_exporter"; + version = "0.15.0"; + + src = fetchFromGitHub { + owner = "prometheus"; + repo = "haproxy_exporter"; + rev = "v${version}"; + sha256 = "sha256-hpZnMvHAAEbvzASK3OgfG34AhPkCdRM7eOm15PRemkA="; + }; + + vendorHash = "sha256-s9UVtV8N2SJ1ik864P6p2hPXJ2jstFY/XnWt9fuCDo0="; + + ldflags = [ "-s" "-w" ]; + + meta = with lib; { + description = "HAProxy Exporter for the Prometheus monitoring system"; + homepage = "https://github.com/prometheus/haproxy_exporter"; + license = licenses.asl20; + maintainers = with maintainers; [ benley ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/idrac-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/idrac-exporter.nix new file mode 100644 index 000000000000..3c1a0066be8a --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/idrac-exporter.nix @@ -0,0 +1,30 @@ +{ lib, buildGoModule, fetchFromGitHub, nixosTests }: + +buildGoModule rec { + pname = "idrac_exporter"; + version = "unstable-2023-06-29"; + + src = fetchFromGitHub { + owner = "mrlhansen"; + repo = "idrac_exporter"; + rev = "3b311e0e6d602fb0938267287f425f341fbf11da"; + sha256 = "sha256-N8wSjQE25TCXg/+JTsvQk3fjTBgfXTiSGHwZWFDmFKc="; + }; + + vendorHash = "sha256-iNV4VrdQONq7LXwAc6AaUROHy8TmmloUAL8EmuPtF/o="; + + patches = [ ./idrac-exporter/config-from-environment.patch ]; + + ldflags = [ "-s" "-w" ]; + + doCheck = true; + + passthru.tests = { inherit (nixosTests.prometheus-exporters) idrac; }; + + meta = with lib; { + inherit (src.meta) homepage; + description = "Simple iDRAC exporter for Prometheus"; + license = licenses.mit; + maintainers = with maintainers; [ codec ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/idrac-exporter/config-from-environment.patch b/nixpkgs/pkgs/servers/monitoring/prometheus/idrac-exporter/config-from-environment.patch new file mode 100644 index 000000000000..e3aa42480242 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/idrac-exporter/config-from-environment.patch @@ -0,0 +1,100 @@ +diff --git a/internal/config/config.go b/internal/config/config.go +index ba8f066..1c801cd 100644 +--- a/internal/config/config.go ++++ b/internal/config/config.go +@@ -2,8 +2,11 @@ package config + + import ( + "encoding/base64" ++ "fmt" + "os" ++ "strconv" + "sync" ++ + "github.com/mrlhansen/idrac_exporter/internal/logging" + "gopkg.in/yaml.v2" + ) +@@ -17,9 +20,9 @@ type HostConfig struct { + + type RootConfig struct { + mutex sync.Mutex +- Address string `yaml:"address"` +- Port uint `yaml:"port"` +- MetricsPrefix string `yaml:"metrics_prefix"` ++ Address string `yaml:"address"` ++ Port uint `yaml:"port"` ++ MetricsPrefix string `yaml:"metrics_prefix"` + Collect struct { + System bool `yaml:"system"` + Sensors bool `yaml:"sensors"` +@@ -28,9 +31,29 @@ type RootConfig struct { + Storage bool `yaml:"storage"` + Memory bool `yaml:"memory"` + } `yaml:"metrics"` +- Timeout uint `yaml:"timeout"` +- Retries uint `yaml:"retries"` +- Hosts map[string]*HostConfig `yaml:"hosts"` ++ Timeout uint `yaml:"timeout"` ++ Retries uint `yaml:"retries"` ++ Hosts map[string]*HostConfig `yaml:"hosts"` ++} ++ ++func getEnv(envvar string, defvalue string) string { ++ value := os.Getenv(envvar) ++ if len(value) == 0 { ++ return defvalue ++ } ++ return value ++} ++ ++func getEnvUint(envvar string, defvalue uint) uint { ++ value, err := strconv.Atoi(getEnv(envvar, fmt.Sprint(defvalue))) ++ if err != nil { ++ logging.Fatalf("Failed parse integer value: %s", err) ++ } ++ if value == 0 { ++ return defvalue ++ } ++ ++ return uint(value) + } + + func (config *RootConfig) GetHostCfg(target string) *HostConfig { +@@ -70,29 +93,29 @@ func ReadConfigFile(fileName string) { + } + + if Config.Address == "" { +- Config.Address = "0.0.0.0" ++ Config.Address = getEnv("IDRAC_EXPORTER_LISTEN_ADDRESS", "0.0.0.0") + } + + if Config.Port == 0 { +- Config.Port = 9348 ++ Config.Port = getEnvUint("IDRAC_EXPORTER_LISTEN_PORT", 9348) + } + + if Config.Timeout == 0 { +- Config.Timeout = 10 ++ Config.Timeout = getEnvUint("IDRAC_EXPORTER_TIMEOUT", 10) + } + + if Config.Retries == 0 { +- Config.Retries = 1 ++ Config.Retries = getEnvUint("IDRAC_EXPORTER_RETRIES", 1) ++ } ++ ++ if Config.MetricsPrefix == "" { ++ Config.MetricsPrefix = getEnv("IDRAC_EXPORTER_PREFIX", "idrac") + } + + if len(Config.Hosts) == 0 { + parseError("missing section", "hosts") + } + +- if Config.MetricsPrefix == "" { +- Config.MetricsPrefix = "idrac" +- } +- + for k, v := range Config.Hosts { + if v.Username == "" { + parseError("missing username for host", k) diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/imap-mailstat-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/imap-mailstat-exporter.nix new file mode 100644 index 000000000000..e603c2a8811d --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/imap-mailstat-exporter.nix @@ -0,0 +1,29 @@ +{ lib +, buildGoModule +, fetchFromGitHub +, installShellFiles +}: + +buildGoModule rec { + pname = "imap-mailstat-exporter"; + version = "0.0.1"; + + src = fetchFromGitHub { + owner = "bt909"; + repo = "imap-mailstat-exporter"; + rev = "refs/tags/v${version}"; + hash = "sha256-aR/94C9SI+FPs3zg3bpexmgGYrhxghyHwpXj25x0yuw="; + }; + + vendorHash = "sha256-M5Ho4CiO5DC6mWzenXEo2pu0WLHj5S8AV3oEFwD31Sw="; + + nativeBuildInputs = [ installShellFiles ]; + + meta = with lib; { + description = "Export Prometheus-style metrics about how many emails you have in your INBOX and in additional configured folders"; + homepage = "https://github.com/bt909/imap-mailstat-exporter"; + license = licenses.mit; + maintainers = with maintainers; [ raboof ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/influxdb-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/influxdb-exporter.nix new file mode 100644 index 000000000000..07ef8febf3de --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/influxdb-exporter.nix @@ -0,0 +1,40 @@ +{ lib +, buildGoModule +, fetchFromGitHub +, nixosTests +}: + +buildGoModule rec { + pname = "influxdb_exporter"; + version = "0.11.5"; + rev = "v${version}"; + + src = fetchFromGitHub { + inherit rev; + owner = "prometheus"; + repo = "influxdb_exporter"; + hash = "sha256-5jKwUuM3JL0zzXFesXTUBNMkA7bhd37BhqxZ/RzG20Q="; + }; + + vendorHash = "sha256-VQ8MkzT8caPR1gpLXvNzWD5/pO0IKw8d+bT8gohAiJo="; + + ldflags = [ + "-s" + "-w" + "-X github.com/prometheus/common/version.Version=${version}" + "-X github.com/prometheus/common/version.Revision=${rev}" + "-X github.com/prometheus/common/version.Branch=unknown" + "-X github.com/prometheus/common/version.BuildUser=nix@nixpkgs" + "-X github.com/prometheus/common/version.BuildDate=unknown" + ]; + + passthru.tests = { inherit (nixosTests.prometheus-exporters) influxdb; }; + + meta = with lib; { + description = "Prometheus exporter that accepts InfluxDB metrics"; + homepage = "https://github.com/prometheus/influxdb_exporter"; + changelog = "https://github.com/prometheus/influxdb_exporter/blob/v${version}/CHANGELOG.md"; + license = licenses.asl20; + maintainers = with maintainers; [ ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/ipmi-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/ipmi-exporter.nix new file mode 100644 index 000000000000..1b1ac3c62420 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/ipmi-exporter.nix @@ -0,0 +1,41 @@ +{ lib, buildGoModule, fetchFromGitHub, nixosTests, makeWrapper, freeipmi }: + +buildGoModule rec { + pname = "ipmi_exporter"; + version = "1.8.0"; + + src = fetchFromGitHub { + owner = "prometheus-community"; + repo = "ipmi_exporter"; + rev = "v${version}"; + hash = "sha256-ZF5mBjq+IhSQrQ1dUfHlfyUMK2dkpZ5gu9djPkUYvRQ="; + }; + + vendorHash = "sha256-q5MFAvFCrr24b1VO0Z03C08CGd+0pUerXZEKiu4r7cE="; + + nativeBuildInputs = [ makeWrapper ]; + + postInstall = '' + wrapProgram $out/bin/ipmi_exporter --prefix PATH : ${lib.makeBinPath [ freeipmi ]} + ''; + + passthru.tests = { inherit (nixosTests.prometheus-exporters) ipmi; }; + + ldflags = [ + "-s" + "-w" + "-X github.com/prometheus/common/version.Version=${version}" + "-X github.com/prometheus/common/version.Revision=0000000" + "-X github.com/prometheus/common/version.Branch=unknown" + "-X github.com/prometheus/common/version.BuildUser=nix@nixpkgs" + "-X github.com/prometheus/common/version.BuildDate=unknown" + ]; + + meta = with lib; { + description = "An IPMI exporter for Prometheus"; + homepage = "https://github.com/prometheus-community/ipmi_exporter"; + changelog = "https://github.com/prometheus-community/ipmi_exporter/blob/${src.rev}/CHANGELOG.md"; + license = licenses.mit; + maintainers = with maintainers; [ snaar ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/jitsi-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/jitsi-exporter.nix new file mode 100644 index 000000000000..5b90c26eed7e --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/jitsi-exporter.nix @@ -0,0 +1,23 @@ +{ lib, buildGoModule, fetchgit, nixosTests }: + +buildGoModule rec { + pname = "jitsiexporter"; + version = "0.2.18"; + + src = fetchgit { + url = "https://git.xsfx.dev/prometheus/jitsiexporter"; + rev = "v${version}"; + sha256 = "1cf46wp96d9dwlwlffcgbcr0v3xxxfdv6il0zqkm2i7cfsfw0skf"; + }; + + vendorHash = null; + + passthru.tests = { inherit (nixosTests.prometheus-exporters) jitsi; }; + + meta = with lib; { + description = "Export Jitsi Videobridge metrics to Prometheus"; + homepage = "https://git.xsfx.dev/prometheus/jitsiexporter"; + license = licenses.mit; + maintainers = with maintainers; [ ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/jmx-httpserver.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/jmx-httpserver.nix new file mode 100644 index 000000000000..cf180de54a70 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/jmx-httpserver.nix @@ -0,0 +1,34 @@ +{ lib, stdenv, fetchurl, jre, makeWrapper }: + +stdenv.mkDerivation rec { + pname = "jmx-prometheus-httpserver"; + version = "0.15.0"; + + jarName = "jmx_prometheus_httpserver-${version}-jar-with-dependencies.jar"; + + src = fetchurl { + url = "mirror://maven/io/prometheus/jmx/jmx_prometheus_httpserver/${version}/${jarName}"; + sha256 = "0fr3svn8kjp7bq1wzbkvv5awylwn8b01bngj04zvk7fpzqpgs7mz"; + }; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ jre ]; + + dontUnpack = true; + + installPhase = '' + mkdir -p $out/libexec + mkdir -p $out/bin + cp $src $out/libexec/$jarName + makeWrapper "${jre}/bin/java" $out/bin/jmx_prometheus_httpserver --add-flags "-jar $out/libexec/$jarName" + ''; + + meta = with lib; { + homepage = "https://github.com/prometheus/jmx_exporter"; + description = "A process for exposing JMX Beans via HTTP for Prometheus consumption"; + sourceProvenance = with sourceTypes; [ binaryBytecode ]; + license = licenses.asl20; + maintainers = [ maintainers.offline ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/json-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/json-exporter.nix new file mode 100644 index 000000000000..ad0e7a49aa3c --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/json-exporter.nix @@ -0,0 +1,25 @@ +{ lib, buildGoModule, fetchFromGitHub, nixosTests }: + +buildGoModule rec { + pname = "prometheus-json-exporter"; + version = "0.6.0"; + + src = fetchFromGitHub { + owner = "prometheus-community"; + repo = "json_exporter"; + rev = "v${version}"; + sha256 = "sha256-5tFhk62ewRE87lxgVM2bytV9GbXT5iAwbJqklohYDvM="; + }; + + vendorHash = "sha256-Hij3lh92OCH+sTrzNl/KkjLAhPGffzzmxhPDO2wG0gA="; + + passthru.tests = { inherit (nixosTests.prometheus-exporters) json; }; + + meta = with lib; { + description = "A prometheus exporter which scrapes remote JSON by JSONPath"; + homepage = "https://github.com/prometheus-community/json_exporter"; + license = licenses.asl20; + maintainers = with maintainers; [ willibutz ]; + mainProgram = "json_exporter"; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/junos-czerwonk-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/junos-czerwonk-exporter.nix new file mode 100644 index 000000000000..2b50c7850702 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/junos-czerwonk-exporter.nix @@ -0,0 +1,22 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "junos-czerwonk-exporter"; + version = "0.12.2"; + + src = fetchFromGitHub { + owner = "czerwonk"; + repo = "junos_exporter"; + rev = version; + sha256 = "sha256-KdVyRddAr2gqiFyIGBfWbi4DHAaiey4p4OBFND/2u7U="; + }; + + vendorHash = "sha256-fytDr56ZhhO5u6u9CRIEKXGqgnzntSVqEVItibpLyPM="; + + meta = with lib; { + description = "Exporter for metrics from devices running JunOS"; + homepage = "https://github.com/czerwonk/junos_exporter"; + license = licenses.mit; + maintainers = teams.wdz.members; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/kea-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/kea-exporter.nix new file mode 100644 index 000000000000..572fed8a99d9 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/kea-exporter.nix @@ -0,0 +1,37 @@ +{ lib, python3Packages, fetchPypi, nixosTests }: + +python3Packages.buildPythonApplication rec { + pname = "kea-exporter"; + version = "0.5.1"; + format = "pyproject"; + + src = fetchPypi { + inherit pname version; + hash = "sha256-rNGA5XEx9xVUP1SeDPgXcaqgDhgX6JFhRX9GM454P5A="; + }; + + nativeBuildInputs = with python3Packages; [ + pdm-pep517 + ]; + + propagatedBuildInputs = with python3Packages; [ + click + prometheus-client + ]; + + checkPhase = '' + $out/bin/kea-exporter --help > /dev/null + $out/bin/kea-exporter --version | grep -q ${version} + ''; + + passthru.tests = { + inherit (nixosTests.prometheus-exporters) kea; + }; + + meta = with lib; { + description = "Export Kea Metrics in the Prometheus Exposition Format"; + homepage = "https://github.com/mweinelt/kea-exporter"; + license = licenses.mit; + maintainers = with maintainers; [ hexa ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/keylight-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/keylight-exporter.nix new file mode 100644 index 000000000000..d2c816c7433a --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/keylight-exporter.nix @@ -0,0 +1,24 @@ +{ lib, buildGoModule, fetchFromGitHub, nixosTests }: + +buildGoModule rec { + pname = "keylight-exporter"; + version = "0.2.0"; + + src = fetchFromGitHub { + owner = "mdlayher"; + repo = "keylight_exporter"; + rev = "v${version}"; + sha256 = "sha256-yI1mmEb5SP2lbP37CpPxYITJL/nvd/mIwxB0RIQRe4I="; + }; + + vendorHash = "sha256-0QSsGgokErRNIHQIjZQn5t1dvc306uZck8uLSgjcrck="; + + passthru.tests = { inherit (nixosTests.prometheus-exporters) keylight; }; + + meta = with lib; { + homepage = "https://github.com/mdlayher/keylight_exporter"; + description = "Prometheus exporter for Elgato Key Light devices"; + license = licenses.mit; + maintainers = with maintainers; [ mdlayher ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/knot-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/knot-exporter.nix new file mode 100644 index 000000000000..d51d9bd3f79c --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/knot-exporter.nix @@ -0,0 +1,41 @@ +{ lib +, python3 +, fetchPypi +, nixosTests +}: + +python3.pkgs.buildPythonApplication rec { + pname = "knot-exporter"; + version = "3.3.4"; + pyproject = true; + + src = fetchPypi { + pname = "knot_exporter"; + inherit version; + hash = "sha256-jZNNJiJxq3pNSZFwu2UEHhrA0odIDY0UO+d4PJII1ZI="; + }; + + nativeBuildInputs = [ + python3.pkgs.hatchling + ]; + + propagatedBuildInputs = with python3.pkgs; [ + libknot + prometheus-client + psutil + ]; + + pythonImportsCheck = [ + "knot_exporter" + ]; + + passthru.tests = { inherit (nixosTests.prometheus-exporters) knot; }; + + meta = with lib; { + description = "Prometheus exporter for Knot DNS"; + homepage = "https://gitlab.nic.cz/knot/knot-dns/-/tree/master/python/knot_exporter"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ ma27 hexa ]; + mainProgram = "knot-exporter"; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/kthxbye.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/kthxbye.nix new file mode 100644 index 000000000000..897a58926d34 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/kthxbye.nix @@ -0,0 +1,39 @@ +{ pkgs +, lib +, buildGoModule +, fetchFromGitHub +, nixosTests +}: + +buildGoModule rec { + pname = "kthxbye"; + version = "0.16"; + + src = fetchFromGitHub rec { + owner = "prymitive"; + repo = "kthxbye"; + rev = "v${version}"; + hash = "sha256-B6AgD79q0kA67iC9pIfv8PH8xejx2srpRccdds1GsZo="; + }; + + vendorHash = "sha256-BS9+2w18tvrgmPzRMP0XyUlyPAR9AJMLXUd3GYEJr8E="; + + buildPhase = '' + make -j$NIX_BUILD_CORES + ''; + + installPhase = '' + install -Dm755 ./kthxbye -t $out/bin + ''; + + passthru.tests = { + kthxbye = nixosTests.kthxbye; + }; + + meta = with lib; { + description = "Prometheus Alertmanager alert acknowledgement management daemon"; + homepage = "https://github.com/prymitive/kthxbye"; + license = licenses.asl20; + maintainers = with maintainers; [ nukaduka ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/lnd-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/lnd-exporter.nix new file mode 100644 index 000000000000..e66ab8852f1d --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/lnd-exporter.nix @@ -0,0 +1,27 @@ +{ lib, buildGoModule, fetchFromGitHub, nixosTests }: + +buildGoModule rec { + pname = "lndmon"; + version = "0.2.7"; + + src = fetchFromGitHub { + owner = "lightninglabs"; + repo = "lndmon"; + rev = "v${version}"; + hash = "sha256-j9T60J7n9sya9/nN0Y6wsPDXN2h35pXxMdadsOkAMWI="; + }; + + vendorHash = "sha256-h9+/BOy1KFiqUUV35M548fDKFC3Q5mBaANuD7t1rpp8="; + + # Irrelevant tools dependencies. + excludedPackages = [ "./tools" ]; + + passthru.tests = { inherit (nixosTests.prometheus-exporters) lnd; }; + + meta = with lib; { + homepage = "https://github.com/lightninglabs/lndmon"; + description = "Prometheus exporter for lnd (Lightning Network Daemon)"; + license = licenses.mit; + maintainers = with maintainers; [ mmilata ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/mail-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/mail-exporter.nix new file mode 100644 index 000000000000..ae13becd0aed --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/mail-exporter.nix @@ -0,0 +1,32 @@ +{ lib, buildGoModule, fetchFromGitHub, installShellFiles, nixosTests }: + +buildGoModule { + pname = "mailexporter"; + version = "2020-07-16"; + + src = fetchFromGitHub { + owner = "cherti"; + repo = "mailexporter"; + rev = "f5a552c736ac40ccdc0110d2e9a71619c1cd6862"; + hash = "sha256-P7LZi2iXZJaY5AEJBeAVszq/DN9SFxNfeQaflnF6+ng="; + }; + + vendorHash = "sha256-QOOf00uCdC8fl7V/+Q8X90yQ7xc0Tb6M9dXisdGEisM="; + + nativeBuildInputs = [ installShellFiles ]; + + postInstall = '' + installManPage $src/man/mailexporter.1 + installManPage $src/man/mailexporter.conf.5 + ''; + + passthru.tests = { inherit (nixosTests.prometheus-exporters) mail; }; + + meta = with lib; { + description = "Export Prometheus-style metrics about mail server functionality"; + homepage = "https://github.com/cherti/mailexporter"; + license = licenses.gpl3; + maintainers = with maintainers; [ willibutz globin ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/mikrotik-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/mikrotik-exporter.nix new file mode 100644 index 000000000000..431b029db9f3 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/mikrotik-exporter.nix @@ -0,0 +1,26 @@ +{ lib, buildGoModule, fetchFromGitHub, nixosTests }: + +buildGoModule rec { + pname = "mikrotik-exporter-unstable"; + version = "2021-08-10"; + + src = fetchFromGitHub { + owner = "nshttpd"; + repo = "mikrotik-exporter"; + rev = "4bfa7adfef500ff621a677adfab1f7010af920d1"; + hash = "sha256-xmQTFx2BFBiKxRgfgGSG8h8nb18uviCAORS8VIILFu8="; + }; + + vendorHash = "sha256-rRIQo+367nHdtgfisBka0Yn6f4P75Mm3Ead4CscnRCw="; + + doCheck = false; + + passthru.tests = { inherit (nixosTests.prometheus-exporters) mikrotik; }; + + meta = with lib; { + inherit (src.meta) homepage; + description = "Prometheus MikroTik device(s) exporter"; + license = licenses.bsd3; + maintainers = with maintainers; [ mmilata ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/minio-exporter/default.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/minio-exporter/default.nix new file mode 100644 index 000000000000..93e9bca3283d --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/minio-exporter/default.nix @@ -0,0 +1,35 @@ +{ lib, buildGoPackage, fetchFromGitHub, fetchpatch }: + +buildGoPackage rec { + pname = "minio-exporter"; + version = "0.2.0"; + rev = "v${version}"; + + goPackagePath = "github.com/joe-pll/minio-exporter"; + + src= fetchFromGitHub { + inherit rev; + owner = "joe-pll"; + repo = "minio-exporter"; + sha256 = "1my3ii5s479appiapw8gjzkq1pk62fl7d7if8ljvdj6qw4man6aa"; + }; + + # Required to make 0.2.0 build against latest dependencies + # TODO: Remove on update to 0.3.0 + patches = [ + (fetchpatch { + url = "https://github.com/joe-pll/minio-exporter/commit/50ab89d42322dc3e2696326a9ae4d3f951f646de.patch"; + sha256 = "0aiixhvb4x8c8abrlf1i4hmca9i6xd6b638a5vfkvawx0q7gxl97"; + }) + ]; + + goDeps = ./deps.nix; + + meta = with lib; { + description = "A Prometheus exporter for Minio cloud storage server"; + homepage = "https://github.com/joe-pll/minio-exporter"; + license = licenses.asl20; + maintainers = with maintainers; [ bachp ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/minio-exporter/deps.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/minio-exporter/deps.nix new file mode 100644 index 000000000000..1993975e2bfa --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/minio-exporter/deps.nix @@ -0,0 +1,174 @@ +# This file was generated by https://github.com/kamilchm/go2nix v1.2.1 +[ + { + goPackagePath = "github.com/alecthomas/template"; + fetch = { + type = "git"; + url = "https://github.com/alecthomas/template"; + rev = "a0175ee3bccc567396460bf5acd36800cb10c49c"; + sha256 = "0qjgvvh26vk1cyfq9fadyhfgdj36f1iapbmr5xp6zqipldz8ffxj"; + }; + } + { + goPackagePath = "github.com/alecthomas/units"; + fetch = { + type = "git"; + url = "https://github.com/alecthomas/units"; + rev = "2efee857e7cfd4f3d0138cc3cbb1b4966962b93a"; + sha256 = "1j65b91qb9sbrml9cpabfrcf07wmgzzghrl7809hjjhrmbzri5bl"; + }; + } + { + goPackagePath = "github.com/beorn7/perks"; + fetch = { + type = "git"; + url = "https://github.com/beorn7/perks"; + rev = "4c0e84591b9aa9e6dcfdf3e020114cd81f89d5f9"; + sha256 = "1hrybsql68xw57brzj805xx2mghydpdiysv3gbhr7f5wlxj2514y"; + }; + } + { + goPackagePath = "github.com/go-ini/ini"; + fetch = { + type = "git"; + url = "https://github.com/go-ini/ini"; + rev = "32e4c1e6bc4e7d0d8451aa6b75200d19e37a536a"; + sha256 = "0mhgxw5q6b0pryhikx3k4wby7g32rwjjljzihi47lwn34kw5y1qn"; + }; + } + { + goPackagePath = "github.com/golang/protobuf"; + fetch = { + type = "git"; + url = "https://github.com/golang/protobuf"; + rev = "1e59b77b52bf8e4b449a57e6f79f21226d571845"; + sha256 = "19bkh81wnp6njg3931wky6hsnnl2d1ig20vfjxpv450sd3k6yys8"; + }; + } + { + goPackagePath = "github.com/matttproud/golang_protobuf_extensions"; + fetch = { + type = "git"; + url = "https://github.com/matttproud/golang_protobuf_extensions"; + rev = "c12348ce28de40eed0136aa2b644d0ee0650e56c"; + sha256 = "1d0c1isd2lk9pnfq2nk0aih356j30k3h1gi2w0ixsivi5csl7jya"; + }; + } + { + goPackagePath = "github.com/minio/minio-go"; + fetch = { + type = "git"; + url = "https://github.com/minio/minio-go"; + rev = "d218e4cb1bfc13dcef0eb5c3e74507a35be0dd3a"; + sha256 = "0d3am33xaavdffz791qi2s0vnkpjw9vlr5p5g4lw7h5vhmy1sjb4"; + }; + } + { + goPackagePath = "github.com/minio/minio"; + fetch = { + type = "git"; + url = "https://github.com/minio/minio"; + rev = "bb73c84b104bc447eb603d63481cdc54b8ab3c83"; + sha256 = "1gjkgdf59yxfr2a7pl3f7z3iid86zsd85xqxcv1s0d46v7j07iga"; + }; + } + { + goPackagePath = "github.com/mitchellh/go-homedir"; + fetch = { + type = "git"; + url = "https://github.com/mitchellh/go-homedir"; + rev = "b8bc1bf767474819792c23f32d8286a45736f1c6"; + sha256 = "13ry4lylalkh4g2vny9cxwvryslzyzwp9r92z0b10idhdq3wad1q"; + }; + } + { + goPackagePath = "github.com/prometheus/client_golang"; + fetch = { + type = "git"; + url = "https://github.com/prometheus/client_golang"; + rev = "06bc6e01f4baf4ee783ffcd23abfcb0b0f9dfada"; + sha256 = "0dvv21214sn702kc25y5l0gd9d11358976d3w31fgwx7456mjx26"; + }; + } + { + goPackagePath = "github.com/prometheus/client_model"; + fetch = { + type = "git"; + url = "https://github.com/prometheus/client_model"; + rev = "99fa1f4be8e564e8a6b613da7fa6f46c9edafc6c"; + sha256 = "19y4ywsivhpxj7ikf2j0gm9k3cmyw37qcbfi78n526jxcc7kw998"; + }; + } + { + goPackagePath = "github.com/prometheus/common"; + fetch = { + type = "git"; + url = "https://github.com/prometheus/common"; + rev = "89604d197083d4781071d3c65855d24ecfb0a563"; + sha256 = "169rdlaf2mk9z4fydz7ajmngyhmf3q1lk96yhvx46bn986x5xkyn"; + }; + } + { + goPackagePath = "github.com/prometheus/procfs"; + fetch = { + type = "git"; + url = "https://github.com/prometheus/procfs"; + rev = "b15cd069a83443be3154b719d0cc9fe8117f09fb"; + sha256 = "1cr45wg2m40bj2za8f32mq09rjlcnk5kfam0h0hr8wcb015k4wxj"; + }; + } + { + goPackagePath = "github.com/sirupsen/logrus"; + fetch = { + type = "git"; + url = "https://github.com/sirupsen/logrus"; + rev = "d682213848ed68c0a260ca37d6dd5ace8423f5ba"; + sha256 = "0nzyqwzx3k7nqfq8q7yv32gaf3ymq3bpwhkmw1hj2zakq5a93d8x"; + }; + } + { + goPackagePath = "golang.org/x/crypto"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/crypto"; + rev = "a6600008915114d9c087fad9f03d75087b1a74df"; + sha256 = "099vyf8133bjwaqcv377d9akam3j5xwamwqrihmjhvzbvqs649yc"; + }; + } + { + goPackagePath = "golang.org/x/net"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/net"; + rev = "5ccada7d0a7ba9aeb5d3aca8d3501b4c2a509fec"; + sha256 = "0bdwdxy2gz48icnh023r5fga3z4x6c8gry8jlfjqr5w12y3s281g"; + }; + } + { + goPackagePath = "golang.org/x/sys"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/sys"; + rev = "2c42eef0765b9837fbdab12011af7830f55f88f0"; + sha256 = "0gj9nwryyzf9rn33gl3zm6rxvg1zhrhwi36akipqj37x4g86h3gz"; + }; + } + { + goPackagePath = "golang.org/x/text"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/text"; + rev = "e19ae1496984b1c655b8044a65c0300a3c878dd3"; + sha256 = "1cvnnx8nwx5c7gr6ajs7sldhbqh52n7h6fsa3i21l2lhx6xrsh4w"; + }; + } + { + goPackagePath = "gopkg.in/alecthomas/kingpin.v2"; + fetch = { + type = "git"; + url = "https://gopkg.in/alecthomas/kingpin.v2"; + rev = "947dcec5ba9c011838740e680966fd7087a71d0d"; + sha256 = "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r"; + }; + } +] diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/modemmanager-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/modemmanager-exporter.nix new file mode 100644 index 000000000000..271be41aee97 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/modemmanager-exporter.nix @@ -0,0 +1,24 @@ +{ lib, buildGoModule, fetchFromGitHub, nixosTests }: + +buildGoModule rec { + pname = "modemmanager-exporter"; + version = "0.2.0"; + + src = fetchFromGitHub { + owner = "mdlayher"; + repo = "modemmanager_exporter"; + rev = "v${version}"; + sha256 = "sha256-wQATmTjYsm1J2DicPryoa/jVpbLjXz+1TTQUH5yGV6w="; + }; + + vendorHash = "sha256-wGCRpFnt9bxc5Ygg6H1kI9sXB4mVFBdLeaahAFtvNbg="; + + passthru.tests = { inherit (nixosTests.prometheus-exporters) modemmanager; }; + + meta = with lib; { + homepage = "https://github.com/mdlayher/modemmanager_exporter"; + description = "Prometheus exporter for ModemManager and its devices"; + license = licenses.mit; + maintainers = with maintainers; [ mdlayher ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/mongodb-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/mongodb-exporter.nix new file mode 100644 index 000000000000..23db7d8e6f3f --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/mongodb-exporter.nix @@ -0,0 +1,39 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "mongodb_exporter"; + version = "0.40.0"; + + src = fetchFromGitHub { + owner = "percona"; + repo = "mongodb_exporter"; + rev = "v${version}"; + hash = "sha256-cWXfMi48aF06Prua3n4geG2yP1JzLlHq/xh1HmiJkT4="; + }; + + vendorHash = "sha256-69YBrDAEruWXaAqLfRVtqmZ0pop3r5cusePSV2Q1MXw="; + + ldflags = [ + "-s" + "-w" + "-X main.version=${version}" + "-X main.commit=${src.rev}" + "-X main.Branch=unknown" + "-X main.buildDate=unknown" + ]; + + subPackages = [ "." ]; + + # those check depends on docker; + # nixpkgs doesn't have mongodb application available; + doCheck = false; + + meta = with lib; + { + description = "A Prometheus exporter for MongoDB including sharding, replication and storage engines"; + homepage = "https://github.com/percona/mongodb_exporter"; + license = licenses.asl20; + maintainers = with maintainers; [ undefined-moe ]; + mainProgram = "mongodb_exporter"; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/mysqld-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/mysqld-exporter.nix new file mode 100644 index 000000000000..2e2bead90b35 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/mysqld-exporter.nix @@ -0,0 +1,36 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "mysqld_exporter"; + version = "0.15.1"; + + src = fetchFromGitHub { + owner = "prometheus"; + repo = "mysqld_exporter"; + rev = "v${version}"; + sha256 = "sha256-P7EoWa0BWuAr3sjtrUxzofwlklhRLpzwpGVe31hFo7Q="; + }; + + vendorHash = "sha256-GEL9sMwwdGqpklm4yKNqzSOM6I/JzZjg3+ZB2ix2M8w="; + + ldflags = let t = "github.com/prometheus/common/version"; in [ + "-s" "-w" + "-X ${t}.Version=${version}" + "-X ${t}.Revision=${src.rev}" + "-X ${t}.Branch=unknown" + "-X ${t}.BuildUser=nix@nixpkgs" + "-X ${t}.BuildDate=unknown" + ]; + + # skips tests with external dependencies, e.g. on mysqld + preCheck = '' + buildFlagsArray+="-short" + ''; + + meta = with lib; { + description = "Prometheus exporter for MySQL server metrics"; + homepage = "https://github.com/prometheus/mysqld_exporter"; + license = licenses.asl20; + maintainers = with maintainers; [ benley globin ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/nats-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/nats-exporter.nix new file mode 100644 index 000000000000..b9b4fcc71f43 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/nats-exporter.nix @@ -0,0 +1,27 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "prometheus-nats-exporter"; + version = "0.14.0"; + + src = fetchFromGitHub { + owner = "nats-io"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-Zg4zmb0tvu7JPv9XS5Qd5o/ClnODSPz36isjUbFM1ec="; + }; + + vendorHash = "sha256-VygRE6YviSSIYpMbTEPndR6WUmLAZDwgvuJcwBuizck="; + + preCheck = '' + # Fix `insecure algorithm SHA1-RSA` problem + export GODEBUG=x509sha1=1; + ''; + + meta = with lib; { + description = "Exporter for NATS metrics"; + homepage = "https://github.com/nats-io/prometheus-nats-exporter"; + license = licenses.asl20; + maintainers = with maintainers; [ bbigras ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/nextcloud-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/nextcloud-exporter.nix new file mode 100644 index 000000000000..2ca413c20af8 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/nextcloud-exporter.nix @@ -0,0 +1,25 @@ +{ lib, fetchFromGitHub, buildGoModule, nixosTests, fetchpatch }: + +buildGoModule rec { + pname = "prometheus-nextcloud-exporter"; + version = "0.6.2"; + + src = fetchFromGitHub { + owner = "xperimental"; + repo = "nextcloud-exporter"; + rev = "v${version}"; + sha256 = "sha256-OiuhxawEpD29EhbzA9DYeJ1J1/uMQGgBTZR9m/5egHI="; + }; + + vendorHash = "sha256-QlMj4ATpJATlQAsrxIHG/1vrD5E/4brsda3BoGGzDgk="; + + passthru.tests = { inherit (nixosTests.prometheus-exporters) nextcloud; }; + + meta = with lib; { + description = "Prometheus exporter for Nextcloud servers"; + homepage = "https://github.com/xperimental/nextcloud-exporter"; + license = licenses.mit; + maintainers = with maintainers; [ willibutz ]; + mainProgram = "nextcloud-exporter"; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/nginx-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/nginx-exporter.nix new file mode 100644 index 000000000000..11862b58e004 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/nginx-exporter.nix @@ -0,0 +1,26 @@ +{ lib, buildGoModule, fetchFromGitHub, nixosTests }: + +buildGoModule rec { + pname = "nginx_exporter"; + version = "1.1.0"; + + src = fetchFromGitHub { + owner = "nginxinc"; + repo = "nginx-prometheus-exporter"; + rev = "v${version}"; + sha256 = "sha256-wLLHhbIA4jPgXtVIP6ycxgXfULODngPSpV3rZpJFSjI="; + }; + + vendorHash = "sha256-pMof9Wr6GrH5N97C4VNG2ELtZ6C6ruq5ylMwByotrP0="; + + ldflags = [ "-s" "-w" "-X main.version=${version}" ]; + + passthru.tests = { inherit (nixosTests.prometheus-exporters) nginx; }; + + meta = with lib; { + description = "NGINX Prometheus Exporter for NGINX and NGINX Plus"; + homepage = "https://github.com/nginxinc/nginx-prometheus-exporter"; + license = licenses.asl20; + maintainers = with maintainers; [ benley fpletz willibutz globin ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/nginxlog-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/nginxlog-exporter.nix new file mode 100644 index 000000000000..8c8964ec093f --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/nginxlog-exporter.nix @@ -0,0 +1,26 @@ +{ lib, buildGoModule, fetchFromGitHub, nixosTests }: + +buildGoModule rec { + pname = "nginxlog_exporter"; + version = "1.11.0"; + + src = fetchFromGitHub { + owner = "martin-helmich"; + repo = "prometheus-nginxlog-exporter"; + rev = "v${version}"; + sha256 = "sha256-UkXrVHHHZ9mEgsMUcHu+wI6NZFw4h3X4atDBjpBcz8E="; + }; + + vendorHash = "sha256-RzqfmP1d3zqageiGSr+CxSJQxAXmOKRCwj/7KO2f3EE="; + + subPackages = [ "." ]; + + passthru.tests = { inherit (nixosTests.prometheus-exporters) nginxlog; }; + + meta = with lib; { + description = "Export metrics from Nginx access log files to Prometheus"; + homepage = "https://github.com/martin-helmich/prometheus-nginxlog-exporter"; + license = licenses.asl20; + maintainers = with maintainers; [ mmahut ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/node-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/node-exporter.nix new file mode 100644 index 000000000000..78d611cd3f92 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/node-exporter.nix @@ -0,0 +1,46 @@ +{ lib, stdenv, buildGoModule, fetchFromGitHub, nixosTests + # darwin + , CoreFoundation, IOKit +}: + +buildGoModule rec { + pname = "node_exporter"; + version = "1.7.0"; + rev = "v${version}"; + + src = fetchFromGitHub { + inherit rev; + owner = "prometheus"; + repo = "node_exporter"; + sha256 = "sha256-+KY/YXEqT/40QzODOk8lKAo0zMcNuiMvj6ippbJE9ho="; + }; + + vendorHash = "sha256-HrlzDupZP9+GxB58Lg62tvku1Sl2zo2iV0KnBNwkM58="; + + # FIXME: tests fail due to read-only nix store + doCheck = false; + + buildInputs = lib.optionals stdenv.isDarwin [ CoreFoundation IOKit ]; + + excludedPackages = [ "docs/node-mixin" ]; + + ldflags = [ + "-s" + "-w" + "-X github.com/prometheus/common/version.Version=${version}" + "-X github.com/prometheus/common/version.Revision=${rev}" + "-X github.com/prometheus/common/version.Branch=unknown" + "-X github.com/prometheus/common/version.BuildUser=nix@nixpkgs" + "-X github.com/prometheus/common/version.BuildDate=unknown" + ]; + + passthru.tests = { inherit (nixosTests.prometheus-exporters) node; }; + + meta = with lib; { + description = "Prometheus exporter for machine metrics"; + homepage = "https://github.com/prometheus/node_exporter"; + changelog = "https://github.com/prometheus/node_exporter/blob/v${version}/CHANGELOG.md"; + license = licenses.asl20; + maintainers = with maintainers; [ benley fpletz globin Frostman ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/nut-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/nut-exporter.nix new file mode 100644 index 000000000000..7b1ea2087bed --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/nut-exporter.nix @@ -0,0 +1,22 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "nut-exporter"; + version = "3.1.1"; + + src = fetchFromGitHub { + owner = "DRuggeri"; + repo = "nut_exporter"; + rev = "v${version}"; + sha256 = "sha256-izD2Ks29/4/FBsZoH0raFzqb0DgPR8hXRYBZQEvET+s="; + }; + + vendorHash = "sha256-DGCNYklINPPzC7kCdEUS7TqVvg2SnKFqe0qHs5RSmzY="; + + meta = with lib; { + description = "Prometheus exporter for Network UPS Tools"; + homepage = "https://github.com/DRuggeri/nut_exporter"; + license = licenses.asl20; + maintainers = with maintainers; [ jhh ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/openldap-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/openldap-exporter.nix new file mode 100644 index 000000000000..3d574d1bb93f --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/openldap-exporter.nix @@ -0,0 +1,30 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "openldap_exporter"; + version = "2.2.2"; + + src = fetchFromGitHub { + owner = "tomcz"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-1u+89odwV/lz34wtrK91lET2bOqkH6kRA7JCjzsmiEg="; + }; + + vendorHash = null; + + ldflags = [ + "-s" + "-w" + "-X github.com/tomcz/openldap_exporter.tag=v${version}" + "-X github.com/tomcz/openldap_exporter.commit=unknown" + ]; + + + meta = with lib; { + homepage = "https://github.com/tomcz/openldap_exporter"; + description = "Simple service that scrapes metrics from OpenLDAP and exports them via HTTP for Prometheus consumption"; + license = licenses.mit; + maintainers = with maintainers; [ ma27 ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/pgbouncer-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/pgbouncer-exporter.nix new file mode 100644 index 000000000000..57f51e4997c5 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/pgbouncer-exporter.nix @@ -0,0 +1,23 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "pgbouncer-exporter"; + version = "0.7.0"; + + src = fetchFromGitHub { + owner = "prometheus-community"; + repo = "pgbouncer_exporter"; + rev = "v${version}"; + hash = "sha256-2N8FaGk6AU39j4q22B2Om5E7BeR7iw9drl3PTOBO2kg="; + }; + + vendorHash = "sha256-2aaUlOokqYkjMpcM12mU+O+N09/mDPlIrJ4Z1iXJAyk="; + + meta = with lib; { + description = "Prometheus exporter for PgBouncer"; + homepage = "https://github.com/prometheus-community/pgbouncer_exporter"; + license = licenses.mit; + maintainers = with maintainers; [ _1000101 ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/php-fpm-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/php-fpm-exporter.nix new file mode 100644 index 000000000000..e9ba97d1f3f7 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/php-fpm-exporter.nix @@ -0,0 +1,59 @@ +{ lib +, buildGoModule +, fetchFromGitHub +, makeWrapper +, installShellFiles +, getent +, nix-update-script +, testers +, prometheus-php-fpm-exporter +}: + +buildGoModule rec { + pname = "php-fpm_exporter"; + version = "2.2.0"; + + src = fetchFromGitHub { + owner = "hipages"; + repo = pname; + rev = "v${version}"; + hash = "sha256-ggrFnyEdGBoZVh4dHMw+7RUm8nJ1hJXo/fownO3wvzE="; + }; + + vendorHash = "sha256-OK36tHkBtosdfEWFPYMtlbzCkh5cF35NBWYyJrb9fwg= "; + + nativeBuildInputs = [ makeWrapper installShellFiles ]; + + ldflags = [ + "-X main.version=${version}" + ]; + + preFixup = '' + wrapProgram "$out/bin/php-fpm_exporter" \ + --prefix PATH ":" "${lib.makeBinPath [ getent ]}" + ''; + + postInstall = '' + installShellCompletion --cmd php-fpm_exporter \ + --bash <($out/bin/php-fpm_exporter completion bash) \ + --fish <($out/bin/php-fpm_exporter completion fish) \ + --zsh <($out/bin/php-fpm_exporter completion zsh) + ''; + + passthru = { + updateScript = nix-update-script { }; + tests = testers.testVersion { + inherit version; + package = prometheus-php-fpm-exporter; + command = "php-fpm_exporter version"; + }; + }; + + meta = with lib; { + homepage = "https://github.com/hipages/php-fpm_exporter"; + description = "A prometheus exporter for PHP-FPM."; + license = licenses.asl20; + maintainers = with maintainers; [ gaelreyrol ]; + mainProgram = "php-fpm_exporter"; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/pihole-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/pihole-exporter.nix new file mode 100644 index 000000000000..2ceddeb8a4b2 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/pihole-exporter.nix @@ -0,0 +1,22 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "pihole-exporter"; + version = "0.4.0"; + + src = fetchFromGitHub { + owner = "eko"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-ZHeAp2++faqoxt+2uvtea2+xPST2sonuBJAhI6GZg1Y="; + }; + + vendorHash = "sha256-Wn4W7e8v/njvODA0znqtZsMRfcH6L6r5biAOwfyKUAU="; + + meta = with lib; { + description = "Prometheus exporter for PI-Hole's Raspberry PI ad blocker"; + homepage = "https://github.com/eko/pihole-exporter"; + license = licenses.mit; + maintainers = with maintainers; [ ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/ping-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/ping-exporter.nix new file mode 100644 index 000000000000..becbde065af3 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/ping-exporter.nix @@ -0,0 +1,22 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "ping-exporter"; + version = "1.1.0"; + + src = fetchFromGitHub { + owner = "czerwonk"; + repo = "ping_exporter"; + rev = version; + hash = "sha256-ttlsz0yS4vIfQLTKQ/aiIm/vg6bwnbUlM1aku9RMXXU="; + }; + + vendorHash = "sha256-ZTrQNtpXTf+3oPv8zoVm6ZKWzAvRsAj96csoKJKxu3k="; + + meta = with lib; { + description = "Prometheus exporter for ICMP echo requests"; + homepage = "https://github.com/czerwonk/ping_exporter"; + license = licenses.mit; + maintainers = with maintainers; [ nudelsalat ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/postfix-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/postfix-exporter.nix new file mode 100644 index 000000000000..90439c9091fc --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/postfix-exporter.nix @@ -0,0 +1,42 @@ +{ lib +, buildGoModule +, fetchFromGitHub +, makeWrapper +, nixosTests +, systemd +, withSystemdSupport ? true +}: + +buildGoModule rec { + pname = "postfix_exporter"; + version = "0.3.0"; + + src = fetchFromGitHub { + owner = "kumina"; + repo = "postfix_exporter"; + rev = version; + sha256 = "sha256-63ze51Qbjm+3CV1OFGFa9cS4ucZ+gMKaJyBF2b//CfM="; + }; + + vendorHash = "sha256-a4Lk4wh4mvXEjLgFksZIVVtbp+zTUyjtLVuk7vuot2k="; + + ldflags = [ "-s" "-w" ]; + + nativeBuildInputs = lib.optionals withSystemdSupport [ makeWrapper ]; + buildInputs = lib.optionals withSystemdSupport [ systemd ]; + tags = lib.optionals (!withSystemdSupport) "nosystemd"; + + postInstall = lib.optionals withSystemdSupport '' + wrapProgram $out/bin/postfix_exporter \ + --prefix LD_LIBRARY_PATH : "${lib.getLib systemd}/lib" + ''; + + passthru.tests = { inherit (nixosTests.prometheus-exporters) postfix; }; + + meta = with lib; { + inherit (src.meta) homepage; + description = "A Prometheus exporter for Postfix"; + license = licenses.asl20; + maintainers = with maintainers; [ willibutz globin ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/postgres-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/postgres-exporter.nix new file mode 100644 index 000000000000..62f041b285ba --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/postgres-exporter.nix @@ -0,0 +1,38 @@ +{ lib, buildGoModule, fetchFromGitHub, nixosTests }: + +buildGoModule rec { + pname = "postgres_exporter"; + version = "0.15.0"; + + src = fetchFromGitHub { + owner = "prometheus-community"; + repo = "postgres_exporter"; + rev = "v${version}"; + sha256 = "sha256-fxVU2z1RGgI8AoKiJb+3LIEa1KDhPptmdP21/ESzmgw="; + }; + + vendorHash = "sha256-/AL9Qkcrp5Kvj2epJMuNrtwqBbyCy4P6oVGUfODXS/Q="; + + ldflags = + let + t = "github.com/prometheus/common/version"; + in + [ "-s" "-w" + "-X ${t}.Version=${version}" + "-X ${t}.Revision=unknown" + "-X ${t}.Branch=unknown" + "-X ${t}.BuildUser=nix@nixpkgs" + "-X ${t}.BuildDate=unknown" + ]; + + doCheck = true; + + passthru.tests = { inherit (nixosTests.prometheus-exporters) postgres; }; + + meta = with lib; { + inherit (src.meta) homepage; + description = "A Prometheus exporter for PostgreSQL"; + license = licenses.asl20; + maintainers = with maintainers; [ fpletz globin willibutz ma27 ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/process-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/process-exporter.nix new file mode 100644 index 000000000000..684d624592f1 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/process-exporter.nix @@ -0,0 +1,31 @@ +{ lib, buildGoModule, fetchFromGitHub, nixosTests }: + +buildGoModule rec { + pname = "process-exporter"; + version = "0.7.10"; + + src = fetchFromGitHub { + owner = "ncabatoff"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-TAgMA9IV3i8dpgOBDmnlt4iyGlmWN5Nj3BexXb5vzlc="; + }; + + vendorHash = "sha256-LAEnXJ3qShfCGjtsYAGyW5x/TTFQxQxXM0hebJrqiW4="; + + postPatch = '' + substituteInPlace proc/read_test.go --replace /bin/cat cat + ''; + + doCheck = true; + + passthru.tests = { inherit (nixosTests.prometheus-exporters) process; }; + + meta = with lib; { + description = "Prometheus exporter that mines /proc to report on selected processes"; + homepage = "https://github.com/ncabatoff/process-exporter"; + license = licenses.mit; + maintainers = with maintainers; [ _1000101 ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/prom2json.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/prom2json.nix new file mode 100644 index 000000000000..c197bf6366c3 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/prom2json.nix @@ -0,0 +1,22 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "prom2json"; + version = "1.3.3"; + + src = fetchFromGitHub { + rev = "v${version}"; + owner = "prometheus"; + repo = "prom2json"; + sha256 = "sha256-VwJv2Y+YrlhLRx0lRPtHTzjvSz7GPfADCZibkQU6S1Y="; + }; + + vendorHash = "sha256-m9f3tCX21CMdcXcUcLFOxgs9oDR2Uaj5u22eJPDmpeE="; + + meta = with lib; { + description = "Tool to scrape a Prometheus client and dump the result as JSON"; + homepage = "https://github.com/prometheus/prom2json"; + license = licenses.asl20; + maintainers = with maintainers; [ benley ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/promscale/default.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/promscale/default.nix new file mode 100644 index 000000000000..821cab907850 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/promscale/default.nix @@ -0,0 +1,55 @@ +{ lib +, buildGoModule +, fetchFromGitHub +, promscale +, testers +}: + +buildGoModule rec { + pname = "promscale"; + version = "0.17.0"; + + src = fetchFromGitHub { + owner = "timescale"; + repo = pname; + rev = version; + hash = "sha256-JizUI9XRzOEHF1kAblYQRYB11z9KWX7od3lPiRN+JNI="; + }; + + vendorHash = "sha256-lnyKsipr/f9W9LWLb2lizKGLvIbS3XnSlOH1u1B87OY="; + + ldflags = [ + "-s" + "-w" + "-X github.com/timescale/promscale/pkg/version.Version=${version}" + "-X github.com/timescale/promscale/pkg/version.CommitHash=${src.rev}" + ]; + preBuild = '' + # Without this build fails with + # main module (github.com/timescale/promscale) does not contain package github.com/timescale/promscale/migration-tool/cmd/prom-migrator + rm -r migration-tool + ''; + checkPhase = '' + runHook preCheck + + # some checks requires access to a docker daemon + for pkg in $(getGoDirs test | grep -Ev 'testhelpers|upgrade_tests|end_to_end_tests|util'); do + buildGoDir test $checkFlags "$pkg" + done + + runHook postCheck + ''; + + passthru.tests.version = testers.testVersion { + package = promscale; + command = "promscale -version"; + }; + + meta = with lib; { + description = "An open-source analytical platform for Prometheus metrics"; + homepage = "https://github.com/timescale/promscale"; + changelog = "https://github.com/timescale/promscale/blob/${version}/CHANGELOG.md"; + license = licenses.asl20; + maintainers = with maintainers; [ _0x4A6F anpin ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/pushgateway.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/pushgateway.nix new file mode 100644 index 000000000000..ea194bccffb3 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/pushgateway.nix @@ -0,0 +1,36 @@ +{ lib, buildGoModule, fetchFromGitHub, testers, prometheus-pushgateway }: + +buildGoModule rec { + pname = "pushgateway"; + version = "1.7.0"; + + src = fetchFromGitHub { + owner = "prometheus"; + repo = "pushgateway"; + rev = "v${version}"; + sha256 = "sha256-yiLVLt1+Klr34rF+rj+T9SWNCiYi//g/e/kfJJokkYk="; + }; + + vendorHash = "sha256-cbwTjjh4g5ISMuump6By0xmF3wKrdA3kToG7j8ZgHNs="; + + ldflags = [ + "-s" + "-w" + "-X github.com/prometheus/common/version.Version=${version}" + "-X github.com/prometheus/common/version.Revision=${version}" + "-X github.com/prometheus/common/version.Branch=${version}" + "-X github.com/prometheus/common/version.BuildUser=nix@nixpkgs" + "-X github.com/prometheus/common/version.BuildDate=19700101-00:00:00" + ]; + + passthru.tests.version = testers.testVersion { + package = prometheus-pushgateway; + }; + + meta = with lib; { + description = "Allows ephemeral and batch jobs to expose metrics to Prometheus"; + homepage = "https://github.com/prometheus/pushgateway"; + license = licenses.asl20; + maintainers = with maintainers; [ benley ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/pve-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/pve-exporter.nix new file mode 100644 index 000000000000..82ca70bfef81 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/pve-exporter.nix @@ -0,0 +1,39 @@ +{ lib +, python3 +, fetchPypi +, nixosTests +}: + +python3.pkgs.buildPythonApplication rec { + pname = "prometheus-pve-exporter"; + version = "3.2.2"; + + src = fetchPypi { + inherit pname version; + sha256 = "sha256-E1hxYslVaMpoeCsTrw/7D0Ycq+GzMpJ0e6B4mEe/UJs="; + }; + + propagatedBuildInputs = with python3.pkgs; [ + prometheus-client + proxmoxer + pyyaml + requests + werkzeug + gunicorn + ]; + + doCheck = false; + + pythonImportsCheck = [ "pve_exporter" ]; + + passthru.tests = { + inherit (nixosTests.prometheus-exporters) pve; + }; + + meta = with lib; { + description = "Exposes information gathered from Proxmox VE cluster for use by the Prometheus monitoring system"; + homepage = "https://github.com/prometheus-pve/prometheus-pve-exporter"; + license = licenses.asl20; + maintainers = with maintainers; [ nukaduka ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/rabbitmq-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/rabbitmq-exporter.nix new file mode 100644 index 000000000000..213b2285c5e7 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/rabbitmq-exporter.nix @@ -0,0 +1,29 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "rabbitmq_exporter"; + version = "1.0.0-RC19"; + + src = fetchFromGitHub { + owner = "kbudde"; + repo = "rabbitmq_exporter"; + rev = "v${version}"; + hash = "sha256-31A0afmARdHxflR3n59DaqmLpTXws4OqROHfnc6cLKw="; + }; + + vendorHash = "sha256-ER0vK0xYUbQT3bqUosQMFT7HBycb3U8oI4Eak72myzs="; + + ldflags = [ "-s" "-w" ]; + + checkFlags = [ + # Disable flaky tests on Darwin + "-skip=TestWholeApp|TestExporter" + ]; + + meta = with lib; { + description = "Prometheus exporter for RabbitMQ"; + homepage = "https://github.com/kbudde/rabbitmq_exporter"; + license = licenses.mit; + maintainers = with maintainers; [ ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/redis-exporter-deps.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/redis-exporter-deps.nix new file mode 100644 index 000000000000..33747715fbef --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/redis-exporter-deps.nix @@ -0,0 +1,390 @@ +# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix) +[ + { + goPackagePath = "github.com/alecthomas/template"; + fetch = { + type = "git"; + url = "https://github.com/alecthomas/template"; + rev = "fb15b899a751"; + sha256 = "1vlasv4dgycydh5wx6jdcvz40zdv90zz1h7836z7lhsi2ymvii26"; + }; + } + { + goPackagePath = "github.com/alecthomas/units"; + fetch = { + type = "git"; + url = "https://github.com/alecthomas/units"; + rev = "c3de453c63f4"; + sha256 = "0js37zlgv37y61j4a2d46jh72xm5kxmpaiw0ya9v944bjpc386my"; + }; + } + { + goPackagePath = "github.com/beorn7/perks"; + fetch = { + type = "git"; + url = "https://github.com/beorn7/perks"; + rev = "v1.0.1"; + sha256 = "17n4yygjxa6p499dj3yaqzfww2g7528165cl13haj97hlx94dgl7"; + }; + } + { + goPackagePath = "github.com/cespare/xxhash"; + fetch = { + type = "git"; + url = "https://github.com/cespare/xxhash"; + rev = "v2.1.1"; + sha256 = "0rl5rs8546zj1vzggv38w93wx0b5dvav7yy5hzxa8kw7iikv1cgr"; + }; + } + { + goPackagePath = "github.com/davecgh/go-spew"; + fetch = { + type = "git"; + url = "https://github.com/davecgh/go-spew"; + rev = "v1.1.1"; + sha256 = "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y"; + }; + } + { + goPackagePath = "github.com/go-kit/kit"; + fetch = { + type = "git"; + url = "https://github.com/go-kit/kit"; + rev = "v0.9.0"; + sha256 = "09038mnw705h7isbjp8dzgp2i04bp5rqkmifxvwc5xkh75s00qpw"; + }; + } + { + goPackagePath = "github.com/go-logfmt/logfmt"; + fetch = { + type = "git"; + url = "https://github.com/go-logfmt/logfmt"; + rev = "v0.4.0"; + sha256 = "06smxc112xmixz78nyvk3b2hmc7wasf2sl5vxj1xz62kqcq9lzm9"; + }; + } + { + goPackagePath = "github.com/go-stack/stack"; + fetch = { + type = "git"; + url = "https://github.com/go-stack/stack"; + rev = "v1.8.0"; + sha256 = "0wk25751ryyvxclyp8jdk5c3ar0cmfr8lrjb66qbg4808x66b96v"; + }; + } + { + goPackagePath = "github.com/gogo/protobuf"; + fetch = { + type = "git"; + url = "https://github.com/gogo/protobuf"; + rev = "v1.1.1"; + sha256 = "1525pq7r6h3s8dncvq8gxi893p2nq8dxpzvq0nfl5b4p6mq0v1c2"; + }; + } + { + goPackagePath = "github.com/golang/protobuf"; + fetch = { + type = "git"; + url = "https://github.com/golang/protobuf"; + rev = "v1.4.0"; + sha256 = "1fjvl5n77abxz5qsd4mgyvjq19x43c5bfvmq62mq3m5plx6zksc8"; + }; + } + { + goPackagePath = "github.com/gomodule/redigo"; + fetch = { + type = "git"; + url = "https://github.com/gomodule/redigo"; + rev = "v1.8.2"; + sha256 = "0wp37175n4lgkq234px9vx0c7mdx8sx3d45zky73az8zbabirwga"; + }; + } + { + goPackagePath = "github.com/google/go-cmp"; + fetch = { + type = "git"; + url = "https://github.com/google/go-cmp"; + rev = "v0.4.0"; + sha256 = "1x5pvl3fb5sbyng7i34431xycnhmx8xx94gq2n19g6p0vz68z2v2"; + }; + } + { + goPackagePath = "github.com/google/gofuzz"; + fetch = { + type = "git"; + url = "https://github.com/google/gofuzz"; + rev = "v1.0.0"; + sha256 = "0qz439qvccm91w0mmjz4fqgx48clxdwagkvvx89cr43q1d4iry36"; + }; + } + { + goPackagePath = "github.com/json-iterator/go"; + fetch = { + type = "git"; + url = "https://github.com/json-iterator/go"; + rev = "v1.1.9"; + sha256 = "0pkn2maymgl9v6vmq9q1si8xr5bbl88n6981y0lx09px6qxb29qx"; + }; + } + { + goPackagePath = "github.com/julienschmidt/httprouter"; + fetch = { + type = "git"; + url = "https://github.com/julienschmidt/httprouter"; + rev = "v1.2.0"; + sha256 = "1k8bylc9s4vpvf5xhqh9h246dl1snxrzzz0614zz88cdh8yzs666"; + }; + } + { + goPackagePath = "github.com/konsorten/go-windows-terminal-sequences"; + fetch = { + type = "git"; + url = "https://github.com/konsorten/go-windows-terminal-sequences"; + rev = "v1.0.3"; + sha256 = "1yrsd4s8vhjnxhwbigirymz89dn6qfjnhn28i33vvvdgf96j6ypl"; + }; + } + { + goPackagePath = "github.com/kr/logfmt"; + fetch = { + type = "git"; + url = "https://github.com/kr/logfmt"; + rev = "b84e30acd515"; + sha256 = "02ldzxgznrfdzvghfraslhgp19la1fczcbzh7wm2zdc6lmpd1qq9"; + }; + } + { + goPackagePath = "github.com/kr/pretty"; + fetch = { + type = "git"; + url = "https://github.com/kr/pretty"; + rev = "v0.1.0"; + sha256 = "18m4pwg2abd0j9cn5v3k2ksk9ig4vlwxmlw9rrglanziv9l967qp"; + }; + } + { + goPackagePath = "github.com/kr/pty"; + fetch = { + type = "git"; + url = "https://github.com/kr/pty"; + rev = "v1.1.1"; + sha256 = "0383f0mb9kqjvncqrfpidsf8y6ns5zlrc91c6a74xpyxjwvzl2y6"; + }; + } + { + goPackagePath = "github.com/kr/text"; + fetch = { + type = "git"; + url = "https://github.com/kr/text"; + rev = "v0.1.0"; + sha256 = "1gm5bsl01apvc84bw06hasawyqm4q84vx1pm32wr9jnd7a8vjgj1"; + }; + } + { + goPackagePath = "github.com/matttproud/golang_protobuf_extensions"; + fetch = { + type = "git"; + url = "https://github.com/matttproud/golang_protobuf_extensions"; + rev = "v1.0.1"; + sha256 = "1d0c1isd2lk9pnfq2nk0aih356j30k3h1gi2w0ixsivi5csl7jya"; + }; + } + { + goPackagePath = "github.com/modern-go/concurrent"; + fetch = { + type = "git"; + url = "https://github.com/modern-go/concurrent"; + rev = "bacd9c7ef1dd"; + sha256 = "0s0fxccsyb8icjmiym5k7prcqx36hvgdwl588y0491gi18k5i4zs"; + }; + } + { + goPackagePath = "github.com/modern-go/reflect2"; + fetch = { + type = "git"; + url = "https://github.com/modern-go/reflect2"; + rev = "v1.0.1"; + sha256 = "06a3sablw53n1dqqbr2f53jyksbxdmmk8axaas4yvnhyfi55k4lf"; + }; + } + { + goPackagePath = "github.com/mwitkow/go-conntrack"; + fetch = { + type = "git"; + url = "https://github.com/mwitkow/go-conntrack"; + rev = "cc309e4a2223"; + sha256 = "0nbrnpk7bkmqg9mzwsxlm0y8m7s9qd9phr1q30qlx2qmdmz7c1mf"; + }; + } + { + goPackagePath = "github.com/pkg/errors"; + fetch = { + type = "git"; + url = "https://github.com/pkg/errors"; + rev = "v0.8.1"; + sha256 = "0g5qcb4d4fd96midz0zdk8b9kz8xkzwfa8kr1cliqbg8sxsy5vd1"; + }; + } + { + goPackagePath = "github.com/pmezard/go-difflib"; + fetch = { + type = "git"; + url = "https://github.com/pmezard/go-difflib"; + rev = "v1.0.0"; + sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw"; + }; + } + { + goPackagePath = "github.com/prometheus/client_golang"; + fetch = { + type = "git"; + url = "https://github.com/prometheus/client_golang"; + rev = "v1.6.0"; + sha256 = "0wwkx69in9dy5kzd3z6rrqf5by8cwl9r7r17fswcpx9rl3g61x1l"; + }; + } + { + goPackagePath = "github.com/prometheus/client_model"; + fetch = { + type = "git"; + url = "https://github.com/prometheus/client_model"; + rev = "v0.2.0"; + sha256 = "0jffnz94d6ff39fr96b5w8i8yk26pwnrfggzz8jhi8k0yihg2c9d"; + }; + } + { + goPackagePath = "github.com/prometheus/common"; + fetch = { + type = "git"; + url = "https://github.com/prometheus/common"; + rev = "v0.9.1"; + sha256 = "12pyywb02p7d30ccm41mwn69qsgqnsgv1w9jlqrrln2f1svnbqch"; + }; + } + { + goPackagePath = "github.com/prometheus/procfs"; + fetch = { + type = "git"; + url = "https://github.com/prometheus/procfs"; + rev = "v0.0.11"; + sha256 = "1msc8bfywsmrgr2ryqjdqwkxiz1ll08r3qgvaka2507z1wpcpj2c"; + }; + } + { + goPackagePath = "github.com/sirupsen/logrus"; + fetch = { + type = "git"; + url = "https://github.com/sirupsen/logrus"; + rev = "v1.6.0"; + sha256 = "1zf9is1yxxnna0d1pyag2m9ziy3l27zb2j92p9msm1gx5jjrvzzj"; + }; + } + { + goPackagePath = "github.com/stretchr/objx"; + fetch = { + type = "git"; + url = "https://github.com/stretchr/objx"; + rev = "v0.1.1"; + sha256 = "0iph0qmpyqg4kwv8jsx6a56a7hhqq8swrazv40ycxk9rzr0s8yls"; + }; + } + { + goPackagePath = "github.com/stretchr/testify"; + fetch = { + type = "git"; + url = "https://github.com/stretchr/testify"; + rev = "v1.5.1"; + sha256 = "09r89m1wy4cjv2nps1ykp00qjpi0531r07q3s34hr7m6njk4srkl"; + }; + } + { + goPackagePath = "golang.org/x/crypto"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/crypto"; + rev = "c2843e01d9a2"; + sha256 = "01xgxbj5r79nmisdvpq48zfy8pzaaj90bn6ngd4nf33j9ar1dp8r"; + }; + } + { + goPackagePath = "golang.org/x/net"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/net"; + rev = "d28f0bde5980"; + sha256 = "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"; + }; + } + { + goPackagePath = "golang.org/x/sync"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/sync"; + rev = "cd5d95a43a6e"; + sha256 = "1nqkyz2y1qvqcma52ijh02s8aiqmkfb95j08f6zcjhbga3ds6hds"; + }; + } + { + goPackagePath = "golang.org/x/sys"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/sys"; + rev = "1957bb5e6d1f"; + sha256 = "0imqk4l9785rw7ddvywyf8zn7k3ga6f17ky8rmf8wrri7nknr03f"; + }; + } + { + goPackagePath = "golang.org/x/text"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/text"; + rev = "v0.3.0"; + sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19"; + }; + } + { + goPackagePath = "golang.org/x/xerrors"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/xerrors"; + rev = "9bdfabe68543"; + sha256 = "1yjfi1bk9xb81lqn85nnm13zz725wazvrx3b50hx19qmwg7a4b0c"; + }; + } + { + goPackagePath = "google.golang.org/protobuf"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/protobuf"; + rev = "v1.21.0"; + sha256 = "12bwln8z1lf9105gdp6ip0rx741i4yfz1520gxnp8861lh9wcl63"; + }; + } + { + goPackagePath = "gopkg.in/alecthomas/kingpin.v2"; + fetch = { + type = "git"; + url = "https://gopkg.in/alecthomas/kingpin.v2"; + rev = "v2.2.6"; + sha256 = "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r"; + }; + } + { + goPackagePath = "gopkg.in/check.v1"; + fetch = { + type = "git"; + url = "https://gopkg.in/check.v1"; + rev = "41f04d3bba15"; + sha256 = "0vfk9czmlxmp6wndq8k17rhnjxal764mxfhrccza7nwlia760pjy"; + }; + } + { + goPackagePath = "gopkg.in/yaml.v2"; + fetch = { + type = "git"; + url = "https://gopkg.in/yaml.v2"; + rev = "v2.2.5"; + sha256 = "08smz8dfyxp02ha74my9iszqa5qzgl3ksi28ilyp8lqipssiq6fg"; + }; + } +] diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/redis-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/redis-exporter.nix new file mode 100644 index 000000000000..177537588d63 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/redis-exporter.nix @@ -0,0 +1,33 @@ +{ lib, buildGoModule, fetchFromGitHub, nixosTests }: + +buildGoModule rec { + pname = "redis_exporter"; + version = "1.57.0"; + + src = fetchFromGitHub { + owner = "oliver006"; + repo = "redis_exporter"; + rev = "v${version}"; + sha256 = "sha256-M5Mv2gAQMR0j2zIX6OwePA9w7OtjJ0i2mR9I4BvUcXI="; + }; + + vendorHash = "sha256-32EjLEPeFsihdG83ru4SSf03F2XJGD8+tbO9ANaI1hs="; + + ldflags = [ + "-X main.BuildVersion=${version}" + "-X main.BuildCommitSha=unknown" + "-X main.BuildDate=unknown" + ]; + + # needs a redis server + doCheck = false; + + passthru.tests = { inherit (nixosTests.prometheus-exporters) redis; }; + + meta = with lib; { + description = "Prometheus exporter for Redis metrics"; + homepage = "https://github.com/oliver006/redis_exporter"; + license = licenses.mit; + maintainers = with maintainers; [ eskytthe srhb ma27 ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/rtl_433-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/rtl_433-exporter.nix new file mode 100644 index 000000000000..40cde1c15a6f --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/rtl_433-exporter.nix @@ -0,0 +1,26 @@ +{ lib, buildGoModule, fetchFromGitHub, bash, nixosTests }: + +buildGoModule rec { + pname = "rtl_433-exporter"; + version = "0.1"; + + src = fetchFromGitHub { + owner = "mhansen"; + repo = "rtl_433_prometheus"; + rev = "v${version}"; + hash = "sha256-ggtGi1gnpTLGvZnfAW9vyYyU7ELbTRNhXyCMotx+KKU="; + }; + + postPatch = "substituteInPlace rtl_433_prometheus.go --replace /bin/bash ${bash}/bin/bash"; + + vendorHash = "sha256-BsNB0OTwBUu9kK+lSN7EF8ZQH3kFx8P9h4QgcfCvtg4="; + + passthru.tests = { inherit (nixosTests.prometheus-exporters) rtl_433; }; + + meta = with lib; { + description = "Prometheus time-series DB exporter for rtl_433 433MHz radio packet decoder"; + homepage = "https://github.com/mhansen/rtl_433_prometheus"; + license = licenses.mit; + maintainers = with maintainers; [ zopieux ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/sabnzbd-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/sabnzbd-exporter.nix new file mode 100644 index 000000000000..1412c4dff6c0 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/sabnzbd-exporter.nix @@ -0,0 +1,38 @@ +{ lib, fetchFromGitHub, python3Packages }: + +python3Packages.buildPythonApplication rec { + pname = "sabnzbd_exporter"; + version = "0.1.70"; + + format = "other"; + + src = fetchFromGitHub { + owner = "msroest"; + repo = pname; + rev = version; + hash = "sha256-FkZAWIIlGX2VxRL3WS5J9lBgToQGbEQUqvf0xcdvynk="; + }; + + propagatedBuildInputs = with python3Packages; [ prometheus-client requests ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin + cp sabnzbd_exporter.py $out/bin/ + + mkdir -p $out/share/${pname} + cp examples/* $out/share/${pname}/ + + runHook postInstall + ''; + + meta = with lib; { + description = "Prometheus exporter for sabnzbd"; + homepage = "https://github.com/msroest/sabnzbd_exporter"; + license = licenses.mit; + maintainers = with maintainers; [ fugi ]; + platforms = platforms.all; + mainProgram = "sabnzbd_exporter.py"; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/sachet.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/sachet.nix new file mode 100644 index 000000000000..20dda305543c --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/sachet.nix @@ -0,0 +1,25 @@ +{ lib +, buildGoModule +, fetchFromGitHub +}: + +buildGoModule rec { + pname = "sachet"; + version = "0.3.2"; + + src = fetchFromGitHub { + owner = "messagebird"; + repo = pname; + rev = version; + hash = "sha256-zcFViE1/B+wrkxZ3YIyfy2IBbxLvXOf8iK/6eqZb1ZQ="; + }; + + vendorHash = null; + + meta = with lib; { + description = "An SMS alerting tool for Prometheus's Alertmanager"; + homepage = "https://github.com/messagebird/sachet"; + license = licenses.bsd2; + maintainers = with maintainers; [ govanify ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/script-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/script-exporter.nix new file mode 100644 index 000000000000..5af5a5488d86 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/script-exporter.nix @@ -0,0 +1,25 @@ +{ lib, buildGoModule, fetchFromGitHub, nixosTests }: + +buildGoModule rec { + pname = "script_exporter"; + version = "1.2.0"; + + src = fetchFromGitHub { + owner = "adhocteam"; + repo = pname; + rev = "v${version}"; + hash = "sha256-t/xgRalcHxEcT1peU1ePJUItD02rQdfz1uWpXDBo6C0="; + }; + + vendorHash = "sha256-Hs1SNpC+t1OCcoF3FBgpVGkhR97ulq6zYhi8BQlgfVc="; + + passthru.tests = { inherit (nixosTests.prometheus-exporters) script; }; + + meta = with lib; { + description = "Shell script prometheus exporter"; + homepage = "https://github.com/adhocteam/script_exporter"; + license = licenses.mit; + maintainers = with maintainers; [ Flakebi ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/shelly-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/shelly-exporter.nix new file mode 100644 index 000000000000..106e76b62460 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/shelly-exporter.nix @@ -0,0 +1,24 @@ +{ lib, buildGoModule, fetchFromGitHub, nixosTests }: + +buildGoModule rec { + pname = "shelly_exporter"; + version = "1.0.0"; + + src = fetchFromGitHub { + owner = "aexel90"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-L0TuBDq5eEahQvzqd1WuvmXuQbbblCM+Nvj15IybnVo="; + }; + + vendorHash = "sha256-BCrge2xLT4b4wpYA+zcsH64a/nfV8+HeZF7L49p2gEw="; + + passthru.tests = { inherit (nixosTests.prometheus-exporters) shelly; }; + + meta = with lib; { + description = "Shelly humidity sensor exporter for prometheus"; + homepage = "https://github.com/aexel90/shelly_exporter"; + license = licenses.asl20; + maintainers = with maintainers; [drupol]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/smartctl-exporter/default.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/smartctl-exporter/default.nix new file mode 100644 index 000000000000..2e916367c924 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/smartctl-exporter/default.nix @@ -0,0 +1,33 @@ +{ lib +, fetchFromGitHub +, buildGoModule +, nixosTests +}: + +buildGoModule rec { + pname = "smartctl_exporter"; + version = "0.11.0"; + + src = fetchFromGitHub { + owner = "prometheus-community"; + repo = pname; + rev = "refs/tags/v${version}"; + hash = "sha256-oUdMsUAlN/4uRSzxQrO0TOVRgyEdxYkGtf3VoNbxdhw="; + }; + + vendorHash = "sha256-0WLI+nLhRkf1CGhSer1Jkv1nUho5sxIbTE/Mf5JmX7U="; + + ldflags = [ + "-X github.com/prometheus/common/version.Version=${version}" + ]; + + passthru.tests = { inherit (nixosTests.prometheus-exporters) smartctl; }; + + meta = with lib; { + description = "Export smartctl statistics for Prometheus"; + homepage = "https://github.com/prometheus-community/smartctl_exporter"; + license = licenses.lgpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ hexa Frostman ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/smokeping-prober.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/smokeping-prober.nix new file mode 100644 index 000000000000..c61302603daa --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/smokeping-prober.nix @@ -0,0 +1,37 @@ +{ lib, buildGoModule, fetchFromGitHub, nixosTests }: + +buildGoModule rec { + pname = "smokeping_prober"; + version = "0.7.1"; + + ldflags = let + setVars = rec { + Version = version; + Revision = "722200c4adbd6d1e5d847dfbbd9dec07aa4ca38d"; + Branch = Revision; + BuildUser = "nix"; + }; + varFlags = lib.concatStringsSep " " (lib.mapAttrsToList (name: value: "-X github.com/prometheus/common/version.${name}=${value}") setVars); + in [ + "${varFlags}" "-s" "-w" + ]; + + src = fetchFromGitHub { + owner = "SuperQ"; + repo = "smokeping_prober"; + rev = "v${version}"; + sha256 = "sha256-kpg4oUDv1C5NQuxfFNLmRIMkc8hbMkjiKL16HkYrUyU="; + }; + vendorHash = "sha256-TgieqjE23gwyKLuKSqc5pkxRpou8lg+yVnVoINZDkGU="; + + doCheck = true; + + passthru.tests = { inherit (nixosTests.prometheus-exporters) smokeping; }; + + meta = with lib; { + description = "Prometheus exporter for sending continual ICMP/UDP pings"; + homepage = "https://github.com/SuperQ/smokeping_prober"; + license = licenses.asl20; + maintainers = with maintainers; [ lukegb ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/snmp-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/snmp-exporter.nix new file mode 100644 index 000000000000..812484fdf615 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/snmp-exporter.nix @@ -0,0 +1,28 @@ +{ lib, buildGoModule, fetchFromGitHub, net-snmp, nixosTests }: + +buildGoModule rec { + pname = "snmp_exporter"; + version = "0.25.0"; + + src = fetchFromGitHub { + owner = "prometheus"; + repo = "snmp_exporter"; + rev = "v${version}"; + sha256 = "sha256-6Y2zJwY5gToJlY6iLug2jNXXtNLNz98WoTKGcWgYzaA="; + }; + + vendorHash = "sha256-8soLDI/hBzSZB6Lfj1jVkIWfIkMPJmp84bu7TKg7jeo="; + + buildInputs = [ net-snmp ]; + + doCheck = true; + + passthru.tests = { inherit (nixosTests.prometheus-exporters) snmp; }; + + meta = with lib; { + description = "SNMP Exporter for Prometheus"; + homepage = "https://github.com/prometheus/snmp_exporter"; + license = licenses.asl20; + maintainers = with maintainers; [ oida Frostman ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/sql-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/sql-exporter.nix new file mode 100644 index 000000000000..b88534cb5ac7 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/sql-exporter.nix @@ -0,0 +1,37 @@ +{ lib, buildGoModule, fetchFromGitHub, go, prometheus-sql-exporter, testers }: + +buildGoModule rec { + pname = "sql_exporter"; + version = "0.5.3"; + + src = fetchFromGitHub { + owner = "justwatchcom"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-Cp8+vVGyAwYcrBiEN1SmUnHqWFGtuypvzfDROJgOn28="; + }; + + vendorHash = null; + + ldflags = let t = "github.com/prometheus/common/version"; in + [ + "-X ${t}.Version=${version}" + "-X ${t}.Revision=${src.rev}" + "-X ${t}.Branch=unknown" + "-X ${t}.BuildUser=nix@nixpkgs" + "-X ${t}.BuildDate=unknown" + "-X ${t}.GoVersion=${lib.getVersion go}" + ]; + + passthru.tests.version = testers.testVersion { + package = prometheus-sql-exporter; + command = "sql_exporter -version"; + }; + + meta = with lib; { + description = "Flexible SQL exporter for Prometheus"; + homepage = "https://github.com/justwatchcom/sql_exporter"; + license = licenses.mit; + maintainers = with maintainers; [ justinas ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/statsd-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/statsd-exporter.nix new file mode 100644 index 000000000000..201ec3a32e36 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/statsd-exporter.nix @@ -0,0 +1,38 @@ +{ lib +, buildGoModule +, fetchFromGitHub +}: + +buildGoModule rec { + pname = "statsd_exporter"; + version = "0.26.0"; + + src = fetchFromGitHub { + owner = "prometheus"; + repo = "statsd_exporter"; + rev = "v${version}"; + hash = "sha256-C7+4v40T667KJHEQ3ebLDg2wJNrxD/nossfT6rMlER8="; + }; + + ldflags = + let + t = "github.com/prometheus/common/version"; + in + [ "-s" "-w" + "-X ${t}.Version=${version}" + "-X ${t}.Revision=unknown" + "-X ${t}.Branch=unknown" + "-X ${t}.BuildUser=nix@nixpkgs" + "-X ${t}.BuildDate=unknown" + ]; + + vendorHash = "sha256-scBpRZeECgAtpu9lnkIk1I2c8UmAkEL8LYNPUeUNYto="; + + meta = with lib; { + description = "Receives StatsD-style metrics and exports them to Prometheus"; + homepage = "https://github.com/prometheus/statsd_exporter"; + changelog = "https://github.com/prometheus/statsd_exporter/blob/v${version}/CHANGELOG.md"; + license = licenses.asl20; + maintainers = with maintainers; [ benley ivan ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/surfboard-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/surfboard-exporter.nix new file mode 100644 index 000000000000..39e475df1974 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/surfboard-exporter.nix @@ -0,0 +1,25 @@ +{ lib, buildGoPackage, fetchFromGitHub, nixosTests }: + +buildGoPackage rec { + pname = "surfboard_exporter"; + version = "2.0.0"; + + goPackagePath = "github.com/ipstatic/surfboard_exporter"; + + src = fetchFromGitHub { + rev = version; + owner = "ipstatic"; + repo = "surfboard_exporter"; + sha256 = "11qms26648nwlwslnaflinxcr5rnp55s908rm1qpnbz0jnxf5ipw"; + }; + + passthru.tests = { inherit (nixosTests.prometheus-exporters) surfboard; }; + + meta = with lib; { + description = "Arris Surfboard signal metrics exporter"; + homepage = "https://github.com/ipstatic/surfboard_exporter"; + license = licenses.mit; + maintainers = with maintainers; [ disassembler ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/systemd-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/systemd-exporter.nix new file mode 100644 index 000000000000..7abe243d3036 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/systemd-exporter.nix @@ -0,0 +1,34 @@ +{ lib, buildGoModule, fetchFromGitHub, nixosTests }: + +buildGoModule rec { + pname = "systemd_exporter"; + version = "0.6.0"; + + vendorHash = "sha256-D5ASUP6XHNeHZqH/ui5GvxWis/NQrRpN/+wkO4fKkA8="; + + src = fetchFromGitHub { + owner = "prometheus-community"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-zLg4cOZUh50OFPp4mKR/FY0JfzVmXmDFcKkhB6DalGc="; + }; + + ldflags = [ + "-s" + "-w" + "-X github.com/prometheus/common/version.Version=${version}" + "-X github.com/prometheus/common/version.Revision=unknown" + "-X github.com/prometheus/common/version.Branch=unknown" + "-X github.com/prometheus/common/version.BuildUser=nix@nixpkgs" + "-X github.com/prometheus/common/version.BuildDate=unknown" + ]; + + passthru.tests = { inherit (nixosTests.prometheus-exporters) systemd; }; + + meta = with lib; { + description = "Exporter for systemd unit metrics"; + homepage = "https://github.com/prometheus-community/systemd_exporter"; + license = licenses.asl20; + maintainers = with maintainers; [ chkno ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/tor-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/tor-exporter.nix new file mode 100644 index 000000000000..fcfe87806eb9 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/tor-exporter.nix @@ -0,0 +1,39 @@ +{ lib, fetchFromGitHub, python3Packages, nixosTests }: + +python3Packages.buildPythonApplication rec { + pname = "tor-exporter"; + version = "0.4"; + + # Just a single .py file to use as the application's main entry point. + format = "other"; + + src = fetchFromGitHub { + rev = "v${version}"; + owner = "atx"; + repo = "prometheus-tor_exporter"; + sha256 = "1gzf42z0cgdqijbi9cwpjkqzkvnabaxkkfa5ac5h27r3pxx3q4n0"; + }; + + propagatedBuildInputs = with python3Packages; [ prometheus-client stem retrying ]; + + installPhase = '' + mkdir -p $out/share/ + cp prometheus-tor-exporter.py $out/share/ + ''; + + fixupPhase = '' + makeWrapper "${python3Packages.python.interpreter}" "$out/bin/prometheus-tor-exporter" \ + --set PYTHONPATH "$PYTHONPATH" \ + --add-flags "$out/share/prometheus-tor-exporter.py" + ''; + + passthru.tests = { inherit (nixosTests.prometheus-exporters) tor; }; + + meta = with lib; { + description = "Prometheus exporter that exposes metrics from a Tor daemon"; + homepage = "https://github.com/atx/prometheus-tor_exporter"; + license = licenses.mit; + maintainers = with maintainers; [ delroth ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/unbound-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/unbound-exporter.nix new file mode 100644 index 000000000000..e683ca72b9e5 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/unbound-exporter.nix @@ -0,0 +1,34 @@ +{ lib +, buildGoModule +, fetchFromGitHub +, nixosTests +}: + +let + version = "0.4.5"; +in +buildGoModule { + pname = "unbound_exporter"; + inherit version; + + src = fetchFromGitHub { + owner = "letsencrypt"; + repo = "unbound_exporter"; + rev = "refs/tags/v${version}"; + hash = "sha256-p2VSIQXTnNGgqUSvWQ4J3SbrnWGBO21ps4VCWOjioLM="; + }; + + vendorHash = "sha256-q3JqAGeEU5WZWTzdFE9hR2dAnsFjMM44JiYdodZrnhs="; + + passthru.tests = { + inherit (nixosTests.prometheus-exporters) unbound; + }; + + meta = with lib; { + changelog = "https://github.com/letsencrypt/unbound_exporter/releases/tag/v${version}"; + description = "Prometheus exporter for Unbound DNS resolver"; + homepage = "https://github.com/letsencrypt/unbound_exporter/tree/main"; + license = licenses.asl20; + maintainers = with maintainers; [ hexa ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/v2ray-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/v2ray-exporter.nix new file mode 100644 index 000000000000..51bf3d8ccac6 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/v2ray-exporter.nix @@ -0,0 +1,22 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "v2ray-exporter"; + version = "0.6.0"; + + src = fetchFromGitHub { + owner = "wi1dcard"; + repo = "v2ray-exporter"; + rev = "v${version}"; + sha256 = "12mzng3cw24fyyh8zjfi26gh853k5blzg3zbxcccnv5lryh2r0yi"; + }; + + vendorHash = "sha256-+jrD+QatTrMaAdbxy5mpCm8lF37XDIy1GFyEiUibA2k="; + + meta = with lib; { + description = "Prometheus exporter for V2Ray daemon"; + homepage = "https://github.com/wi1dcard/v2ray-exporter"; + license = licenses.mit; + maintainers = with maintainers; [ jqqqqqqqqqq ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/varnish-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/varnish-exporter.nix new file mode 100644 index 000000000000..aa86f0642409 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/varnish-exporter.nix @@ -0,0 +1,31 @@ +{ lib, buildGoModule, fetchFromGitHub, makeWrapper, varnish, nixosTests }: + +buildGoModule rec { + pname = "prometheus_varnish_exporter"; + version = "1.6.1"; + + src = fetchFromGitHub { + owner = "jonnenauha"; + repo = "prometheus_varnish_exporter"; + rev = version; + hash = "sha256-1sUzKLNkLP/eX0wYSestMAJpjAmX1iimjYoFYb6Mgpc="; + }; + + vendorHash = "sha256-P2fR0U2O0Y4Mci9jkAMb05WR+PrpuQ59vbLMG5b9KQI="; + + nativeBuildInputs = [ makeWrapper ]; + + postInstall = '' + wrapProgram $out/bin/prometheus_varnish_exporter \ + --prefix PATH : "${varnish}/bin" + ''; + + passthru.tests = { inherit (nixosTests.prometheus-exporters) varnish; }; + + meta = { + homepage = "https://github.com/jonnenauha/prometheus_varnish_exporter"; + description = "Varnish exporter for Prometheus"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ MostAwesomeDude ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/wireguard-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/wireguard-exporter.nix new file mode 100644 index 000000000000..d810633c17f3 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/wireguard-exporter.nix @@ -0,0 +1,31 @@ +{ stdenv, rustPlatform, fetchFromGitHub, lib, libiconv, Security, nixosTests }: + +rustPlatform.buildRustPackage rec { + pname = "wireguard-exporter"; + version = "3.6.6"; + + src = fetchFromGitHub { + owner = "MindFlavor"; + repo = "prometheus_wireguard_exporter"; + rev = version; + sha256 = "sha256-2e31ZuGJvpvu7L2Lb+n6bZWpC1JhETzEzSiNaxxsAtA="; + }; + + cargoSha256 = "sha256-NsxGpjuZPpz4gCJRp5IOcfRFh8DTud47nV2bE0/kc2Q="; + + postPatch = '' + # drop hardcoded linker names, fixing static build + rm .cargo/config.toml + ''; + + buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ]; + + passthru.tests = { inherit (nixosTests.prometheus-exporters) wireguard; }; + + meta = with lib; { + description = "A Prometheus exporter for WireGuard, written in Rust"; + homepage = "https://github.com/MindFlavor/prometheus_wireguard_exporter"; + license = licenses.mit; + maintainers = with maintainers; [ ma27 globin ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/xmpp-alerts.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/xmpp-alerts.nix new file mode 100644 index 000000000000..da6013b9b5ec --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/xmpp-alerts.nix @@ -0,0 +1,61 @@ +{ lib +, fetchFromGitHub +, python3Packages +, prometheus-alertmanager +, fetchpatch +, runCommand +, prometheus-xmpp-alerts +}: + +python3Packages.buildPythonApplication rec { + pname = "prometheus-xmpp-alerts"; + version = "0.5.8"; + format = "pyproject"; + + src = fetchFromGitHub { + owner = "jelmer"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-iwqcowwJktZQfdxykpsw/MweAPY0KF7ojVwvk1LP8a4="; + }; + + postPatch = '' + substituteInPlace pyproject.toml \ + --replace "bs4" "beautifulsoup4" + ''; + + propagatedBuildInputs = [ + prometheus-alertmanager + ] ++ (with python3Packages; [ + aiohttp + aiohttp-openmetrics + beautifulsoup4 + jinja2 + slixmpp + prometheus-client + pyyaml + ]); + + nativeCheckInputs = with python3Packages; [ + setuptools + unittestCheckHook + pytz + ]; + + pythonImportsCheck = [ "prometheus_xmpp" ]; + + passthru.tests = { + binaryWorks = runCommand "${pname}-binary-test" {} '' + # Running with --help to avoid it erroring due to a missing config file + ${prometheus-xmpp-alerts}/bin/prometheus-xmpp-alerts --help | tee $out + grep "usage: prometheus-xmpp-alerts" $out + ''; + }; + + meta = { + description = "XMPP Web hook for Prometheus"; + homepage = "https://github.com/jelmer/prometheus-xmpp-alerts"; + maintainers = with lib.maintainers; [ fpletz ]; + license = with lib.licenses; [ asl20 ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/zfs-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/zfs-exporter.nix new file mode 100644 index 000000000000..d229daa14b81 --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/prometheus/zfs-exporter.nix @@ -0,0 +1,39 @@ +{ buildGoModule +, lib +, fetchFromGitHub +}: + +buildGoModule rec { + pname = "zfs_exporter"; + version = "2.3.2"; + + src = fetchFromGitHub { + owner = "pdf"; + repo = pname; + rev = "v" + version; + hash = "sha256-JpLrCkPg0vVR0bKKHY5qf1/OD+O7yvWxS7kb7Yg3+c4="; + }; + + vendorHash = "sha256-uIilESEmAxANxFOy7qvYxlF/bId/Kqh4jUspNknlhlc="; + + ldflags = [ + "-s" + "-w" + "-X github.com/prometheus/common/version.Version=${version}" + "-X github.com/prometheus/common/version.Revision=unknown" + "-X github.com/prometheus/common/version.Branch=unknown" + "-X github.com/prometheus/common/version.BuildUser=nix@nixpkgs" + "-X github.com/prometheus/common/version.BuildDate=unknown" + ]; + + postInstall = '' + install -Dm444 -t $out/share/doc/${pname} *.md + ''; + + meta = with lib; { + description = "ZFS Exporter for the Prometheus monitoring system"; + homepage = "https://github.com/pdf/zfs_exporter"; + license = licenses.mit; + maintainers = with maintainers; [ peterhoeg ]; + }; +} |