Graham Christensen
59ac96a99c
Track the number of steps created
2022-04-06 20:23:02 -04:00
Graham Christensen
1c12c5882f
hydra queue runner: instrument the process of loading new builds with prom
2022-04-06 20:18:29 -04:00
Graham Christensen
5de08d412e
queue metrics: refactor the metrics into a struct
2022-04-06 20:00:30 -04:00
Graham Christensen
46f52b4c4e
bring back the working version Cole made
2022-04-06 15:49:38 -04:00
Cole Helbling
5bff730f2c
WIP: I love it when they delete the assignment operator :)
2022-04-06 11:41:40 -07:00
Cole Helbling
edf3c348f2
hydra-queue-runner: make entire address configurable
2022-04-06 10:59:45 -07:00
Cole Helbling
33bc60b83c
hydra-queue-runner: move exporter back to State::run
...
It's (arguably) better than risking pinning the thread at 100% due to
the busy `while` loop.
2022-04-06 10:49:14 -07:00
Cole Helbling
8c5636fe18
hydra-queue-runner: use port 9198 by default
...
Co-authored-by: Graham Christensen <graham@grahamc.com>
2022-04-02 17:32:14 -07:00
Cole Helbling
4789eba92c
hydra-queue-runer: split metrics functionality into its own function
2022-03-29 10:55:28 -07:00
Cole Helbling
928b3b8268
hydra-queue-runner: fix priority of flag over config file
2022-03-29 10:42:07 -07:00
Cole Helbling
5ddb9a98ca
fixup! hydra-queue-runner: log message before and after exporter is started
2022-03-29 08:47:41 -07:00
Cole Helbling
905a7a7beb
hydra-queue-runner: read metrics port from queue_runner_metrics_port
config
2022-03-29 08:46:43 -07:00
Cole Helbling
9cdc5aceed
hydra-queue-runner: log message before and after exporter is started
...
This way, if something goes wrong between the two, it's easier to narrow
down where the issue lies.
2022-03-29 08:41:19 -07:00
Cole Helbling
8503a7917b
fixup! hydra-queue-runner: make registry member of State, configurable metrics port
2022-03-22 13:38:13 -07:00
Cole Helbling
c0f826b92d
hydra-queue-runner: get the listening port from the exposer itself
...
Otherwise, when the port is randomly chosen (e.g. by specifying no port,
or a port of 0), it will just show that the port is 0 and not the port
that is actually serving the metrics.
2022-03-14 08:41:45 -07:00
Cole Helbling
52a29d43e6
hydra-queue-runner: make registry member of State, configurable metrics port
...
Thanks to the updated prometheus-cpp library, specifying a port of 0
will cause it to pick a random (available) port -- ideal for tests.
2022-03-11 11:58:10 -08:00
Cole Helbling
3bf31bd6a6
hydra-queue-runner: add simple "up" exporter
...
There are probably better ways to achieve this (and will likely need to
be refactored a bit to support further metrics).
2022-03-10 12:36:58 -08:00
Graham Christensen
9316544abf
src/hydra-eval-jobs/hydra-eval-jobs.cc: .get<std::string> for drvPath
...
Co-authored-by: Kayla Fire <firestack@users.noreply.github.com>
2022-02-21 12:41:21 -05:00
Graham Christensen
290e0653ad
hydra-eval-jobs: GC root aggregate jobs
2022-02-20 12:28:40 -05:00
Graham Christensen
4c41ca08e1
Merge pull request #1155 from helsinki-systems/fix/graph-readability
...
build-graphs: Fix readability in dark mode
2022-02-14 11:27:37 -05:00
Janne Heß
6d146deaf0
build-graphs: Fix readability in dark mode
2022-02-13 14:00:17 +01:00
Graham Christensen
71c06f2ce7
LDAP normalization errors: note that the error came while normalizing the roles.
2022-02-11 10:55:27 -05:00
Graham Christensen
f07fb7d279
LDAP support: include BC support for the YAML based loading
...
Includes a refactoring of the configuration loader.
2022-02-11 10:49:38 -05:00
Janne Heß
61d74a7194
Redo LDAP config in the main configuration and add role mappings
2022-02-11 10:49:38 -05:00
Graham Christensen
d0bc0d0eda
Merge pull request #1152 from DeterminateSystems/parallel-tests
...
Parallel tests, fix a hydra-queue-runner race condition
2022-02-10 12:11:20 -05:00
Graham Christensen
4acaf9c8b0
hydra-queue-runner: don't dispatch until the machines parser has completed one run
...
Periodically, I have seen tests fail because of out of order queue runner behavior:
checking the queue for builds > 0...
loading build 1 (tests:basic:empty_dir)
aborting unsupported build step '...-empty-dir.drv' (type 'x86_64-linux')
marking build 1 as failed
adding new machine ‘localhost’
This patch should prevent the dispatcher from running before any machines are
made available.
2022-02-10 10:54:30 -05:00
Graham Christensen
9ae7c8bddc
Hydra::Helper::Exec add an expectOkay which dies with stdout / stderr on exit
2022-02-09 20:56:10 -05:00
Graham Christensen
845e6d4760
captureStdoutStderr*: move to Hydra::Helper::Exec which helps avoid some environment variable fixation problems
2022-02-09 14:28:50 -05:00
Graham Christensen
517dce285a
eval_added event: change interface to traceID\tjobsetID\tevaluationID
...
I was not going to break the interface until I noticed
the current implementation uses the string literal \t.
2022-02-08 09:51:35 -05:00
Graham Christensen
d512e6220f
eval_failed event: change interface to traceID\tjobsetID
...
I was not going to break the interface until I noticed the other eval_* events used literal \ts
2022-02-08 09:51:35 -05:00
Graham Christensen
2597fa8c11
eval_cached event: change interface to traceID\tjobsetID\tevaluationID
...
I was not going to break the interface until I noticed
the current implementation uses the string literal \t.
2022-02-08 09:51:35 -05:00
Graham Christensen
c30f084f32
eval_started event: change interface to traceID\tjobsetID
...
I was not going to break the interface until I noticed
the current implementation uses the string literal \t.
2022-02-08 09:51:35 -05:00
Graham Christensen
8a18326f2b
Sort notification classes / events
2022-02-07 16:08:27 -05:00
Graham Christensen
85b842e0ac
Merge pull request #1137 from DeterminateSystems/runcommand-logs
...
Store and display the output of RunCommands
2022-01-31 16:26:31 -05:00
Cole Helbling
b57345ba1f
hydra.sql: add IndexRunCommandLogsOnBuildID index
2022-01-31 12:56:34 -08:00
Cole Helbling
d0b6329aa8
sql/upgrade-81: remove unnecessary comment
2022-01-31 12:55:36 -08:00
Cole Helbling
8c67e32480
RunCommand: ensure we reset the umask
2022-01-31 12:55:36 -08:00
Cole Helbling
34e4c119f4
build.tt: don't duplicate RunCommandLog buttons
2022-01-31 11:40:16 -08:00
Cole Helbling
61189ecca9
Helper/Nix: constructRunCommandLogPath: verify uuid is valid
...
This shouldn't be possible normally, but it is possible to:
$db->resultset('RunCommandLogs')->new({ uuid => "../etc/passwd" });
if you have access to the `$db`.
2022-01-31 08:58:33 -08:00
Cole Helbling
e381751564
Helper/Nix: constructRunCommandLogPath: return undef in case of an error
...
This allows us to give a web request to an invalid UUID a 404.
2022-01-31 08:58:33 -08:00
Cole Helbling
8eab7b8543
Helper/Nix: constructRunCommandLogPath: take RunCommandLog as input
...
This way we ensure that it actually exists in the database, rather than
blindly trusting user-generated input.
2022-01-31 08:58:33 -08:00
Cole Helbling
61914d56c6
runcommand-log.tt: escape the command
2022-01-31 08:58:33 -08:00
Cole Helbling
71bbb042db
build.tt: link to the pretty, raw, and tail versions of the log
...
Also split it out to a new div -- there are now 3 lines per
RunCommandLog -- the first saying when it started, the second saying how
long it ran for (or has been running), and the third with the buttons
for the pretty, raw, and tail versions of the log.
2022-01-31 08:58:33 -08:00
Cole Helbling
3594ba942a
Controller/Build: use showLog in view_runcommandlog
...
This also adds the `runcommandlog` object to the stash so that we can
access its uuid as well as command run in order to display more useful
and specific information on the webpage.
2022-01-31 08:58:33 -08:00
Cole Helbling
1d0076408b
Controller/Build: pass log_uri to showLog in place of drvPath
...
This way, we can reuse the `showLog` sub for other things, such as
`view_runcommandlog` (which doesn't have a drvPath attached).
2022-01-31 08:58:33 -08:00
Cole Helbling
ff390e89a6
Controller/Build: remove unused parameter from showLog
2022-01-31 08:58:33 -08:00
Cole Helbling
fc3cf4ecb2
RunCommandLogs: identify and access via uuid
...
Using a sha1 of the command combined with the build ID is not a
particularly good or unique identifier:
* A build could fail, be restarted, and then succeed -- assuming no
configuration changes, the sha1 hash of the command as well as the build
ID will be the same. This would lead to an overwritten log file.
* Allowing user input to influence filenames is not the best of ideas.
2022-01-31 08:58:33 -08:00
Graham Christensen
dcb0c1425c
RunCommandLogs: set a UUID automatically
2022-01-31 08:58:33 -08:00
Graham Christensen
cf49a05ff5
RunCommandLogs: add a uuid to each log entry
2022-01-31 08:58:33 -08:00
Graham Christensen
94ed9ed7ff
Merge pull request #1136 from DeterminateSystems/github-status-cached-evals
...
GithubStatus: try pushing statuses for cached buildqueued/buildfinished events
2022-01-31 09:11:37 -05:00