23 lines
639 B
Clojure
23 lines
639 B
Clojure
|
(ns dda.backup.monitoring.domain
|
||
|
(:require
|
||
|
[orchestra.core :refer [defn-spec]]
|
||
|
[clojure.spec.alpha :as s]
|
||
|
[clojure.string :as st]))
|
||
|
|
||
|
(s/def ::url string?)
|
||
|
(s/def ::name string?)
|
||
|
(s/def ::namespace string?)
|
||
|
(s/def ::metrics map?)
|
||
|
|
||
|
(s/def ::config (s/keys :req-un [::url ::name ::metrics ::namespace]))
|
||
|
|
||
|
(defn-spec collect-metrics string?
|
||
|
[config ::config]
|
||
|
(let [{:keys [metrics namespace]} config]
|
||
|
(str
|
||
|
(->> metrics
|
||
|
(map (fn [entry] (str (name (key entry))
|
||
|
"{namespace=" namespace "}" " "
|
||
|
(val entry))))
|
||
|
(st/join "\n"))
|
||
|
"\n")))
|