about summary refs log tree commit diff
path: root/pkgs/by-name/vi/victoriametrics/package.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/by-name/vi/victoriametrics/package.nix')
-rw-r--r--pkgs/by-name/vi/victoriametrics/package.nix79
1 files changed, 55 insertions, 24 deletions
diff --git a/pkgs/by-name/vi/victoriametrics/package.nix b/pkgs/by-name/vi/victoriametrics/package.nix
index 2f6d03ddea88b..622d042e73026 100644
--- a/pkgs/by-name/vi/victoriametrics/package.nix
+++ b/pkgs/by-name/vi/victoriametrics/package.nix
@@ -1,36 +1,55 @@
-{ lib, buildGoModule, fetchFromGitHub, nixosTests }:
+{
+  lib,
+  buildGoModule,
+  fetchFromGitHub,
+  nixosTests,
+  withServer ? true, # the actual metrics server
+  withVmAgent ? true, # Agent to collect metrics
+  withVmAlert ? true, # Alert Manager
+  withVmAuth ? true, # HTTP proxy for authentication
+  withBackupTools ? true, # vmbackup, vmrestore
+  withVmctl ? true, # vmctl is used to migrate time series
+  withVictoriaLogs ? true, # logs server
+}:
 
 buildGoModule rec {
   pname = "VictoriaMetrics";
   version = "1.101.0";
 
   src = fetchFromGitHub {
-    owner = pname;
-    repo = pname;
+    owner = "VictoriaMetrics";
+    repo = "VictoriaMetrics";
     rev = "v${version}";
     hash = "sha256-Jjz/CbVCvc9NFbvzYTFthG8cov4pYpc6y1A1Kmd3Mjg=";
   };
 
   vendorHash = null;
 
-  subPackages = [
-    "app/victoria-logs"
-    "app/victoria-metrics"
-    "app/vlinsert"
-    "app/vlselect"
-    "app/vlstorage"
-    "app/vmagent"
-    "app/vmalert-tool"
-    "app/vmalert"
-    "app/vmauth"
-    "app/vmctl"
-    "app/vminsert"
-    "app/vmselect"
-    "app/vmstorage"
-    "app/vmbackup"
-    "app/vmrestore"
-    "app/vmui"
-  ];
+  subPackages =
+    lib.optionals withServer [
+      "app/victoria-metrics"
+      "app/vminsert"
+      "app/vmselect"
+      "app/vmstorage"
+      "app/vmui"
+    ]
+    ++ lib.optionals withVmAgent [ "app/vmagent" ]
+    ++ lib.optionals withVmAlert [
+      "app/vmalert"
+      "app/vmalert-tool"
+    ]
+    ++ lib.optionals withVmAuth [ "app/vmauth" ]
+    ++ lib.optionals withVmctl [ "app/vmctl" ]
+    ++ lib.optionals withBackupTools [
+      "app/vmbackup"
+      "app/vmrestore"
+    ]
+    ++ lib.optionals withVictoriaLogs [
+      "app/victoria-logs"
+      "app/vlinsert"
+      "app/vlselect"
+      "app/vlstorage"
+    ];
 
   postPatch = ''
     # main module (github.com/VictoriaMetrics/VictoriaMetrics) does not contain package
@@ -46,7 +65,11 @@ buildGoModule rec {
       --replace "time.NewTimer(time.Second * 10)" "time.NewTimer(time.Second * 120)" \
   '';
 
-  ldflags = [ "-s" "-w" "-X github.com/VictoriaMetrics/VictoriaMetrics/lib/buildinfo.Version=${version}" ];
+  ldflags = [
+    "-s"
+    "-w"
+    "-X github.com/VictoriaMetrics/VictoriaMetrics/lib/buildinfo.Version=${version}"
+  ];
 
   preCheck = ''
     # `lib/querytracer/tracer_test.go` expects `buildinfo.Version` to be unset
@@ -55,13 +78,21 @@ buildGoModule rec {
 
   __darwinAllowLocalNetworking = true;
 
-  passthru.tests = { inherit (nixosTests) victoriametrics; };
+  passthru.tests = {
+    inherit (nixosTests) victoriametrics;
+  };
 
   meta = with lib; {
     homepage = "https://victoriametrics.com/";
     description = "fast, cost-effective and scalable time series database, long-term remote storage for Prometheus";
     license = licenses.asl20;
-    maintainers = with maintainers; [ yorickvp ivan ];
+    maintainers = with maintainers; [
+      yorickvp
+      ivan
+      nullx76
+      leona
+      shawn8901
+    ];
     changelog = "https://github.com/VictoriaMetrics/VictoriaMetrics/releases/tag/v${version}";
     mainProgram = "victoria-metrics";
   };