diff --git a/src/ziggurat/metrics.clj b/src/ziggurat/metrics.clj index a1a659c4..fcf6279e 100644 --- a/src/ziggurat/metrics.clj +++ b/src/ziggurat/metrics.clj @@ -10,10 +10,10 @@ (defonce metrics-registry (MetricRegistry.)) -(defn- merge-tags +(defn merge-tags [additional-tags] (let [default-tags {"actor" (:app-name (ziggurat-config))}] - (merge default-tags (when-not (seq additional-tags) + (merge default-tags (when-not (empty? additional-tags) (stringify-keys additional-tags))))) (defn mk-meter diff --git a/test/ziggurat/metrics_test.clj b/test/ziggurat/metrics_test.clj index 8ae9c3ac..3509d8a4 100644 --- a/test/ziggurat/metrics_test.clj +++ b/test/ziggurat/metrics_test.clj @@ -1,8 +1,29 @@ (ns ziggurat.metrics-test (:require [clojure.test :refer :all] + [ziggurat.config :refer [ziggurat-config]] + [ziggurat.fixtures :as fix] [ziggurat.metrics :as metrics]) (:import (io.dropwizard.metrics5 Meter Histogram UniformReservoir))) +(use-fixtures :once fix/mount-only-config-and-producer) + +(deftest merge-tags-test + (let [service-name (:app-name (ziggurat-config))] + (testing "additional-tags is an empty map" + (is (= (metrics/merge-tags {}) {"actor" service-name}))) + (testing "additional-tags is not empty" + (is (= (metrics/merge-tags {:foo "bar"}) {"actor" service-name "foo" "bar"}))) + (testing "additional-tags is nil" + (is (= (metrics/merge-tags nil) {"actor" service-name}))))) + +(deftest intercalate-dot-test + (testing "empty vector" + (is (= (metrics/intercalate-dot []) ""))) + (testing "non-empty vector" + (is (= (metrics/intercalate-dot ["test" "mic" "123"]) "test.mic.123"))) + (testing "nil" + (is (= (metrics/intercalate-dot nil) "")))) + (deftest mk-meter-test (testing "returns a meter" (let [category "category"