Skip to content

Commit

Permalink
Merge 320b98b into c5c51dc
Browse files Browse the repository at this point in the history
  • Loading branch information
macalimlim committed Jul 2, 2019
2 parents c5c51dc + 320b98b commit 0bb8359
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 13 deletions.
9 changes: 6 additions & 3 deletions src/ziggurat/metrics.clj
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,11 @@
(defn- merge-tags
[additional-tags]
(let [default-tags {"actor" (:app-name (ziggurat-config))}]
(merge default-tags (when-not (seq additional-tags)
(stringify-keys additional-tags)))))
(merge default-tags (stringify-keys additional-tags))))

(defn- get-tagged-metric
[metric-name tags]
(.tagged ^MetricName metric-name tags))

(defn mk-meter
([category metric]
Expand All @@ -24,7 +27,7 @@
(let [namespace (str category "." metric)
metric-name (MetricRegistry/name ^String namespace nil)
tags (merge-tags additional-tags)
tagged-metric (.tagged ^MetricName metric-name tags)]
tagged-metric (get-tagged-metric metric-name tags)]
(.meter ^MetricRegistry metrics-registry ^MetricName tagged-metric))))

(defn mk-histogram
Expand Down
47 changes: 37 additions & 10 deletions test/ziggurat/metrics_test.clj
Original file line number Diff line number Diff line change
@@ -1,21 +1,48 @@
(ns ziggurat.metrics-test
(:require [clojure.test :refer :all]
[clojure.walk :refer [stringify-keys]]
[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)

(deftest mk-meter-test
(testing "returns a meter"
(let [category "category"
metric "metric1"
meter (metrics/mk-meter category metric)]
(is (instance? Meter meter)))))
(let [category "category"
metric "metric1"
service-name (:app-name (ziggurat-config))]
(testing "returns a meter"
(let [expected-tags {"actor" service-name}]
(with-redefs [metrics/get-tagged-metric (fn [metric-name tags]
(is (= tags expected-tags))
(.tagged metric-name tags))]
(is (instance? Meter (metrics/mk-meter category metric))))))
(testing "returns a meter - with additional-tags"
(let [additional-tags {:foo "bar"}
expected-tags (merge {"actor" service-name} (stringify-keys additional-tags))]
(with-redefs [metrics/get-tagged-metric (fn [metric-name tags]
(is (= tags expected-tags))
(.tagged metric-name tags))]
(is (instance? Meter (metrics/mk-meter category metric additional-tags))))))))

(deftest mk-histogram-test
(testing "returns a histogram"
(let [category "category"
metric "metric2"
meter (metrics/mk-histogram category metric)]
(is (instance? Histogram meter)))))
(let [category "category"
metric "metric2"
service-name (:app-name (ziggurat-config))]
(testing "returns a histogram"
(let [expected-tags {"actor" service-name}]
(with-redefs [metrics/get-tagged-metric (fn [metric-name tags]
(is (= tags expected-tags))
(.tagged metric-name tags))]
(is (instance? Histogram (metrics/mk-histogram category metric))))))
(testing "returns a histogram - with additional-tags"
(let [additional-tags {:foo "bar"}
expected-tags (merge {"actor" service-name} (stringify-keys additional-tags))]
(with-redefs [metrics/get-tagged-metric (fn [metric-name tags]
(is (= tags expected-tags))
(.tagged metric-name tags))]
(is (instance? Histogram (metrics/mk-histogram category metric additional-tags))))))))

(deftest increment-count-test
(let [metric "metric3"
Expand Down

0 comments on commit 0bb8359

Please sign in to comment.