adds detailed tracing for ledger loads.
This commit is contained in:
@@ -19,6 +19,7 @@
|
|||||||
[com.walmartlabs.lacinia.util :refer [attach-resolvers]]
|
[com.walmartlabs.lacinia.util :refer [attach-resolvers]]
|
||||||
[datomic.api :as d]
|
[datomic.api :as d]
|
||||||
[mount.core :as mount]
|
[mount.core :as mount]
|
||||||
|
[com.brunobonacci.mulog :as mu]
|
||||||
[unilog.context :as lc]
|
[unilog.context :as lc]
|
||||||
[yang.scheduler :as scheduler]
|
[yang.scheduler :as scheduler]
|
||||||
[auto-ap.graphql.utils :refer [attach-tracing-resolvers]])
|
[auto-ap.graphql.utils :refer [attach-tracing-resolvers]])
|
||||||
@@ -291,13 +292,14 @@
|
|||||||
|
|
||||||
(defn import-ledger [context args _]
|
(defn import-ledger [context args _]
|
||||||
(assert-admin (:id context))
|
(assert-admin (:id context))
|
||||||
(lc/with-context {:area "import ledger"}
|
(let [all-vendors (mu/trace ::get-all-vendors
|
||||||
(let [all-vendors (->> (d/q '[:find [?e ...]
|
[]
|
||||||
|
(->> (d/q '[:find [?e ...]
|
||||||
:in $
|
:in $
|
||||||
:where [?e :vendor/name]]
|
:where [?e :vendor/name]]
|
||||||
(d/db conn))
|
(d/db conn))
|
||||||
(d/pull-many (d/db conn) d-vendors/default-read)
|
(d/pull-many (d/db conn) d-vendors/default-read)
|
||||||
(by :vendor/name))
|
(by :vendor/name)))
|
||||||
all-clients (by :client/code (d-clients/get-all ))
|
all-clients (by :client/code (d-clients/get-all ))
|
||||||
all-client-bank-accounts (reduce
|
all-client-bank-accounts (reduce
|
||||||
(fn [acc client]
|
(fn [acc client]
|
||||||
@@ -326,7 +328,9 @@
|
|||||||
:db/id vendor_name})))
|
:db/id vendor_name})))
|
||||||
{}
|
{}
|
||||||
(:entries args))
|
(:entries args))
|
||||||
_ (audit-transact-batch (vec (vals new-hidden-vendors)) (:id context))
|
_ (mu/trace ::upsert-new-vendors
|
||||||
|
[]
|
||||||
|
(audit-transact-batch (vec (vals new-hidden-vendors)) (:id context)))
|
||||||
all-vendors (->> (d/q '[:find [?e ...]
|
all-vendors (->> (d/q '[:find [?e ...]
|
||||||
:in $
|
:in $
|
||||||
:where [?e :vendor/name]]
|
:where [?e :vendor/name]]
|
||||||
@@ -334,7 +338,9 @@
|
|||||||
(d/pull-many (d/db conn) d-vendors/default-read)
|
(d/pull-many (d/db conn) d-vendors/default-read)
|
||||||
(by :vendor/name))
|
(by :vendor/name))
|
||||||
all-accounts (transduce (map (comp str :account/numeric-code)) conj #{} (a/get-accounts))
|
all-accounts (transduce (map (comp str :account/numeric-code)) conj #{} (a/get-accounts))
|
||||||
transaction (doall (map
|
transaction (mu/trace ::build-transaction
|
||||||
|
[:count (count (:entries args))]
|
||||||
|
(doall (map
|
||||||
(assoc-error (fn [entry]
|
(assoc-error (fn [entry]
|
||||||
(let [vendor (all-vendors (:vendor_name entry))]
|
(let [vendor (all-vendors (:vendor_name entry))]
|
||||||
(when-not (all-clients (:client_code entry))
|
(when-not (all-clients (:client_code entry))
|
||||||
@@ -429,7 +435,7 @@
|
|||||||
(:line_items entry))
|
(:line_items entry))
|
||||||
|
|
||||||
:journal-entry/cleared true})))))
|
:journal-entry/cleared true})))))
|
||||||
(:entries args)))
|
(:entries args))))
|
||||||
errors (filter #(= (:status %) :error) transaction)
|
errors (filter #(= (:status %) :error) transaction)
|
||||||
ignored (filter #(= (:status %) :ignored) transaction)
|
ignored (filter #(= (:status %) :ignored) transaction)
|
||||||
success (filter #(= (:status %) :success) transaction)
|
success (filter #(= (:status %) :success) transaction)
|
||||||
@@ -447,11 +453,17 @@
|
|||||||
(log/info errors)
|
(log/info errors)
|
||||||
|
|
||||||
|
|
||||||
(audit-transact-batch retraction (:id context))
|
(mu/trace ::retraction-tx
|
||||||
|
[:count (count retraction)]
|
||||||
|
(audit-transact-batch retraction (:id context)))
|
||||||
|
(mu/trace ::ignore-retraction-tx
|
||||||
|
[:count (count ignore-retraction)]
|
||||||
(when (seq ignore-retraction)
|
(when (seq ignore-retraction)
|
||||||
(audit-transact-batch ignore-retraction (:id context)))
|
(audit-transact-batch ignore-retraction (:id context))))
|
||||||
#_(log/info (map :tx success))
|
#_(log/info (map :tx success))
|
||||||
(audit-transact-batch (map :tx success) (:id context))
|
(mu/trace ::success-tx
|
||||||
|
[:count (count success)]
|
||||||
|
(audit-transact-batch (map :tx success) (:id context)))
|
||||||
|
|
||||||
{:successful (map (fn [x] {:external_id (:external_id x)}) success)
|
{:successful (map (fn [x] {:external_id (:external_id x)}) success)
|
||||||
:ignored (map (fn [x]
|
:ignored (map (fn [x]
|
||||||
@@ -459,7 +471,7 @@
|
|||||||
ignored)
|
ignored)
|
||||||
:existing []
|
:existing []
|
||||||
:errors (map (fn [x] {:external_id (:external_id x)
|
:errors (map (fn [x] {:external_id (:external_id x)
|
||||||
:error (:error x)}) errors)})))
|
:error (:error x)}) errors)}))
|
||||||
|
|
||||||
(defn build-running-balance
|
(defn build-running-balance
|
||||||
([lookup-account all-ledger-entries]
|
([lookup-account all-ledger-entries]
|
||||||
|
|||||||
Reference in New Issue
Block a user