diff options
Diffstat (limited to 'slurm_number_jobs.rb')
-rw-r--r-- | slurm_number_jobs.rb | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/slurm_number_jobs.rb b/slurm_number_jobs.rb new file mode 100644 index 0000000..91fe630 --- /dev/null +++ b/slurm_number_jobs.rb @@ -0,0 +1,34 @@ +# frozen_string_literal: true + +# Report the number of jobs currently in queue, +# aggregated by state, user, and partition +class SlurmNumberJobs + def initialize(collector, config) + @collector = collector + @config = config + end + + def raid + raw = `squeue --format="%P,%u,%T" --noheader` + raw = raw.lines.map(&:strip) + raw = raw.map { |line| line.split(',') } + + tally = raw.tally + + @collector.redact!('slurm_number_jobs') + + tally.each do |labelset, number| + @collector.report!( + 'slurm_number_jobs', + number, + help: 'Number of jobs for a given user, partition, and state', + type: 'gauge', + labels: { + partition: labelset[0], + user: labelset[1], + state: labelset[2] + } + ) + end + end +end |