From 78805936bf9ba197f0a522c1df070aa0d09684a2 Mon Sep 17 00:00:00 2001 From: Jeremy Wall Date: Wed, 5 Jun 2024 22:28:20 -0400 Subject: [PATCH] update: victoria-logs server to latest release --- nix/base-system/flake.nix | 1 + nix/base-system/modules/victoria-logs.nix | 2 +- nix/packages/victoria-logs.nix | 57 +++++++++++++++++++++++ 3 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 nix/packages/victoria-logs.nix diff --git a/nix/base-system/flake.nix b/nix/base-system/flake.nix index fe28eef..ce3a9fe 100644 --- a/nix/base-system/flake.nix +++ b/nix/base-system/flake.nix @@ -251,6 +251,7 @@ EOF"; heracles = heracles-flake.packages."${system}".default; durnitisp = durnitisp; clio = clio; + victoria-logs = pkgs.callPackage ../packages/victoria-logs.nix { }; }) rust-overlay ]; diff --git a/nix/base-system/modules/victoria-logs.nix b/nix/base-system/modules/victoria-logs.nix index 7f08e8e..001276b 100644 --- a/nix/base-system/modules/victoria-logs.nix +++ b/nix/base-system/modules/victoria-logs.nix @@ -28,7 +28,7 @@ with lib; "--err-path=${victoria-logsErrPath}" "--pid-file=${victoria-logsPidPath}" "--" - "${pkgs.victoriametrics}/bin/victoria-logs" + "${pkgs.victoria-logs}/bin/victoria-logs" "-storageDataPath=${config.services.victoria-logs.dataPath}/data" "-httpListenAddr=${config.services.victoria-logs.listenAddr}" ]; diff --git a/nix/packages/victoria-logs.nix b/nix/packages/victoria-logs.nix new file mode 100644 index 0000000..b353d4f --- /dev/null +++ b/nix/packages/victoria-logs.nix @@ -0,0 +1,57 @@ +{ lib, pkgs }: +with pkgs; +buildGoModule rec { + pname = "VictoriaMetrics"; + version = "0.17.0-victorialogs"; + + src = fetchFromGitHub { + owner = pname; + repo = pname; + rev = "v${version}"; + hash = "sha256-Ps55tCEw2UQch7yKJ1zYEtEE6fEE0ahhIiagt/hFxpo="; + }; + + vendorHash = null; + + subPackages = [ + "app/victoria-logs" + ]; + + postPatch = '' + # main module (github.com/VictoriaMetrics/VictoriaMetrics) does not contain package + # github.com/VictoriaMetrics/VictoriaMetrics/app/vmui/packages/vmui/web + # + # This appears to be some kind of test server for development purposes only. + rm -f app/vmui/packages/vmui/web/{go.mod,main.go} + + # allow any go 1.22 version + substituteInPlace go.mod \ + --replace "go 1.22.4" "go 1.22" + + # Increase timeouts in tests to prevent failure on heavily loaded builders + substituteInPlace lib/storage/storage_test.go \ + --replace "time.After(10 " "time.After(120 " \ + --replace "time.NewTimer(30 " "time.NewTimer(120 " \ + --replace "time.NewTimer(time.Second * 10)" "time.NewTimer(time.Second * 120)" \ + ''; + + ldflags = [ "-s" "-w" "-X github.com/VictoriaMetrics/VictoriaMetrics/lib/buildinfo.Version=${version}" ]; + + preCheck = '' + # `lib/querytracer/tracer_test.go` expects `buildinfo.Version` to be unset + export ldflags=''${ldflags//=${version}/=} + ''; + + __darwinAllowLocalNetworking = true; + + 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 ]; + changelog = "https://github.com/VictoriaMetrics/VictoriaMetrics/releases/tag/v${version}"; + mainProgram = "victoria-metrics"; + }; +}