Author: buildbot
Date: Mon Apr 25 09:19:27 2016
New Revision: 986570
Log:
Staging update by buildbot for sling
Modified:
websites/staging/sling/trunk/content/ (props changed)
websites/staging/sling/trunk/content/documentation/bundles/log-tracers.html
Propchange: websites/staging/sling/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Mon Apr 25 09:19:27 2016
@@ -1 +1 @@
-1740777
+1740785
Modified:
websites/staging/sling/trunk/content/documentation/bundles/log-tracers.html
==============================================================================
--- websites/staging/sling/trunk/content/documentation/bundles/log-tracers.html
(original)
+++ websites/staging/sling/trunk/content/documentation/bundles/log-tracers.html
Mon Apr 25 09:19:27 2016
@@ -264,12 +264,15 @@ and route them to normal logging on serv
<h2 id="tracer-recording">Tracer Recording<a class="headerlink"
href="#tracer-recording" title="Permanent link">¶</a></h2>
+<p><em>Since 1.0.0 <a
href="https://issues.apache.org/jira/browse/SLING-5459">SLING-5459</a></em></p>
<p>Apart from routing the logs to the server logs they can also be stored in
memory and accessed in
json form from Felix Web Console. By default support for recording is disabled
and it needs to be
explicitly enabled via OSGi config</p>
<p>Recording features works as explained below</p>
<ol>
-<li>Client sends an HTTP request with header
<code>Sling-Tracer-Record</code>â set to <code>true</code><div
class="codehilite"><pre><span class="n">curl</span> <span
class="o">-</span><span class="n">D</span> <span class="o">-</span> <span
class="o">-</span><span class="n">u</span> <span class="n">admin</span><span
class="p">:</span><span class="n">admin</span> <span class="o">\</span>
+<li>
+<p>Client sends an HTTP request with header
<code>Sling-Tracer-Record</code>â set to <code>true</code></p>
+<div class="codehilite"><pre><span class="n">curl</span> <span
class="o">-</span><span class="n">D</span> <span class="o">-</span> <span
class="o">-</span><span class="n">u</span> <span class="n">admin</span><span
class="p">:</span><span class="n">admin</span> <span class="o">\</span>
<span class="o">-</span><span class="n">H</span> "<span
class="n">Sling</span><span class="o">-</span><span
class="n">Tracer</span><span class="o">-</span><span class="n">Record</span>
<span class="p">:</span> <span class="n">true</span>" <span
class="o">\</span>
<span class="o">-</span><span class="n">d</span> "<span
class="o">./</span><span class="n">jcr</span><span class="p">:</span><span
class="n">content</span><span class="o">/</span><span class="n">jcr</span><span
class="p">:</span><span class="n">title</span><span class="p">=</span><span
class="n">Summer</span> <span class="n">Collection</span>" <span
class="o">\</span>
<span class="o">-</span><span class="n">d</span> "<span
class="p">:</span><span class="n">name</span><span class="p">=</span><span
class="n">summer</span><span class="o">-</span><span
class="n">collection</span>" <span class="o">\</span>
@@ -280,54 +283,62 @@ explicitly enabled via OSGi config</p>
</pre></div>
-<ol>
+</li>
<li>
<p>Server includes a request id as part of
<code>Sling-Tracer-Request-Id</code> response headers </p>
-<p>HTTP/1.1 201 Created
-Date: Wed, 27 Jan 2016 07:30:22 GMT
-Sling-Tracer-Request-Id: 9b5b01f6-f269-47c3-a889-2dc8d4d7938f
-X-Content-Type-Options: nosniff
-X-Frame-Options: SAMEORIGIN
-Location: /content/dam/summer-collection
-Content-Type: text/html; charset=UTF-8
-Transfer-Encoding: chunked
-3. The logs in json format can then be fetched from server at
<code>/system/console/tracer</code> like
-
http://localhost:8080/system/console/tracer/9b5b01f6-f269-47c3-a889-2dc8d4d7938f.json.
Below
- is a json output for GET request</p>
-<p>curl -s -D - -H "Sling-Tracer-Record : true" -H "Sling-Tracers : oak-query"
\
--H "Sling-Tracer-Config : org.apache.jackrabbit.oak.query" \
--u admin:admin http://localhost:4512/assets.html/content/dam -o /dev/null</p>
-<p>::javascript
-{
- "method": "GET",
- "time": 15140,
- "timestamp": 1461574009024,
- "requestProgressLogs": [
- "0 TIMER_START{Request Processing}",
- "0 COMMENT timer_end format is {<elapsed msec>,<timer name>} <optional
message>",
- ...
- ],
- "queries": [{
- "query":
"/jcr:root/etc/workflow/instances//element(<em>,app:Workflow)[@status='RUNNING']
order by @startTime descending",
- "plan": "[app:Workflow] as [a] /</em> property status = RUNNING where
([a].[status] = 'RUNNING') and (isdescendantnode([a],
[/etc/workflow/instances])) <em>/",
- "caller":
"com.example.WorkflowManager.getWorkflowInstances(WorkflowManager.java:902)"
- }
- ],
- "logs": [{
- "timestamp": 1461574022401,
- "level": "DEBUG",
- "logger": "org.apache.jackrabbit.oak.query.QueryEngineImpl",
- "message": "Parsing xpath statement:
/jcr:root/etc/workflow/instances//element(</em>,cq:Workflow)[@status='RUNNING']
order by @startTime descending",
- "params": [
- "xpath",
-
"/jcr:root/etc/workflow/instances//element(*,cq:Workflow)[@status='RUNNING']
order by @startTime descending"
- ]
- }
- ...
- ]
-}</p>
+<div class="codehilite"><pre><span class="n">HTTP</span><span
class="o">/</span>1<span class="p">.</span>1 201 <span class="n">Created</span>
+<span class="n">Date</span><span class="p">:</span> <span
class="n">Wed</span><span class="p">,</span> 27 <span class="n">Jan</span> 2016
07<span class="p">:</span>30<span class="p">:</span>22 <span
class="n">GMT</span>
+<span class="n">Sling</span><span class="o">-</span><span
class="n">Tracer</span><span class="o">-</span><span
class="n">Request</span><span class="o">-</span><span class="n">Id</span><span
class="p">:</span> 9<span class="n">b5b01f6</span><span class="o">-</span><span
class="n">f269</span><span class="o">-</span>47<span class="n">c3</span><span
class="o">-</span><span class="n">a889</span><span class="o">-</span>2<span
class="n">dc8d4d7938f</span>
+<span class="n">X</span><span class="o">-</span><span
class="n">Content</span><span class="o">-</span><span
class="n">Type</span><span class="o">-</span><span
class="n">Options</span><span class="p">:</span> <span class="n">nosniff</span>
+<span class="n">X</span><span class="o">-</span><span
class="n">Frame</span><span class="o">-</span><span
class="n">Options</span><span class="p">:</span> <span
class="n">SAMEORIGIN</span>
+<span class="n">Location</span><span class="p">:</span> <span
class="o">/</span><span class="n">content</span><span class="o">/</span><span
class="n">dam</span><span class="o">/</span><span class="n">summer</span><span
class="o">-</span><span class="n">collection</span>
+<span class="n">Content</span><span class="o">-</span><span
class="n">Type</span><span class="p">:</span> <span class="n">text</span><span
class="o">/</span><span class="n">html</span><span class="p">;</span> <span
class="n">charset</span><span class="p">=</span><span class="n">UTF</span><span
class="o">-</span>8
+<span class="n">Transfer</span><span class="o">-</span><span
class="n">Encoding</span><span class="p">:</span> <span class="n">chunked</span>
+</pre></div>
+
+
</li>
-</ol>
+<li>
+<p>The logs in json format can then be fetched from server at
<code>/system/console/tracer</code> like
+
http://localhost:8080/system/console/tracer/9b5b01f6-f269-47c3-a889-2dc8d4d7938f.json.
</p>
+<div class="codehilite"><pre><span class="n">curl</span> <span
class="o">-</span><span class="n">s</span> <span class="o">-</span><span
class="n">D</span> <span class="o">-</span> <span class="o">-</span><span
class="n">H</span> "<span class="n">Sling</span><span
class="o">-</span><span class="n">Tracer</span><span class="o">-</span><span
class="n">Record</span> <span class="p">:</span> <span
class="n">true</span>" <span class="o">-</span><span class="n">H</span>
"<span class="n">Sling</span><span class="o">-</span><span
class="n">Tracers</span> <span class="p">:</span> <span
class="n">oak</span><span class="o">-</span><span class="n">query</span>"
<span class="o">\</span>
+<span class="o">-</span><span class="n">H</span> "<span
class="n">Sling</span><span class="o">-</span><span
class="n">Tracer</span><span class="o">-</span><span class="n">Config</span>
<span class="p">:</span> <span class="n">org</span><span
class="p">.</span><span class="n">apache</span><span class="p">.</span><span
class="n">jackrabbit</span><span class="p">.</span><span
class="n">oak</span><span class="p">.</span><span class="n">query</span>"
<span class="o">\</span>
+<span class="o">-</span><span class="n">u</span> <span
class="n">admin</span><span class="p">:</span><span class="n">admin</span>
<span class="n">http</span><span class="p">:</span><span
class="o">//</span><span class="n">localhost</span><span
class="p">:</span>4512<span class="o">/</span><span
class="n">assets</span><span class="p">.</span><span class="n">html</span><span
class="o">/</span><span class="n">content</span><span class="o">/</span><span
class="n">dam</span> <span class="o">-</span><span class="n">o</span> <span
class="o">/</span><span class="n">dev</span><span class="o">/</span><span
class="n">null</span>
+</pre></div>
+
+
+<p>Below is a json output for GET request</p>
+<div class="codehilite"><pre><span class="p">{</span>
+ <span class="s2">"method"</span><span class="o">:</span> <span
class="s2">"GET"</span><span class="p">,</span>
+ <span class="s2">"time"</span><span class="o">:</span> <span
class="mi">15140</span><span class="p">,</span>
+ <span class="s2">"timestamp"</span><span class="o">:</span> <span
class="mi">1461574009024</span><span class="p">,</span>
+ <span class="s2">"requestProgressLogs"</span><span
class="o">:</span> <span class="p">[</span>
+ <span class="s2">"0 TIMER_START{Request Processing}"</span><span
class="p">,</span>
+ <span class="s2">"0 COMMENT timer_end format is {<elapsed
msec>,<timer name>} <optional message>"</span><span
class="p">,</span>
+ <span class="p">...</span>
+ <span class="p">],</span>
+ <span class="s2">"queries"</span><span class="o">:</span> <span
class="p">[{</span>
+ <span class="s2">"query"</span><span class="o">:</span> <span
class="s2">"/jcr:root/etc/workflow/instances//element(*,app:Workflow)[@status='RUNNING']
order by @startTime descending"</span><span class="p">,</span>
+ <span class="s2">"plan"</span><span class="o">:</span> <span
class="s2">"[app:Workflow] as [a] /* property status = RUNNING where
([a].[status] = 'RUNNING') and (isdescendantnode([a],
[/etc/workflow/instances])) */"</span><span class="p">,</span>
+ <span class="s2">"caller"</span><span class="o">:</span> <span
class="s2">"com.example.WorkflowManager.getWorkflowInstances(WorkflowManager.java:902)"</span>
+ <span class="p">}</span>
+ <span class="p">],</span>
+ <span class="s2">"logs"</span><span class="o">:</span> <span
class="p">[{</span>
+ <span class="s2">"timestamp"</span><span class="o">:</span>
<span class="mi">1461574022401</span><span class="p">,</span>
+ <span class="s2">"level"</span><span class="o">:</span> <span
class="s2">"DEBUG"</span><span class="p">,</span>
+ <span class="s2">"logger"</span><span class="o">:</span> <span
class="s2">"org.apache.jackrabbit.oak.query.QueryEngineImpl"</span><span
class="p">,</span>
+ <span class="s2">"message"</span><span class="o">:</span> <span
class="s2">"Parsing xpath statement:
/jcr:root/etc/workflow/instances//element(*,cq:Workflow)[@status='RUNNING']
order by @startTime descending"</span><span class="p">,</span>
+ <span class="s2">"params"</span><span class="o">:</span> <span
class="p">[</span>
+ <span class="s2">"xpath"</span><span class="p">,</span>
+ <span
class="s2">"/jcr:root/etc/workflow/instances//element(*,cq:Workflow)[@status='RUNNING']
order by @startTime descending"</span>
+ <span class="p">]</span>
+ <span class="p">}</span>
+ <span class="p">...</span>
+ <span class="p">]</span>
+<span class="p">}</span>
+</pre></div>
+
+
</li>
</ol>
<p>JSON output consist of following sections</p>
@@ -351,7 +362,7 @@ around this.</p>
<span class="nt"></dependency></span>
</pre></div>
<div class="timestamp" style="margin-top: 30px; font-size: 80%;
text-align: right;">
- Rev. 1740775 by chetanm on Mon, 25 Apr 2016 09:01:58 +0000
+ Rev. 1740785 by chetanm on Mon, 25 Apr 2016 09:19:15 +0000
</div>
<div class="trademarkFooter">
Apache Sling, Sling, Apache, the Apache feather logo, and the Apache
Sling project