File tree Expand file tree Collapse file tree 1 file changed +15
-1
lines changed
src/puppetlabs/puppetdb/http Expand file tree Collapse file tree 1 file changed +15
-1
lines changed Original file line number Diff line number Diff line change 66 (:require [puppetlabs.puppetdb.cheshire :as json]
77 [clojure.java.io]
88 [clojure.core.match :as cm]
9+ [clojure.tools.logging :as log]
910 [clojure.walk :refer [keywordize-keys stringify-keys]]
1011 [puppetlabs.puppetdb.query-eng :as qeng]
1112 [clojure.set :as set]
304305 others parsed))))
305306 parsed)))
306307
308+ (defn time-and-parse-pql
309+ " Time how long it takes to transform a PQL query to AST, if the time
310+ is greater than 1s, a warning is logged. Returns the transformed
311+ query."
312+ [query]
313+ (let [start (System/nanoTime )
314+ result (pql/parse-pql-query query)
315+ elapsed (/ (- (System/nanoTime ) start) 1000000.0 )
316+ max-pql-limit 1000 ]
317+ (when (> elapsed max-pql-limit)
318+ (log/warn (trs " Parsing PQL took {0} ms: {1}" elapsed (pr-str query))))
319+ result))
320+
307321(defn parse-json-or-pql-to-ast
308322 " Parse a query string either as JSON or PQL to transform it to AST"
309323 [query]
310324 (when query
311325 (if (re-find #"^\s *\[ " query)
312326 (parse-json-query query)
313- (pql/ parse-pql-query query))))
327+ (time-and- parse-pql query))))
314328
315329(defn get-req->query
316330 " Converts parameters of a GET request to a pdb query map"
You can’t perform that action at this time.
0 commit comments