metrics-clojure / metrics-clojure-core / src / metrics / utils.clj

Steve Losh 26d62ce 
Michael Klishin 76c089a 

Steve Losh 26d62ce 








Steve Losh d179910 

Steve Losh 26d62ce 
Michael Klishin 1d12924 
Steve Losh 26d62ce 







Steve Losh e6b15a1 
Steve Losh 26d62ce 






Steve Losh 2bf9a78 









(ns metrics.utils
  (:import com.yammer.metrics.Metrics
           [com.yammer.metrics.core Sampling MetricName]))


(defn get-percentile [^Sampling metric ^double percentile]
  (-> metric
    .getSnapshot
    (.getValue percentile)))

(defn get-percentiles [metric percentiles]
  (zipmap percentiles
          (map (partial get-percentile metric)
               percentiles)))

(defn ^MetricName metric-name [title]
  (if (string? title)
    (new MetricName "default" "default" ^String title)
    (new MetricName
         ^String (first title)
         ^String (second title)
         ^String (last title))))

(defn all-metrics []
  (letfn [(parse-name [^MetricName metric-name]
            (str (.getGroup metric-name)
                 "." (.getType metric-name)
                 "." (.getName metric-name)))
          (parse-entry [[metric-name metric]]
            [(parse-name metric-name)
             metric])]
    (into {} (map parse-entry (.allMetrics (Metrics/defaultRegistry))))))

(defn desugared-title
  "Syntactic sugary goodness for defining metrics concisely with macros.

  Returns a vector of: [symbol-to-define MetricName]"
  [mn]
  (cond
    (string? mn) [(symbol mn) mn]
    (symbol? mn) [mn (str mn)]
    :else [(symbol (last mn))
           (map str mn)]))
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.