summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/workers/metrics_worker.rb6
-rw-r--r--spec/workers/metrics_worker_spec.rb8
2 files changed, 13 insertions, 1 deletions
diff --git a/app/workers/metrics_worker.rb b/app/workers/metrics_worker.rb
index 90a65579382..b15dc819c5c 100644
--- a/app/workers/metrics_worker.rb
+++ b/app/workers/metrics_worker.rb
@@ -16,7 +16,11 @@ class MetricsWorker
new_hash = hash.symbolize_keys
new_hash[:tags].each do |key, value|
- new_hash[:tags][key] = escape_value(value)
+ if value.blank?
+ new_hash[:tags].delete(key)
+ else
+ new_hash[:tags][key] = escape_value(value)
+ end
end
new_hash
diff --git a/spec/workers/metrics_worker_spec.rb b/spec/workers/metrics_worker_spec.rb
index f5650494c7c..2acd0f8ba30 100644
--- a/spec/workers/metrics_worker_spec.rb
+++ b/spec/workers/metrics_worker_spec.rb
@@ -30,6 +30,14 @@ describe MetricsWorker do
expect(metrics).to eq([{ values: {}, tags: { 'foo' => 'bar\\=' } }])
end
+
+ it 'drops empty tags' do
+ metrics = worker.prepare_metrics([
+ { 'values' => {}, 'tags' => { 'cats' => '', 'dogs' => nil }}
+ ])
+
+ expect(metrics).to eq([{ values: {}, tags: {} }])
+ end
end
describe '#escape_value' do