Skip to content

Commit 342400a

Browse files
authored
Merge pull request #5 from hathitrust/instance-part-of-group
Bugfix: send instance label as part of group
2 parents e8d41a0 + 8359cf8 commit 342400a

File tree

2 files changed

+17
-4
lines changed

2 files changed

+17
-4
lines changed

lib/ProgressTracker.pm

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ sub new {
2424
$self->warn_not_reporting if !$self->{pushgateway};
2525

2626
my $instance = $params{instance} || $ENV{'JOB_NAMESPACE'};
27-
$self->{labels}{instance} = $instance if $instance;
27+
$self->{instance} = $instance if $instance;
2828

2929
my $app = $params{app} || $ENV{'JOB_APP'};
3030
$self->{labels}{app} = $app if $app;
@@ -118,7 +118,10 @@ sub push_metrics {
118118
}
119119

120120
my $job = $self->{job};
121+
my $instance = $self->{instance};
121122
my $url = $self->{pushgateway} . "/metrics/job/$job";
123+
$url .= "/instance/$instance" if $instance;
124+
122125
my $data = $self->{prom}->render;
123126

124127
$self->{ua}->post($url, Content => $data);

t/progress_tracker.t

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,24 +81,34 @@ describe "ProgressTracker" => sub {
8181
my $tracker = ProgressTracker->new();
8282
$tracker->update_metrics;
8383

84-
ok(metrics =~ /^job_duration_seconds.*instance=""/m);
84+
ok(metrics =~ /^job_duration_seconds\{instance="",job="progress_tracker.t"\}/m);
8585
};
8686

8787
it "uses instance param if given" => sub {
8888
$ENV{JOB_NAMESPACE} = 'some-namespace';
8989
my $tracker = ProgressTracker->new(instance=>'override-instance');
9090
$tracker->update_metrics;
9191

92-
ok(metrics =~ /^job_duration_seconds\S*instance="override-instance"/m);
92+
ok(metrics =~ /^job_duration_seconds\{instance="override-instance",job="progress_tracker.t"\}/m);
9393
};
9494

9595
it "uses JOB_NAMESPACE env var as instance if given" => sub {
9696
$ENV{JOB_NAMESPACE} = 'some-namespace';
9797
my $tracker = ProgressTracker->new();
9898
$tracker->update_metrics;
9999

100-
ok(metrics =~ /^job_duration_seconds\S*instance="some-namespace"/m);
100+
ok(metrics =~ /^job_duration_seconds\{instance="some-namespace",job="progress_tracker.t"\}/m);
101101
};
102+
103+
it "pushes in such a way that doesn't wipe other instances" => sub {
104+
my $tracker1 = ProgressTracker->new(instance => "instance1");
105+
$tracker1->update_metrics;
106+
my $tracker2 = ProgressTracker->new(instance => "instance2");
107+
$tracker2->update_metrics;
108+
109+
ok(metrics =~ /^job_duration_seconds\{instance="instance1",job="progress_tracker.t"\}/m);
110+
ok(metrics =~ /^job_duration_seconds\{instance="instance2",job="progress_tracker.t"\}/m);
111+
}
102112
};
103113

104114
describe "app label" => sub {

0 commit comments

Comments
 (0)