Skip to content

Commit 7084611

Browse files
committed
fixing debug logging
adding perf logging to the mlcp transform
1 parent 7d9b4c6 commit 7084611

File tree

15 files changed

+81
-74
lines changed

15 files changed

+81
-74
lines changed

marklogic-data-hub/src/main/resources/ml-config/databases/final-database.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,14 @@
2424
"collation": "",
2525
"range-value-positions": false,
2626
"invalid-values": "reject"
27+
},
28+
{
29+
"scalar-type": "unsignedInt",
30+
"namespace-uri": "http://marklogic.com/data-hub/debug",
31+
"localname": "is-debugging-enabled",
32+
"collation": "",
33+
"range-value-positions": false,
34+
"invalid-values": "reject"
2735
}
2836
],
2937
"schema-database": "%%SCHEMAS_DATABASE%%",

marklogic-data-hub/src/main/resources/ml-config/databases/staging-database.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,14 @@
3232
"collation": "",
3333
"range-value-positions": false,
3434
"invalid-values": "reject"
35+
},
36+
{
37+
"scalar-type": "unsignedInt",
38+
"namespace-uri": "http://marklogic.com/data-hub/debug",
39+
"localname": "is-debugging-enabled",
40+
"collation": "",
41+
"range-value-positions": false,
42+
"invalid-values": "reject"
3543
}
3644
],
3745
"schema-database": "%%SCHEMAS_DATABASE%%",

marklogic-data-hub/src/main/resources/ml-modules/root/com.marklogic.hub/lib/debug-lib.xqy

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,15 @@
1515
:)
1616
xquery version "1.0-ml";
1717

18-
module namespace debug = "http://marklogic.com/data-hub/debug-lib";
18+
module namespace debug = "http://marklogic.com/data-hub/debug";
1919

2020
declare option xdmp:mapping "false";
2121

2222
declare function debug:enable($enable as xs:boolean)
2323
{
24-
xdmp:set-server-field("HUB_DEBUG", $enable),
25-
xdmp:set-server-field("MarkLogic.DEBUG", $enable)
24+
xdmp:document-insert(
25+
"/com.marklogic.hub/__debug_enabled__.xml",
26+
element debug:is-debugging-enabled { if ($enable) then 1 else 0 })
2627
};
2728

2829
(:~
@@ -32,7 +33,13 @@ declare function debug:enable($enable as xs:boolean)
3233
:)
3334
declare function debug:on() as xs:boolean
3435
{
35-
xdmp:get-server-field("HUB_DEBUG", fn:false())
36+
let $value := cts:element-values(xs:QName("debug:is-debugging-enabled"), (), ("type=unsignedInt","limit=1"))
37+
return
38+
if ($value) then
39+
$value eq 1
40+
else
41+
fn:false()
42+
3643
};
3744

