metrics-clojure / metrics-clojure-ring / src / metrics / ring / expose.clj

Diff from to


   (:use [cheshire.core :only [generate-string]]))
+; Define rendering protocol ---------------------------------------------------
 (defprotocol RenderableMetric
   (render-to-basic [metric] "Turn a metric into a basic Clojure datastructure."))
     {:type :counter
      :value (counters/value c)}))
+; Utils -----------------------------------------------------------------------
 (defn- ensure-leading-slash [s]
   (if (not= \/ (first s))
     (str \/ s)
 (defn- render-metric [[metric-name metric]]
   [metric-name (render-to-basic metric)])
+; Exposing --------------------------------------------------------------------
 (defn- metrics-json [request]
   (let [metrics-map (into {} (map render-metric (all-metrics)))
         json (generate-string metrics-map)]
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
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.