From 39331740f8127a427941a8daf1d32a7cad0e253f Mon Sep 17 00:00:00 2001 From: Martin Milata Date: Mon, 5 Apr 2021 23:38:18 +0200 Subject: [PATCH 1/2] prometheus-lnd-exporter: unstable-2020-12-04 -> unstable-2021-03-26 --- pkgs/servers/monitoring/prometheus/lnd-exporter.nix | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/pkgs/servers/monitoring/prometheus/lnd-exporter.nix b/pkgs/servers/monitoring/prometheus/lnd-exporter.nix index 34a9511d0b57..034d5a0c3861 100644 --- a/pkgs/servers/monitoring/prometheus/lnd-exporter.nix +++ b/pkgs/servers/monitoring/prometheus/lnd-exporter.nix @@ -2,23 +2,21 @@ buildGoModule rec { pname = "lndmon"; - version = "unstable-2020-12-04"; + version = "unstable-2021-03-26"; src = fetchFromGitHub { owner = "lightninglabs"; repo = "lndmon"; - sha256 = "0q72jbkhw1vpwxd0r80l1v4ab71sakc315plfqbijy7al9ywq5nl"; - rev = "f07d574320dd1a6a428fecd47f3a5bb46a0fc4d1"; + sha256 = "14lmmjq61p8yhc86swigs43risqi31vlmz7ri8j0n0fyp8lm2kxs"; + rev = "3aa925aa4f633a6c4d132601922e78f173ae8ac1"; }; vendorSha256 = "06if387b9m02ciqgcissih1x06l33djp87vgspwzz589f77vczk8"; - doCheck = false; - passthru.tests = { inherit (nixosTests.prometheus-exporters) lnd; }; meta = with lib; { - inherit (src.meta) homepage; + homepage = "https://github.com/lightninglabs/lndmon"; description = "Prometheus exporter for lnd (Lightning Network Daemon)"; license = licenses.mit; maintainers = with maintainers; [ mmilata ]; From eab071ae545169528bd9769000fb40287ccb2b08 Mon Sep 17 00:00:00 2001 From: Martin Milata Date: Mon, 5 Apr 2021 23:39:14 +0200 Subject: [PATCH 2/2] nixos/prometheus-lnd-exporter: fix test The bitcoin module options have changed, reflect this. Also switch to regtest which is more suitable for testing. --- nixos/tests/prometheus-exporters.nix | 42 ++++++++++++++++++++++------ 1 file changed, 33 insertions(+), 9 deletions(-) diff --git a/nixos/tests/prometheus-exporters.nix b/nixos/tests/prometheus-exporters.nix index 69a9a6b23218..a33aca29fd20 100644 --- a/nixos/tests/prometheus-exporters.nix +++ b/nixos/tests/prometheus-exporters.nix @@ -454,15 +454,21 @@ let enable = true; lndTlsPath = "/var/lib/lnd/tls.cert"; lndMacaroonDir = "/var/lib/lnd"; + extraFlags = [ "--lnd.network=regtest" ]; }; metricProvider = { - systemd.services.prometheus-lnd-exporter.serviceConfig.DynamicUser = false; - services.bitcoind.main.enable = true; - services.bitcoind.main.extraConfig = '' - rpcauth=bitcoinrpc:e8fe33f797e698ac258c16c8d7aadfbe$872bdb8f4d787367c26bcfd75e6c23c4f19d44a69f5d1ad329e5adf3f82710f7 - bitcoind.zmqpubrawblock=tcp://127.0.0.1:28332 - bitcoind.zmqpubrawtx=tcp://127.0.0.1:28333 - ''; + virtualisation.memorySize = 1024; + systemd.services.prometheus-lnd-exporter.serviceConfig.RestartSec = 15; + systemd.services.prometheus-lnd-exporter.after = [ "lnd.service" ]; + services.bitcoind.regtest = { + enable = true; + extraConfig = '' + rpcauth=bitcoinrpc:e8fe33f797e698ac258c16c8d7aadfbe$872bdb8f4d787367c26bcfd75e6c23c4f19d44a69f5d1ad329e5adf3f82710f7 + zmqpubrawblock=tcp://127.0.0.1:28332 + zmqpubrawtx=tcp://127.0.0.1:28333 + ''; + extraCmdlineOptions = [ "-regtest" ]; + }; systemd.services.lnd = { serviceConfig.ExecStart = '' ${pkgs.lnd}/bin/lnd \ @@ -471,7 +477,7 @@ let --tlskeypath=/var/lib/lnd/tls.key \ --logdir=/var/log/lnd \ --bitcoin.active \ - --bitcoin.mainnet \ + --bitcoin.regtest \ --bitcoin.node=bitcoind \ --bitcoind.rpcuser=bitcoinrpc \ --bitcoind.rpcpass=hunter2 \ @@ -483,13 +489,31 @@ let wantedBy = [ "multi-user.target" ]; after = [ "network.target" ]; }; + # initialize wallet, creates macaroon needed by exporter + systemd.services.lnd.postStart = '' + ${pkgs.curl}/bin/curl \ + --retry 20 \ + --retry-delay 1 \ + --retry-connrefused \ + --cacert /var/lib/lnd/tls.cert \ + -X GET \ + https://localhost:8080/v1/genseed | ${pkgs.jq}/bin/jq -c '.cipher_seed_mnemonic' > /tmp/seed + ${pkgs.curl}/bin/curl \ + --retry 20 \ + --retry-delay 1 \ + --retry-connrefused \ + --cacert /var/lib/lnd/tls.cert \ + -X POST \ + -d "{\"wallet_password\": \"asdfasdfasdf\", \"cipher_seed_mnemonic\": $(cat /tmp/seed | tr -d '\n')}" \ + https://localhost:8080/v1/initwallet + ''; }; exporterTest = '' wait_for_unit("lnd.service") wait_for_open_port(10009) wait_for_unit("prometheus-lnd-exporter.service") wait_for_open_port(9092) - succeed("curl -sSf localhost:9092/metrics | grep '^promhttp_metric_handler'") + succeed("curl -sSf localhost:9092/metrics | grep '^lnd_peer_count'") ''; };