3845
(:~

marklogic-data-hub/src/main/resources/ml-modules/root/com.marklogic.hub/lib/flow-lib.xqy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ module namespace flow = "http://marklogic.com/data-hub/flow-lib";
2020
import module namespace config = "http://marklogic.com/data-hub/config"
2121
at "/com.marklogic.hub/lib/config.xqy";
2222

23-
import module namespace debug = "http://marklogic.com/data-hub/debug-lib"
23+
import module namespace debug = "http://marklogic.com/data-hub/debug"
2424
at "/com.marklogic.hub/lib/debug-lib.xqy";
2525

2626
import module namespace hul = "http://marklogic.com/data-hub/hub-utils-lib"

marklogic-data-hub/src/main/resources/ml-modules/root/com.marklogic.hub/lib/perflog-lib.xqy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ xquery version "1.0-ml";
1717

1818
module namespace perf = "http://marklogic.com/data-hub/perflog-lib";
1919

20-
import module namespace debug = "http://marklogic.com/data-hub/debug-lib"
20+
import module namespace debug = "http://marklogic.com/data-hub/debug"
2121
at "/com.marklogic.hub/lib/debug-lib.xqy";
2222

2323
declare function perf:log($what, $func)

marklogic-data-hub/src/main/resources/ml-modules/root/com.marklogic.hub/mlcp-flow-transform.xqy

Lines changed: 41 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@ xquery version "1.0-ml";
22

33
module namespace mlcpFlow = "http://marklogic.com/data-hub/mlcp-flow-transform";
44

5-
import module namespace debug = "http://marklogic.com/data-hub/debug-lib"
6-
at "/com.marklogic.hub/lib/debug-lib.xqy";
7-
85
import module namespace flow = "http://marklogic.com/data-hub/flow-lib"
96
at "/com.marklogic.hub/lib/flow-lib.xqy";
107

8+
import module namespace perf = "http://marklogic.com/data-hub/perflog-lib"
9+
at "/com.marklogic.hub/lib/perflog-lib.xqy";
10+
1111
import module namespace trace = "http://marklogic.com/data-hub/trace"
1212
at "/com.marklogic.hub/lib/trace-lib.xqy";
1313

@@ -20,61 +20,44 @@ declare function mlcpFlow:transform(
2020
$context as map:map
2121
) as map:map*
2222
{
23-
if (debug:on()) then
24-
debug:log((
25-
"",
26-
"",
27-
"################################################################",
28-
" MLCP INPUT TRANSFORM",
29-
"",
30-
"",
31-
"$content:",
32-
debug:dump-map($content, " "),
33-
"",
34-
"$context: ",
35-
debug:dump-map($context, " "),
36-
"",
37-
"################################################################",
38-
"",
39-
""
40-
))
41-
else (),
4223
let $uri := map:get($content, "uri")
43-
44-
let $paramNodes := xdmp:unquote(map:get($context, 'transform_param'))/node()/*
45-
let $paramMap := map:new()
46-
let $_ := $paramNodes ! map:put($paramMap, fn:local-name(.), ./string())
47-
48-
let $flow := flow:get-flow(
49-
map:get($paramMap, 'entity-name'),
50-
map:get($paramMap, 'flow-name'),
51-
map:get($paramMap, 'flow-type'))
52-
53-
let $envelope := try {
54-
flow:run-plugins($flow, $uri, map:get($content, "value"), $paramMap)
55-
}
56-
catch($ex) {
57-
xdmp:log(xdmp:describe($ex, (), ())),
58-
xdmp:rethrow()
59-
}
60-
let $_ := map:put($content, "value", $envelope)
61-
let $_ :=
62-
if (trace:enabled()) then
63-
trace:plugin-trace(
64-
$uri,
65-
if ($envelope instance of element()) then ()
66-
else
67-
null-node {},
68-
"writer",
69-
$flow/hub:type,
70-
$envelope,
71-
if ($envelope instance of element()) then ()
72-
else
73-
null-node {},
74-
xs:dayTimeDuration("PT0S")
75-
)
76-
else ()
77-
let $_ := trace:write-trace()
7824
return
79-
$content
25+
perf:log('mlcp-flow-transform(' || $uri || ')', function() {
26+
let $paramNodes := xdmp:unquote(map:get($context, 'transform_param'))/node()/*
27+
let $paramMap := map:new()
28+
let $_ := $paramNodes ! map:put($paramMap, fn:local-name(.), ./string())
29+
30+
let $flow := flow:get-flow(
31+
map:get($paramMap, 'entity-name'),
32+
map:get($paramMap, 'flow-name'),
33+
map:get($paramMap, 'flow-type'))
34+
35+
let $envelope := try {
36+
flow:run-plugins($flow, $uri, map:get($content, "value"), $paramMap)
37+
}
38+
catch($ex) {
39+
xdmp:log(xdmp:describe($ex, (), ())),
40+
xdmp:rethrow()
41+
}
42+
let $_ := map:put($content, "value", $envelope)
43+
let $_ :=
44+
if (trace:enabled()) then
45+
trace:plugin-trace(
46+
$uri,
47+
if ($envelope instance of element()) then ()
48+
else
49+
null-node {},
50+
"writer",
51+
$flow/hub:type,
52+
$envelope,
53+
if ($envelope instance of element()) then ()
54+
else
55+
null-node {},
56+
xs:dayTimeDuration("PT0S")
57+
)
58+
else ()
59+
let $_ := trace:write-trace()
60+
return
61+
$content
62+
})
8063
};

marklogic-data-hub/src/main/resources/ml-modules/services/collector.xqy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ xquery version "1.0-ml";
1717

1818
module namespace service = "http://marklogic.com/rest-api/resource/collector";
1919

20-
import module namespace debug = "http://marklogic.com/data-hub/debug-lib"
20+
import module namespace debug = "http://marklogic.com/data-hub/debug"
2121
at "/com.marklogic.hub/lib/debug-lib.xqy";
2222

2323
import module namespace flow = "http://marklogic.com/data-hub/flow-lib"

marklogic-data-hub/src/main/resources/ml-modules/services/debug.xqy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ xquery version "1.0-ml";
1717

1818
module namespace service = "http://marklogic.com/rest-api/resource/debug";
1919

20-
import module namespace debug = "http://marklogic.com/data-hub/debug-lib"
20+
import module namespace debug = "http://marklogic.com/data-hub/debug"
2121
at "/com.marklogic.hub/lib/debug-lib.xqy";
2222

2323
declare namespace rapi = "http://marklogic.com/rest-api";

marklogic-data-hub/src/main/resources/ml-modules/services/entity.xqy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ xquery version "1.0-ml";
1717

1818
module namespace service = "http://marklogic.com/rest-api/resource/entity";
1919

20-
import module namespace debug = "http://marklogic.com/data-hub/debug-lib"
20+
import module namespace debug = "http://marklogic.com/data-hub/debug"
2121
at "/com.marklogic.hub/lib/debug-lib.xqy";
2222

2323
import module namespace flow = "http://marklogic.com/data-hub/flow-lib"

marklogic-data-hub/src/main/resources/ml-modules/services/flow.xqy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ xquery version "1.0-ml";
1717

1818
module namespace service = "http://marklogic.com/rest-api/resource/flow";
1919

20-
import module namespace debug = "http://marklogic.com/data-hub/debug-lib"
20+
import module namespace debug = "http://marklogic.com/data-hub/debug"
2121
at "/com.marklogic.hub/lib/debug-lib.xqy";
2222

2323
import module namespace flow = "http://marklogic.com/data-hub/flow-lib"

0 commit comments

Comments
 (0)