diff --git a/logstash-core/lib/logstash/instrument/namespaced_metric.rb b/logstash-core/lib/logstash/instrument/namespaced_metric.rb index 6b0ad020e..330ded453 100644 --- a/logstash-core/lib/logstash/instrument/namespaced_metric.rb +++ b/logstash-core/lib/logstash/instrument/namespaced_metric.rb @@ -45,7 +45,7 @@ module LogStash module Instrument end def namespace(name) - NamespacedMetric.new(metric, namespace_name.concat(Array(name))) + NamespacedMetric.new(metric, namespace_name + Array(name)) end private diff --git a/logstash-core/spec/logstash/instrument/namespaced_metric_spec.rb b/logstash-core/spec/logstash/instrument/namespaced_metric_spec.rb index 6ba84168d..289a9dba5 100644 --- a/logstash-core/spec/logstash/instrument/namespaced_metric_spec.rb +++ b/logstash-core/spec/logstash/instrument/namespaced_metric_spec.rb @@ -22,4 +22,11 @@ describe LogStash::Instrument::NamespacedMetric do it "returns the value of the block" do expect(subject.time(:duration_ms) { "hello" }).to eq("hello") end + + it "its doesnt change the original `namespace` when creating a subnamespace" do + new_namespace = subject.namespace(:wally) + + expect(subject.namespace_name).to eq([namespace]) + expect(new_namespace.namespace_name).to eq([:stats, :wally]) + end end