From 81377031e4260a58eb444b258c63cfedf83cb739 Mon Sep 17 00:00:00 2001 From: Chris Sinjakli Date: Sat, 27 Mar 2021 03:33:50 +0000 Subject: [PATCH] Handle empty instance label in push.rb Signed-off-by: Chris Sinjakli --- lib/prometheus/client/push.rb | 2 +- spec/prometheus/client/push_spec.rb | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/prometheus/client/push.rb b/lib/prometheus/client/push.rb index 18b63575..628704f2 100644 --- a/lib/prometheus/client/push.rb +++ b/lib/prometheus/client/push.rb @@ -69,7 +69,7 @@ def parse(url) end def build_path(job, instance) - if instance + if instance && !instance.empty? format(INSTANCE_PATH, CGI::escape(job), CGI::escape(instance)) else format(PATH, CGI::escape(job)) diff --git a/spec/prometheus/client/push_spec.rb b/spec/prometheus/client/push_spec.rb index cea5bcab..d29b0ad2 100644 --- a/spec/prometheus/client/push_spec.rb +++ b/spec/prometheus/client/push_spec.rb @@ -76,6 +76,12 @@ expect(push.path).to eql('/metrics/job/test-job') end + it 'uses the default metrics path if an empty instance value is given' do + push = Prometheus::Client::Push.new(job: 'bar-job', instance: '') + + expect(push.path).to eql('/metrics/job/bar-job') + end + it 'uses the full metrics path if an instance value is given' do push = Prometheus::Client::Push.new(job: 'bar-job', instance: 'foo')