Author: buildbot
Date: Mon Apr 25 09:02:08 2016
New Revision: 986564

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
    websites/staging/sling/trunk/content/documentation/bundles/tracer-config.png

Propchange: websites/staging/sling/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Mon Apr 25 09:02:08 2016
@@ -1 +1 @@
-1740769
+1740775

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:02:08 2016
@@ -263,6 +263,85 @@ and route them to normal logging on serv
 </pre></div>
 
 
+<h2 id="tracer-recording">Tracer Recording<a class="headerlink" 
href="#tracer-recording" title="Permanent link">&para;</a></h2>
+<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>
+  <span class="o">-</span><span class="n">H</span> &quot;<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>&quot; <span 
class="o">\</span>
+ <span class="o">-</span><span class="n">d</span> &quot;<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>&quot; <span 
class="o">\</span>
+ <span class="o">-</span><span class="n">d</span> &quot;<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>&quot; <span class="o">\</span>
+ <span class="o">-</span><span class="n">d</span> &quot;<span 
class="o">./</span><span class="n">jcr</span><span class="p">:</span><span 
class="n">primaryType</span><span class="p">=</span><span 
class="n">sling</span><span class="p">:</span><span 
class="n">Folder</span>&quot; <span class="o">\</span>
+ <span class="o">-</span><span class="n">d</span> &quot;<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">primaryType</span><span 
class="p">=</span><span class="n">nt</span><span class="p">:</span><span 
class="n">unstructured</span>&quot; <span class="o">\</span>
+ <span class="o">-</span><span class="n">d</span> &quot;<span 
class="n">tracers</span><span class="p">=</span><span class="n">oak</span><span 
class="o">-</span><span class="n">writes</span>&quot; <span class="o">\</span>
+ <span class="n">http</span><span class="p">:</span><span 
class="o">//</span><span class="n">localhost</span><span 
class="p">:</span>4802<span class="o">/</span><span 
class="n">content</span><span class="o">/</span><span class="n">dam</span><span 
class="o">/</span>
+</pre></div>
+
+
+<ol>
+<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>
+</li>
+</ol>
+</li>
+</ol>
+<p>JSON output consist of following sections</p>
+<ol>
+<li><code>method</code> - Request method</li>
+<li><code>time</code> - Time in mills spent in request processing on 
server</li>
+<li><code>timestamp</code> - Request start time</li>
+<li><code>requestProgressLogs</code> - Sling Request Progress Tracker log for 
the given request</li>
+<li><code>queries</code> - List of queries fired along with details around 
<code>query</code>, <code>plan</code> and <code>caller</code> i.e. from where
+    the query is invoked</li>
+<li><code>logs</code> - List of log entries captured (as enabled by tracer 
config) for current request</li>
+</ol>
+<p>The recordings are held in memory for 15 mins (per default setting) and can 
be seen listed at http://localhost:8080/system/console/tracer. Look into the 
OSGi config for more config options
+around this.</p>
 <h2 id="installation">Installation<a class="headerlink" href="#installation" 
title="Permanent link">&para;</a></h2>
 <p>Download the bundle from <a 
href="http://sling.apache.org/downloads.cgi";>here</a> or use following Maven 
dependency</p>
 <div class="codehilite"><pre><span class="nt">&lt;dependency&gt;</span>
@@ -272,7 +351,7 @@ and route them to normal logging on serv
 <span class="nt">&lt;/dependency&gt;</span>
 </pre></div>
       <div class="timestamp" style="margin-top: 30px; font-size: 80%; 
text-align: right;">
-        Rev. 1740765 by chetanm on Mon, 25 Apr 2016 07:03:26 +0000
+        Rev. 1740775 by chetanm on Mon, 25 Apr 2016 09:01:58 +0000
       </div>
       <div class="trademarkFooter"> 
         Apache Sling, Sling, Apache, the Apache feather logo, and the Apache 
Sling project

Modified: 
websites/staging/sling/trunk/content/documentation/bundles/tracer-config.png
==============================================================================
Binary files - no diff available.


Reply via email to