mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-18 03:34:58 +00:00
0c9a754a6c
Since c6fae8bb0e
, when all discovery
plugins are disabled, the postPatch phase contains shell code like
> ( ) > plugins.yml
which is invalid syntax. So make sure there's always at least
one statement for the subshell, giving the expected empty file.
135 lines
4.3 KiB
Nix
135 lines
4.3 KiB
Nix
{ stdenv
|
|
, lib
|
|
, go
|
|
, pkgs
|
|
, buildGoModule
|
|
, fetchFromGitHub
|
|
, fetchurl
|
|
, nixosTests
|
|
, enableAWS ? true
|
|
, enableAzure ? true
|
|
, enableConsul ? true
|
|
, enableDigitalOcean ? true
|
|
, enableEureka ? true
|
|
, enableGCE ? true
|
|
, enableHetzner ? true
|
|
, enableKubernetes ? true
|
|
, enableLinode ? true
|
|
, enableMarathon ? true
|
|
, enableMoby ? true
|
|
, enableOpenstack ? true
|
|
, enablePuppetDB ? true
|
|
, enableScaleway ? true
|
|
, enableTriton ? true
|
|
, enableUyuni ? true
|
|
, enableXDS ? true
|
|
, enableZookeeper ? true
|
|
}:
|
|
|
|
let
|
|
version = "2.35.0";
|
|
webUiStatic = fetchurl {
|
|
url = "https://github.com/prometheus/prometheus/releases/download/v${version}/prometheus-web-ui-${version}.tar.gz";
|
|
sha256 = "sha256-66zWOjFTYwmspiKeklt3NAAT1uJJrZqeyQvWWsCN9fQ=";
|
|
};
|
|
in
|
|
buildGoModule rec {
|
|
pname = "prometheus";
|
|
inherit version;
|
|
|
|
src = fetchFromGitHub {
|
|
rev = "v${version}";
|
|
owner = "prometheus";
|
|
repo = "prometheus";
|
|
sha256 = "sha256-h0uBs3xMKpRH3A1VG5xrhjXVAT7GL5L3UZWb3HJ2Fz4=";
|
|
};
|
|
|
|
vendorSha256 = "sha256-0I6hmjhdfB41rWOQ9FM9CMq5w5437ka/jLuFXcBQBlM=";
|
|
|
|
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 (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 (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 (enableOpenstack)
|
|
"echo - github.com/prometheus/prometheus/discovery/openstack"}
|
|
${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 (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 make -o assets assets-compress plugins; fi
|
|
'';
|
|
|
|
tags = [ "builtinassets" ];
|
|
|
|
ldflags =
|
|
let
|
|
t = "github.com/prometheus/common/version";
|
|
in
|
|
[
|
|
"-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
|
|
'';
|
|
|
|
doCheck = !stdenv.isDarwin; # https://hydra.nixos.org/build/130673870/nixlog/1
|
|
|
|
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; [ benley fpletz globin willibutz Frostman ];
|
|
platforms = platforms.unix;
|
|
};
|
|
}
|