fix monitoring labels
This commit is contained in:
parent
ef8439342b
commit
3b240bea93
3 changed files with 33 additions and 7 deletions
|
@ -1,23 +1,49 @@
|
||||||
(ns dda.backup.monitoring
|
(ns dda.backup.monitoring
|
||||||
(:require
|
(:require
|
||||||
[orchestra.core :refer [defn-spec]]
|
[orchestra.core :refer [defn-spec]]
|
||||||
[dda.backup.monitoring.domain :as domain]
|
[clojure.spec.alpha :as s]
|
||||||
[dda.backup.infrastructure :as i]))
|
[dda.backup.monitoring.domain :as domain]
|
||||||
|
[dda.backup.infrastructure :as i]))
|
||||||
|
|
||||||
(def default {:url "http://prometheus-pushgateway.monitoring.svc.cluster.local:9091/metrics/job"
|
(def default {:url "http://prometheus-pushgateway.monitoring.svc.cluster.local:9091/metrics/job"
|
||||||
:namespace "default"
|
:namespace "default"
|
||||||
:metrics {:kube_job_status_active 0
|
:metrics {:kube_job_status_active 0
|
||||||
:kube_job_status_failed 1
|
:kube_job_status_failed 0
|
||||||
:kube_job_status_succeeded 0}})
|
:kube_job_status_succeeded 0}})
|
||||||
|
|
||||||
|
(s/def ::config (s/keys :req-un [::name]
|
||||||
|
:opt-un [::url ::metrics ::namespace]))
|
||||||
|
|
||||||
(defn- config-w-defaults
|
(defn- config-w-defaults
|
||||||
[config]
|
[config]
|
||||||
(merge default config))
|
(merge default config))
|
||||||
|
|
||||||
(defn-spec send-metrics! nil?
|
(defn-spec send-metrics! nil?
|
||||||
[config ::domain/config]
|
[config ::config]
|
||||||
(let [config-2-use (config-w-defaults config)
|
(let [config-2-use (config-w-defaults config)
|
||||||
{:keys [url name]} config-2-use]
|
{:keys [url name]} config-2-use]
|
||||||
(try
|
(try
|
||||||
(i/post! (str url "/" name) (domain/collect-metrics config-2-use))
|
(i/post! (str url "/" name) (domain/collect-metrics config-2-use))
|
||||||
(catch Exception e (println (str "Warn: unable to send log" (.getMessage e)))))))
|
(catch Exception e (println (str "Warn: unable to send log" (.getMessage e)))))))
|
||||||
|
|
||||||
|
(defn-spec backup-start-metrics! nil?
|
||||||
|
[config ::config]
|
||||||
|
(send-metrics!
|
||||||
|
{:name "backup"
|
||||||
|
:metrics {:kube_job_status_active 1
|
||||||
|
:kube_job_status_start_time (long (/ (System/currentTimeMillis) 1000))}}))
|
||||||
|
|
||||||
|
(defn-spec backup-success-metrics! nil?
|
||||||
|
[config ::config]
|
||||||
|
(send-metrics!
|
||||||
|
{:name "backup"
|
||||||
|
:metrics {:kube_job_status_succeeded 1
|
||||||
|
:kube_job_status_completion_time (long (/ (System/currentTimeMillis) 1000))}}))
|
||||||
|
|
||||||
|
(defn-spec backup-fail-metrics! nil?
|
||||||
|
[config ::config]
|
||||||
|
(send-metrics!
|
||||||
|
{:name "backup"
|
||||||
|
:metrics {:kube_job_status_failed 1
|
||||||
|
:kube_job_status_completion_time (long (/ (System/currentTimeMillis) 1000))}}))
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
(str
|
(str
|
||||||
(->> metrics
|
(->> metrics
|
||||||
(map (fn [entry] (str (name (key entry))
|
(map (fn [entry] (str (name (key entry))
|
||||||
"{namespace=" namespace "}" " "
|
"{namespace=\"" namespace "\"}" " "
|
||||||
(val entry))))
|
(val entry))))
|
||||||
(st/join "\n"))
|
(st/join "\n"))
|
||||||
"\n")))
|
"\n")))
|
|
@ -12,7 +12,7 @@
|
||||||
:name "name"
|
:name "name"
|
||||||
:namespace "default"
|
:namespace "default"
|
||||||
:metrics {}})))
|
:metrics {}})))
|
||||||
(is (= "metric1{namespace=default} 1\nmetric2{namespace=default} text\n"
|
(is (= "metric1{namespace=\"default\"} 1\nmetric2{namespace=\"default\"} text\n"
|
||||||
(cut/collect-metrics {:url "url"
|
(cut/collect-metrics {:url "url"
|
||||||
:name "name"
|
:name "name"
|
||||||
:namespace "default"
|
:namespace "default"
|
||||||
|
|
Loading…
Reference in a new issue