nixos/hydra: append application_name to HYDRA_DBI

This will make it easier to track specifically where queries are being
made from (assuming a `log_line_prefix` that includes `%a` in the
postgres configuration).
This commit is contained in:
Cole Helbling 2021-03-03 15:09:49 -08:00
parent d485a4db25
commit 10d513e633
No known key found for this signature in database
GPG key ID: B37E0F2371016A4C

View file

@ -89,6 +89,11 @@ in
example = "dbi:Pg:dbname=hydra;host=postgres.example.org;user=foo;"; example = "dbi:Pg:dbname=hydra;host=postgres.example.org;user=foo;";
description = '' description = ''
The DBI string for Hydra database connection. The DBI string for Hydra database connection.
NOTE: Attempts to set `application_name` will be overridden by
`hydra-TYPE` (where TYPE is e.g. `evaluator`, `queue-runner`,
etc.) in all hydra services to more easily distinguish where
queries are coming from.
''; '';
}; };
@ -284,7 +289,9 @@ in
{ wantedBy = [ "multi-user.target" ]; { wantedBy = [ "multi-user.target" ];
requires = optional haveLocalDB "postgresql.service"; requires = optional haveLocalDB "postgresql.service";
after = optional haveLocalDB "postgresql.service"; after = optional haveLocalDB "postgresql.service";
environment = env; environment = env // {
HYDRA_DBI = "${env.HYDRA_DBI};application_name=hydra-init";
};
preStart = '' preStart = ''
mkdir -p ${baseDir} mkdir -p ${baseDir}
chown hydra.hydra ${baseDir} chown hydra.hydra ${baseDir}
@ -339,7 +346,9 @@ in
{ wantedBy = [ "multi-user.target" ]; { wantedBy = [ "multi-user.target" ];
requires = [ "hydra-init.service" ]; requires = [ "hydra-init.service" ];
after = [ "hydra-init.service" ]; after = [ "hydra-init.service" ];
environment = serverEnv; environment = serverEnv // {
HYDRA_DBI = "${serverEnv.HYDRA_DBI};application_name=hydra-server";
};
restartTriggers = [ hydraConf ]; restartTriggers = [ hydraConf ];
serviceConfig = serviceConfig =
{ ExecStart = { ExecStart =
@ -361,6 +370,7 @@ in
environment = env // { environment = env // {
PGPASSFILE = "${baseDir}/pgpass-queue-runner"; # grrr PGPASSFILE = "${baseDir}/pgpass-queue-runner"; # grrr
IN_SYSTEMD = "1"; # to get log severity levels IN_SYSTEMD = "1"; # to get log severity levels
HYDRA_DBI = "${env.HYDRA_DBI};application_name=hydra-queue-runner";
}; };
serviceConfig = serviceConfig =
{ ExecStart = "@${hydra-package}/bin/hydra-queue-runner hydra-queue-runner -v"; { ExecStart = "@${hydra-package}/bin/hydra-queue-runner hydra-queue-runner -v";
@ -380,7 +390,9 @@ in
after = [ "hydra-init.service" "network.target" ]; after = [ "hydra-init.service" "network.target" ];
path = with pkgs; [ hydra-package nettools jq ]; path = with pkgs; [ hydra-package nettools jq ];
restartTriggers = [ hydraConf ]; restartTriggers = [ hydraConf ];
environment = env; environment = env // {
HYDRA_DBI = "${env.HYDRA_DBI};application_name=hydra-evaluator";
};
serviceConfig = serviceConfig =
{ ExecStart = "@${hydra-package}/bin/hydra-evaluator hydra-evaluator"; { ExecStart = "@${hydra-package}/bin/hydra-evaluator hydra-evaluator";
User = "hydra"; User = "hydra";
@ -392,7 +404,9 @@ in
systemd.services.hydra-update-gc-roots = systemd.services.hydra-update-gc-roots =
{ requires = [ "hydra-init.service" ]; { requires = [ "hydra-init.service" ];
after = [ "hydra-init.service" ]; after = [ "hydra-init.service" ];
environment = env; environment = env // {
HYDRA_DBI = "${env.HYDRA_DBI};application_name=hydra-update-gc-roots";
};
serviceConfig = serviceConfig =
{ ExecStart = "@${hydra-package}/bin/hydra-update-gc-roots hydra-update-gc-roots"; { ExecStart = "@${hydra-package}/bin/hydra-update-gc-roots hydra-update-gc-roots";
User = "hydra"; User = "hydra";
@ -403,7 +417,9 @@ in
systemd.services.hydra-send-stats = systemd.services.hydra-send-stats =
{ wantedBy = [ "multi-user.target" ]; { wantedBy = [ "multi-user.target" ];
after = [ "hydra-init.service" ]; after = [ "hydra-init.service" ];
environment = env; environment = env // {
HYDRA_DBI = "${env.HYDRA_DBI};application_name=hydra-send-stats";
};
serviceConfig = serviceConfig =
{ ExecStart = "@${hydra-package}/bin/hydra-send-stats hydra-send-stats"; { ExecStart = "@${hydra-package}/bin/hydra-send-stats hydra-send-stats";
User = "hydra"; User = "hydra";
@ -417,6 +433,7 @@ in
restartTriggers = [ hydraConf ]; restartTriggers = [ hydraConf ];
environment = env // { environment = env // {
PGPASSFILE = "${baseDir}/pgpass-queue-runner"; PGPASSFILE = "${baseDir}/pgpass-queue-runner";
HYDRA_DBI = "${env.HYDRA_DBI};application_name=hydra-notify";
}; };
serviceConfig = serviceConfig =
{ ExecStart = "@${hydra-package}/bin/hydra-notify hydra-notify"; { ExecStart = "@${hydra-package}/bin/hydra-notify hydra-notify";