nixosTests.victoriametrics: handleTest -> runTest
This commit is contained in:
parent
a698ac1214
commit
c8df61539d
@ -1511,7 +1511,7 @@ in
|
|||||||
velocity = runTest ./velocity.nix;
|
velocity = runTest ./velocity.nix;
|
||||||
vengi-tools = runTest ./vengi-tools.nix;
|
vengi-tools = runTest ./vengi-tools.nix;
|
||||||
victorialogs = runTest ./victorialogs.nix;
|
victorialogs = runTest ./victorialogs.nix;
|
||||||
victoriametrics = handleTest ./victoriametrics { };
|
victoriametrics = import ./victoriametrics { inherit runTest; };
|
||||||
vikunja = runTest ./vikunja.nix;
|
vikunja = runTest ./vikunja.nix;
|
||||||
virtualbox = handleTestOn [ "x86_64-linux" ] ./virtualbox.nix { };
|
virtualbox = handleTestOn [ "x86_64-linux" ] ./virtualbox.nix { };
|
||||||
vm-variant = handleTest ./vm-variant.nix { };
|
vm-variant = handleTest ./vm-variant.nix { };
|
||||||
|
@ -1,11 +1,6 @@
|
|||||||
|
{ runTest }:
|
||||||
{
|
{
|
||||||
system ? builtins.currentSystem,
|
remote-write = runTest ./remote-write.nix;
|
||||||
config ? { },
|
vmalert = runTest ./vmalert.nix;
|
||||||
pkgs ? import ../../.. { inherit system config; },
|
external-promscrape-config = runTest ./external-promscrape-config.nix;
|
||||||
}:
|
|
||||||
|
|
||||||
{
|
|
||||||
remote-write = import ./remote-write.nix { inherit system pkgs; };
|
|
||||||
vmalert = import ./vmalert.nix { inherit system pkgs; };
|
|
||||||
external-promscrape-config = import ./external-promscrape-config.nix { inherit system pkgs; };
|
|
||||||
}
|
}
|
||||||
|
@ -1,82 +1,70 @@
|
|||||||
import ../make-test-python.nix (
|
{ lib, pkgs, ... }:
|
||||||
{
|
let
|
||||||
lib,
|
nodeExporterPort = 9100;
|
||||||
pkgs,
|
promscrapeConfig = {
|
||||||
...
|
global = {
|
||||||
}:
|
scrape_interval = "2s";
|
||||||
let
|
|
||||||
nodeExporterPort = 9100;
|
|
||||||
promscrapeConfig = {
|
|
||||||
global = {
|
|
||||||
scrape_interval = "2s";
|
|
||||||
};
|
|
||||||
scrape_configs = [
|
|
||||||
{
|
|
||||||
job_name = "node";
|
|
||||||
static_configs = [
|
|
||||||
{
|
|
||||||
targets = [
|
|
||||||
"node:${toString nodeExporterPort}"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
settingsFormat = pkgs.formats.yaml { };
|
scrape_configs = [
|
||||||
promscrapeConfigYaml = settingsFormat.generate "prometheusConfig.yaml" promscrapeConfig;
|
{
|
||||||
in
|
job_name = "node";
|
||||||
{
|
static_configs = [
|
||||||
name = "victoriametrics-external-promscrape-config";
|
{
|
||||||
meta = with pkgs.lib.maintainers; {
|
targets = [
|
||||||
maintainers = [
|
"node:${toString nodeExporterPort}"
|
||||||
ryan4yin
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
nodes = {
|
|
||||||
victoriametrics =
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
environment.systemPackages = [ pkgs.jq ];
|
|
||||||
networking.firewall.allowedTCPPorts = [ 8428 ];
|
|
||||||
services.victoriametrics = {
|
|
||||||
enable = true;
|
|
||||||
extraOptions = [
|
|
||||||
"-promscrape.config=${toString promscrapeConfigYaml}"
|
|
||||||
];
|
];
|
||||||
};
|
}
|
||||||
};
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
settingsFormat = pkgs.formats.yaml { };
|
||||||
|
promscrapeConfigYaml = settingsFormat.generate "prometheusConfig.yaml" promscrapeConfig;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
name = "victoriametrics-external-promscrape-config";
|
||||||
|
meta = with lib.maintainers; {
|
||||||
|
maintainers = [
|
||||||
|
ryan4yin
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
node =
|
nodes = {
|
||||||
{ ... }:
|
victoriametrics =
|
||||||
{
|
{ pkgs, ... }:
|
||||||
services.prometheus.exporters.node = {
|
{
|
||||||
enable = true;
|
environment.systemPackages = [ pkgs.jq ];
|
||||||
openFirewall = true;
|
networking.firewall.allowedTCPPorts = [ 8428 ];
|
||||||
};
|
services.victoriametrics = {
|
||||||
|
enable = true;
|
||||||
|
extraOptions = [
|
||||||
|
"-promscrape.config=${toString promscrapeConfigYaml}"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
node = {
|
||||||
|
services.prometheus.exporters.node = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
testScript = ''
|
testScript = ''
|
||||||
node.wait_for_unit("prometheus-node-exporter")
|
node.wait_for_unit("prometheus-node-exporter")
|
||||||
node.wait_for_open_port(${toString nodeExporterPort})
|
node.wait_for_open_port(${toString nodeExporterPort})
|
||||||
|
|
||||||
victoriametrics.wait_for_unit("victoriametrics")
|
victoriametrics.wait_for_unit("victoriametrics")
|
||||||
victoriametrics.wait_for_open_port(8428)
|
victoriametrics.wait_for_open_port(8428)
|
||||||
|
|
||||||
|
|
||||||
promscrape_config = victoriametrics.succeed("journalctl -u victoriametrics -o cat | grep 'promscrape.config'")
|
promscrape_config = victoriametrics.succeed("journalctl -u victoriametrics -o cat | grep 'promscrape.config'")
|
||||||
assert '${toString promscrapeConfigYaml}' in promscrape_config
|
assert '${toString promscrapeConfigYaml}' in promscrape_config
|
||||||
|
|
||||||
victoriametrics.wait_until_succeeds(
|
victoriametrics.wait_until_succeeds(
|
||||||
"curl -sf 'http://localhost:8428/api/v1/query?query=node_exporter_build_info\{instance=\"node:9100\"\}' | "
|
"curl -sf 'http://localhost:8428/api/v1/query?query=node_exporter_build_info\{instance=\"node:9100\"\}' | "
|
||||||
+ "jq '.data.result[0].value[1]' | grep '\"1\"'"
|
+ "jq '.data.result[0].value[1]' | grep '\"1\"'"
|
||||||
)
|
)
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
)
|
|
||||||
|
@ -1,103 +1,87 @@
|
|||||||
# Primarily reference the implementation of <nixos/tests/prometheus/remote-write.nix>
|
# Primarily reference the implementation of <nixos/tests/prometheus/remote-write.nix>
|
||||||
import ../make-test-python.nix (
|
{ lib, pkgs, ... }:
|
||||||
{
|
let
|
||||||
lib,
|
username = "vmtest";
|
||||||
pkgs,
|
password = "fsddfy8233rb"; # random string
|
||||||
...
|
passwordFile = pkgs.writeText "password-file" password;
|
||||||
}:
|
in
|
||||||
let
|
{
|
||||||
username = "vmtest";
|
name = "victoriametrics-remote-write";
|
||||||
password = "fsddfy8233rb"; # random string
|
meta = with lib.maintainers; {
|
||||||
passwordFile = pkgs.writeText "password-file" password;
|
maintainers = [
|
||||||
in
|
yorickvp
|
||||||
{
|
ryan4yin
|
||||||
name = "victoriametrics-remote-write";
|
];
|
||||||
meta = with pkgs.lib.maintainers; {
|
};
|
||||||
maintainers = [
|
|
||||||
yorickvp
|
|
||||||
ryan4yin
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
nodes = {
|
nodes = {
|
||||||
victoriametrics =
|
victoriametrics =
|
||||||
{
|
{ pkgs, ... }:
|
||||||
config,
|
{
|
||||||
pkgs,
|
environment.systemPackages = [ pkgs.jq ];
|
||||||
...
|
networking.firewall.allowedTCPPorts = [ 8428 ];
|
||||||
}:
|
services.victoriametrics = {
|
||||||
{
|
enable = true;
|
||||||
environment.systemPackages = [ pkgs.jq ];
|
extraOptions = [
|
||||||
networking.firewall.allowedTCPPorts = [ 8428 ];
|
"-httpAuth.username=${username}"
|
||||||
services.victoriametrics = {
|
"-httpAuth.password=file://${toString passwordFile}"
|
||||||
enable = true;
|
];
|
||||||
extraOptions = [
|
};
|
||||||
"-httpAuth.username=${username}"
|
};
|
||||||
"-httpAuth.password=file://${toString passwordFile}"
|
|
||||||
|
vmagent =
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
{
|
||||||
|
environment.systemPackages = [ pkgs.jq ];
|
||||||
|
services.vmagent = {
|
||||||
|
enable = true;
|
||||||
|
remoteWrite = {
|
||||||
|
url = "http://victoriametrics:8428/api/v1/write";
|
||||||
|
basicAuthUsername = username;
|
||||||
|
basicAuthPasswordFile = toString passwordFile;
|
||||||
|
};
|
||||||
|
|
||||||
|
prometheusConfig = {
|
||||||
|
global = {
|
||||||
|
scrape_interval = "2s";
|
||||||
|
};
|
||||||
|
scrape_configs = [
|
||||||
|
{
|
||||||
|
job_name = "node";
|
||||||
|
static_configs = [
|
||||||
|
{
|
||||||
|
targets = [
|
||||||
|
"node:${toString config.services.prometheus.exporters.node.port}"
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
vmagent =
|
node = {
|
||||||
{
|
services.prometheus.exporters.node = {
|
||||||
config,
|
enable = true;
|
||||||
pkgs,
|
openFirewall = true;
|
||||||
...
|
};
|
||||||
}:
|
|
||||||
{
|
|
||||||
environment.systemPackages = [ pkgs.jq ];
|
|
||||||
services.vmagent = {
|
|
||||||
enable = true;
|
|
||||||
remoteWrite = {
|
|
||||||
url = "http://victoriametrics:8428/api/v1/write";
|
|
||||||
basicAuthUsername = username;
|
|
||||||
basicAuthPasswordFile = toString passwordFile;
|
|
||||||
};
|
|
||||||
|
|
||||||
prometheusConfig = {
|
|
||||||
global = {
|
|
||||||
scrape_interval = "2s";
|
|
||||||
};
|
|
||||||
scrape_configs = [
|
|
||||||
{
|
|
||||||
job_name = "node";
|
|
||||||
static_configs = [
|
|
||||||
{
|
|
||||||
targets = [
|
|
||||||
"node:${toString config.services.prometheus.exporters.node.port}"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
node =
|
|
||||||
{ ... }:
|
|
||||||
{
|
|
||||||
services.prometheus.exporters.node = {
|
|
||||||
enable = true;
|
|
||||||
openFirewall = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
testScript = ''
|
testScript = ''
|
||||||
node.wait_for_unit("prometheus-node-exporter")
|
node.wait_for_unit("prometheus-node-exporter")
|
||||||
node.wait_for_open_port(9100)
|
node.wait_for_open_port(9100)
|
||||||
|
|
||||||
victoriametrics.wait_for_unit("victoriametrics")
|
victoriametrics.wait_for_unit("victoriametrics")
|
||||||
victoriametrics.wait_for_open_port(8428)
|
victoriametrics.wait_for_open_port(8428)
|
||||||
|
|
||||||
vmagent.wait_for_unit("vmagent")
|
vmagent.wait_for_unit("vmagent")
|
||||||
|
|
||||||
# check remote write
|
# check remote write
|
||||||
victoriametrics.wait_until_succeeds(
|
victoriametrics.wait_until_succeeds(
|
||||||
"curl --user '${username}:${password}' -sf 'http://localhost:8428/api/v1/query?query=node_exporter_build_info\{instance=\"node:9100\"\}' | "
|
"curl --user '${username}:${password}' -sf 'http://localhost:8428/api/v1/query?query=node_exporter_build_info\{instance=\"node:9100\"\}' | "
|
||||||
+ "jq '.data.result[0].value[1]' | grep '\"1\"'"
|
+ "jq '.data.result[0].value[1]' | grep '\"1\"'"
|
||||||
)
|
)
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
)
|
|
||||||
|
@ -1,179 +1,157 @@
|
|||||||
# Primarily reference the implementation of <nixos/tests/prometheus/alertmanager.nix>
|
# Primarily reference the implementation of <nixos/tests/prometheus/alertmanager.nix>
|
||||||
import ../make-test-python.nix (
|
{ lib, pkgs, ... }:
|
||||||
{
|
{
|
||||||
lib,
|
name = "victoriametrics-vmalert";
|
||||||
pkgs,
|
meta = with lib.maintainers; {
|
||||||
...
|
maintainers = [
|
||||||
}:
|
yorickvp
|
||||||
{
|
ryan4yin
|
||||||
name = "victoriametrics-vmalert";
|
];
|
||||||
meta = with pkgs.lib.maintainers; {
|
};
|
||||||
maintainers = [
|
|
||||||
yorickvp
|
nodes = {
|
||||||
ryan4yin
|
victoriametrics =
|
||||||
];
|
{ config, pkgs, ... }:
|
||||||
|
{
|
||||||
|
environment.systemPackages = [ pkgs.jq ];
|
||||||
|
networking.firewall.allowedTCPPorts = [ 8428 ];
|
||||||
|
services.victoriametrics = {
|
||||||
|
enable = true;
|
||||||
|
prometheusConfig = {
|
||||||
|
global = {
|
||||||
|
scrape_interval = "2s";
|
||||||
|
};
|
||||||
|
scrape_configs = [
|
||||||
|
{
|
||||||
|
job_name = "alertmanager";
|
||||||
|
static_configs = [
|
||||||
|
{
|
||||||
|
targets = [
|
||||||
|
"alertmanager:${toString config.services.prometheus.alertmanager.port}"
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
job_name = "node";
|
||||||
|
static_configs = [
|
||||||
|
{
|
||||||
|
targets = [
|
||||||
|
"node:${toString config.services.prometheus.exporters.node.port}"
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.vmalert.instances."" = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
"datasource.url" = "http://localhost:8428"; # victoriametrics' api
|
||||||
|
"notifier.url" = [
|
||||||
|
"http://alertmanager:${toString config.services.prometheus.alertmanager.port}"
|
||||||
|
]; # alertmanager's api
|
||||||
|
rule = [
|
||||||
|
(pkgs.writeText "instance-down.yml" ''
|
||||||
|
groups:
|
||||||
|
- name: test
|
||||||
|
rules:
|
||||||
|
- alert: InstanceDown
|
||||||
|
expr: up == 0
|
||||||
|
for: 5s
|
||||||
|
labels:
|
||||||
|
severity: page
|
||||||
|
annotations:
|
||||||
|
summary: "Instance {{ $labels.instance }} down"
|
||||||
|
'')
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
alertmanager = {
|
||||||
|
services.prometheus.alertmanager = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = true;
|
||||||
|
|
||||||
|
configuration = {
|
||||||
|
global = {
|
||||||
|
resolve_timeout = "1m";
|
||||||
|
};
|
||||||
|
|
||||||
|
route = {
|
||||||
|
# Root route node
|
||||||
|
receiver = "test";
|
||||||
|
group_by = [ "..." ];
|
||||||
|
continue = false;
|
||||||
|
group_wait = "1s";
|
||||||
|
group_interval = "15s";
|
||||||
|
repeat_interval = "24h";
|
||||||
|
};
|
||||||
|
|
||||||
|
receivers = [
|
||||||
|
{
|
||||||
|
name = "test";
|
||||||
|
webhook_configs = [
|
||||||
|
{
|
||||||
|
url = "http://logger:6725";
|
||||||
|
send_resolved = true;
|
||||||
|
max_alerts = 0;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
nodes = {
|
logger = {
|
||||||
victoriametrics =
|
networking.firewall.allowedTCPPorts = [ 6725 ];
|
||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
environment.systemPackages = [ pkgs.jq ];
|
|
||||||
networking.firewall.allowedTCPPorts = [ 8428 ];
|
|
||||||
services.victoriametrics = {
|
|
||||||
enable = true;
|
|
||||||
prometheusConfig = {
|
|
||||||
global = {
|
|
||||||
scrape_interval = "2s";
|
|
||||||
};
|
|
||||||
scrape_configs = [
|
|
||||||
{
|
|
||||||
job_name = "alertmanager";
|
|
||||||
static_configs = [
|
|
||||||
{
|
|
||||||
targets = [
|
|
||||||
"alertmanager:${toString config.services.prometheus.alertmanager.port}"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
job_name = "node";
|
|
||||||
static_configs = [
|
|
||||||
{
|
|
||||||
targets = [
|
|
||||||
"node:${toString config.services.prometheus.exporters.node.port}"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.vmalert.instances."" = {
|
services.prometheus.alertmanagerWebhookLogger.enable = true;
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
"datasource.url" = "http://localhost:8428"; # victoriametrics' api
|
|
||||||
"notifier.url" = [
|
|
||||||
"http://alertmanager:${toString config.services.prometheus.alertmanager.port}"
|
|
||||||
]; # alertmanager's api
|
|
||||||
rule = [
|
|
||||||
(pkgs.writeText "instance-down.yml" ''
|
|
||||||
groups:
|
|
||||||
- name: test
|
|
||||||
rules:
|
|
||||||
- alert: InstanceDown
|
|
||||||
expr: up == 0
|
|
||||||
for: 5s
|
|
||||||
labels:
|
|
||||||
severity: page
|
|
||||||
annotations:
|
|
||||||
summary: "Instance {{ $labels.instance }} down"
|
|
||||||
'')
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
alertmanager =
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
services.prometheus.alertmanager = {
|
|
||||||
enable = true;
|
|
||||||
openFirewall = true;
|
|
||||||
|
|
||||||
configuration = {
|
|
||||||
global = {
|
|
||||||
resolve_timeout = "1m";
|
|
||||||
};
|
|
||||||
|
|
||||||
route = {
|
|
||||||
# Root route node
|
|
||||||
receiver = "test";
|
|
||||||
group_by = [ "..." ];
|
|
||||||
continue = false;
|
|
||||||
group_wait = "1s";
|
|
||||||
group_interval = "15s";
|
|
||||||
repeat_interval = "24h";
|
|
||||||
};
|
|
||||||
|
|
||||||
receivers = [
|
|
||||||
{
|
|
||||||
name = "test";
|
|
||||||
webhook_configs = [
|
|
||||||
{
|
|
||||||
url = "http://logger:6725";
|
|
||||||
send_resolved = true;
|
|
||||||
max_alerts = 0;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
logger =
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
networking.firewall.allowedTCPPorts = [ 6725 ];
|
|
||||||
|
|
||||||
services.prometheus.alertmanagerWebhookLogger.enable = true;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
testScript = ''
|
testScript = ''
|
||||||
alertmanager.wait_for_unit("alertmanager")
|
alertmanager.wait_for_unit("alertmanager")
|
||||||
alertmanager.wait_for_open_port(9093)
|
alertmanager.wait_for_open_port(9093)
|
||||||
alertmanager.wait_until_succeeds("curl -s http://127.0.0.1:9093/-/ready")
|
alertmanager.wait_until_succeeds("curl -s http://127.0.0.1:9093/-/ready")
|
||||||
|
|
||||||
logger.wait_for_unit("alertmanager-webhook-logger")
|
logger.wait_for_unit("alertmanager-webhook-logger")
|
||||||
logger.wait_for_open_port(6725)
|
logger.wait_for_open_port(6725)
|
||||||
|
|
||||||
victoriametrics.wait_for_unit("victoriametrics")
|
victoriametrics.wait_for_unit("victoriametrics")
|
||||||
victoriametrics.wait_for_unit("vmalert")
|
victoriametrics.wait_for_unit("vmalert")
|
||||||
victoriametrics.wait_for_open_port(8428)
|
victoriametrics.wait_for_open_port(8428)
|
||||||
|
|
||||||
victoriametrics.wait_until_succeeds(
|
victoriametrics.wait_until_succeeds(
|
||||||
"curl -sf 'http://127.0.0.1:8428/api/v1/query?query=count(up\{job=\"alertmanager\"\}==1)' | "
|
"curl -sf 'http://127.0.0.1:8428/api/v1/query?query=count(up\{job=\"alertmanager\"\}==1)' | "
|
||||||
+ "jq '.data.result[0].value[1]' | grep '\"1\"'"
|
+ "jq '.data.result[0].value[1]' | grep '\"1\"'"
|
||||||
)
|
)
|
||||||
|
|
||||||
victoriametrics.wait_until_succeeds(
|
victoriametrics.wait_until_succeeds(
|
||||||
"curl -sf 'http://127.0.0.1:8428/api/v1/query?query=sum(alertmanager_build_info)%20by%20(version)' | "
|
"curl -sf 'http://127.0.0.1:8428/api/v1/query?query=sum(alertmanager_build_info)%20by%20(version)' | "
|
||||||
+ "jq '.data.result[0].metric.version' | grep '\"${pkgs.prometheus-alertmanager.version}\"'"
|
+ "jq '.data.result[0].metric.version' | grep '\"${pkgs.prometheus-alertmanager.version}\"'"
|
||||||
)
|
)
|
||||||
|
|
||||||
victoriametrics.wait_until_succeeds(
|
victoriametrics.wait_until_succeeds(
|
||||||
"curl -sf 'http://127.0.0.1:8428/api/v1/query?query=count(up\{job=\"node\"\}!=1)' | "
|
"curl -sf 'http://127.0.0.1:8428/api/v1/query?query=count(up\{job=\"node\"\}!=1)' | "
|
||||||
+ "jq '.data.result[0].value[1]' | grep '\"1\"'"
|
+ "jq '.data.result[0].value[1]' | grep '\"1\"'"
|
||||||
)
|
)
|
||||||
|
|
||||||
victoriametrics.wait_until_succeeds(
|
victoriametrics.wait_until_succeeds(
|
||||||
"curl -sf 'http://127.0.0.1:8428/api/v1/query?query=alertmanager_notifications_total\{integration=\"webhook\"\}' | "
|
"curl -sf 'http://127.0.0.1:8428/api/v1/query?query=alertmanager_notifications_total\{integration=\"webhook\"\}' | "
|
||||||
+ "jq '.data.result[0].value[1]' | grep -v '\"0\"'"
|
+ "jq '.data.result[0].value[1]' | grep -v '\"0\"'"
|
||||||
)
|
)
|
||||||
|
|
||||||
logger.wait_until_succeeds(
|
logger.wait_until_succeeds(
|
||||||
"journalctl -o cat -u alertmanager-webhook-logger.service | grep '\"alertname\":\"InstanceDown\"'"
|
"journalctl -o cat -u alertmanager-webhook-logger.service | grep '\"alertname\":\"InstanceDown\"'"
|
||||||
)
|
)
|
||||||
|
|
||||||
logger.log(logger.succeed("systemd-analyze security alertmanager-webhook-logger.service | grep -v '✓'"))
|
logger.log(logger.succeed("systemd-analyze security alertmanager-webhook-logger.service | grep -v '✓'"))
|
||||||
|
|
||||||
alertmanager.log(alertmanager.succeed("systemd-analyze security alertmanager.service | grep -v '✓'"))
|
alertmanager.log(alertmanager.succeed("systemd-analyze security alertmanager.service | grep -v '✓'"))
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
)
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user