SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Downloaden Sie, um offline zu lesen
CIRCUIT – An Adobe Developer Event
Presented by ICF Interactive
Monitoring AEM - Going
above and beyond CPU,
Disk, and Memory
Michael Chan
ICFI Interactive
Introduction
Who Am I
•  Michael Chan, Systems Engineer & Architect for ICFI
Interactive Managed Services
•  Former Java & C developer
•  With past experience in
–  Unix security
–  Network monitoring
–  Systems (network, storage, server) integration
–  Ecommerce
•  Primary responsibilities at ICFI (among others)
–  Build out systems infrastructure, including systems
automation, logging, and monitoring
–  Enable engineers to quickly assess and respond to
systems issues
Purpose of session
Session will cover:
•  Introduce systems monitoring concepts
•  Provide practical ideas and examples on how to
monitor your website and AEM stack
•  Use data to make correlations for root-cause
analysis
Session will not cover:
•  Which monitoring software to use
•  How to implement x or y feature in your monitoring
software
•  What alerting strategies you should use
Goals of systems monitoring
•  Maintain site availability
– Can users access the site?
•  Identify performance issues
– Are users waiting too long?
•  Troubleshoot problems
– How do I identify root cause?
•  Identify long-term trends
– Is the application slowing down?
– Do we need faster hardware?
Monitoring tools out there (not exhaustive)
Open Source (free!)
•  Nagios
•  Icinga
•  Zabbix
SAAS
•  Application-performance focused
–  AppDynamics
–  New Relic
•  Boundary
•  Datadog
Monitoring software considerations
What I have found most important
•  Easy to use
–  Has a convenient GUI
–  Easy to add servers, applications
•  Easy to view and interpret data
–  Need to be able to view data and quickly make correlations
•  Extensible
–  Easy to customize, e.g. monitor Publisher listening on port 4506 instead
of 4503
–  Support for plugins and especially custom scripts, necessary for
application-specific monitoring
•  Other considerations
–  Can the setup configs be version controlled in Git?
–  Is there an API for the monitoring system, to create/modify configs?
Tip: everyone’s needs are differerent, use what makes sense for you!
Basic monitoring – CPU, network, disk
Good questions to ask when monitoring these
•  CPU Load Average
–  What percentage of CPU is the application utilizing?
–  Is there surplus CPU capacity left?
•  Network Statistics
–  e.g. Bytes in/out, Packets in/out
–  How much traffic are our servers receiving?
–  Do any network spikes correlate with slower application performance?
•  Disk (IOPS, throughput)
–  How much is the application utilizing the disk?
–  Is the application hitting any Disk I/O thresholds?
Tip: benchmark your Network and Disk I/O thresholds to discover your
hardware limitations.
Note: AEM may be hitting CPU limits even before CPU load is %100. Reason
for this is that threads often can be waiting on another thread’s operations to
complete, and until that thread completes, the rest are waiting or blocked.
Therefore slowness can begin even at %50-%75 CPU utilization
Simple web monitoring – must have’s
HTTP Code check
mc-macbook-2:~ mc$ curl -I http://www.citytechinc.com/us/en.html
HTTP/1.1 200 OK
Content-based checks
mc-macbook-2:~ mc$ curl -s http://www.citytechinc.com/us/en.html | grep 'CITYTECH, Inc.
all rights reserved'
© 2015 CITYTECH, Inc. all rights reserved
Content-based checks with timeout
mc-macbook-2:~ mc$ curl --max-time 30 -s http://www.citytechinc.com/us/en.html | grep
'CITYTECH, Inc. all rights reserved'
© 2015 CITYTECH, Inc. all rights reserved
Response time check
mc-macbook-2:~ mc$ time curl -s http://www.citytechinc.com/us/en.html | grep 'CITYTECH,
Inc. all rights reserved' >/dev/null 2>&1
real 0m0.195s
user 0m0.007s
Sys 0m0.006s
Tip: install content-based checks on each Publish and Dispatcher instance.
That way you can quickly detect which instance has a failure.
Simple web monitoring – Apache performance stats
Apache, mod_status module
•  Provides performance statistics
•  Note: path e.g. /server-status should be disabled from public internet
root@Client Prod CQ Disp 1a i-a678d2db:~# curl -s http://localhost/
server-status | html2text|more
****** Apache Server Status for localhost ******
Server Version: Apache/2.2.15 (Unix) Communique/4.1.2 mod_ssl/
2.2.15 OpenSSL/
1.0.1e-fips
Server Built: Jul 18 2014 02:31:29
====================================================================
Current Time: Wednesday, 29-Jul-2015 01:37:00 GMT
Restart Time: Sunday, 26-Jul-2015 03:39:30 GMT
Parent Server Generation: 4
Server uptime: 2 days 21 hours 57 minutes 30 seconds
Total accesses: 3430869 - Total Traffic: 114.6 GB
CPU Usage: u43.79 s19.41 cu0 cs0 - .0251% CPU load
13.6 requests/sec - 477.1 kB/second - 35.0 kB/request
41 requests currently being processed, 21 idle workers
Web monitoring – STM / RUM – nice to have
Synthetic Transaction Monitoring
•  (also known as active monitoring) is website monitoring that is
done using a web browser emulation or scripted recordings of
web transactions.
•  Examples
–  Selenium
–  Neustar
–  Keynote
•  Advantages
–  Repeatable process
•  e.g. can ensure that the process of “login, add product to shopping cart, checkout”
works between code releases
–  Can be used as a control
–  Cheap
•  Disadvantages
–  Monitors only what you decided to test against
–  Not as thorough as RUM
Web monitoring – RUM / STM – nice to have
Real User Monitoring
•  (RUM) is a passive monitoring technology that records all user
interaction with a website or client interacting with a server or
cloud-based application.
•  Examples
–  Google Analytics
–  New Relic
–  Keynote
–  Many, many more
•  Advantages
–  Real-user “testing” data
–  Monitoring for issues as they occur
–  Identifies browser-related issues
•  Disadvantages
–  Expensive
–  Too much information (information overload)
Adobe WEM monitoring – basic checks for Author, Publisher
Ports to monitor (are they accessible)?
•  Author – 4502
•  Publisher – 4503
Suggested pages to monitor
•  Sling login page - /system/sling/cqform/defaultlogin.html
–  Should always work!
–  Response times almost always the same
–  If Sling login page is up, but for example homepage is not, can be indicative a content
or code-related issue
curl -s http://localhost:4503/system/sling/cqform/defaultlogin.html | grep
QUICKSTART_HOMEPAGE
<!-- QUICKSTART_HOMEPAGE - (string used for readyness detection, do not remove) -->
•  Homepage, important landing pages
–  If Publisher hosts multiple farms & host-specific sling mappings are used, you may
need to pass host-header:
curl -H "Host: www.citytechinc.com" http://localhost:4503/us/en.html
–  Above example is another reason why a customizable monitoring solution is needed
•  Nagios has an http_check plugin that supports sending host headers with requests
Adobe WEM monitoring – error.log, critical errors
Files to monitor
•  error.log, keywords (AEM 5.5, 5.6, although some may still be
applicable to 6.x)
–  critical errors
•  OutOfMemoryMonitor	
  CQ	
  shutting	
  down	
  
•  StackOverflowError	
  
•  Maximum	
  threads	
  reached	
  
•  Java OutOfMemoryErrors, e.g.
–  java.lang.OutOfMemoryError:	
  unable	
  to	
  create	
  new	
  
native	
  thread	
  
•  too	
  many	
  open	
  files	
  
–  Non-critical errors (error count is useful)
•  RecursionTooDeepException	
  
•  Failed	
  to	
  mmap	
  tar	
  file	
  /	
  
java.lang.OutOfMemoryError:	
  Map	
  failed	
  
Adobe WEM monitoring – error.log, repository related
Files to monitor
•  error.log, repository-related keywords
–  critical errors
•  tar	
  files	
  read-­‐only	
  
–  Non-critical errors (error count is useful, with alarm set when
threshold is exceeded)
•  failed	
  to	
  retrieve	
  state	
  of(.+)node	
  
•  failed	
  to	
  retrieve	
  state	
  of	
  intermediary	
  node	
  
•  Failed	
  to	
  read	
  bundle	
  
•  Repository	
  error	
  during	
  page	
  import	
  
•  Unable	
  to	
  create	
  version	
  
•  lucene(.+)Unknown(.+)node	
  
•  lucene(.+)query	
  result	
  node	
  
	
  
Tip: When encoutering important repository errors, make sure to
update your monitoring software to detect it!
	
  
Adobe WEM monitoring – error.log
Adobe WEM monitoring – access.log
Files to monitor
•  access.log
–  HTTP code frequency, e.g.
–  200 Success
–  302 Redirect
–  403 Forbidden
–  404 Not Found
–  500 Internal Server Error
# tail access.log
127.0.0.1 - anonymous 04/Aug/2015:20:30:54 +0000 "GET /us/en.html
HTTP/1.1" 200 22572 "-" "-"
127.0.0.1 - anonymous 04/Aug/2015:20:30:55 +0000 "GET /content/
citytech/global/en.html HTTP/1.1" 200 22598 "-" "curl agent, CTMSP
monitoring”
Tip: throw these stats into graph in order to correlate trends or possible
page issues or anomalies (RUM, ELK does this excellently)
Adobe WEM monitoring – access.log, cont.
Adobe WEM monitoring – access.log, cont.
Files to monitor
•  access.log
– Cache-busting requests
•  Contains query strings, e.g.
–  http://www.citytechinc.com/us/en.html?hi=test
•  Extensionless, e.g.
–  GET /athletes/athletes.34360.html/career
– Extensions
•  .js, .css
•  Images - .bmp, .jpg, .jpeg, .png
Tip: calculate the percentage of cache-busting requests
over time as a baseline to compare against.
Adobe WEM monitoring – access.log, cont.
Adobe WEM monitoring – request.log
Files to monitor
•  request.log
–  Looks like
root@Citytech Prod CQ Pub 1c i-cbdd5ba9:/var/log/cq5# tail request.log
26/Jul/2015:01:10:23 +0000 [2774404] -> GET /content/citytech/global/
en.html HTTP/1.1
26/Jul/2015:01:10:23 +0000 [2774404] <- 200 text/html 229ms
26/Jul/2015:01:10:25 +0000 [2774405] -> GET /system/sling/cqform/
defaultlogin.html HTTP/1.1
26/Jul/2015:01:10:25 +0000 [2774405] <- 200 text/html 3ms
26/Jul/2015:01:10:28 +0000 [2774407] -> GET /us/en.html HTTP/1.1
26/Jul/2015:01:10:28 +0000 [2774407] <- 200 text/html 222ms
–  Can obtain list of response times with rlog.jar
java -jar /opt/adobe-cq5.6.1/publish/crx-quickstart/opt/
helpers/rlog.jar -n 50 -xdev /var/log/cq5/request.log
Tip: create a top 100 list of slowest page requests over 5 minute intervals in order to
spot poorly performing pages
Adobe WEM monitoring – request.log
07/24/2015 01:50:27 PM ------------- Fri Jul 24 18:50:26 GMT 2015 --------------
*Info * Parsed 1135 requests.
*Info * Time for parsing: 72ms
*Info * Time for sorting: 3ms
*Info * Total Memory: 110mb
*Info * Free Memory: 109mb
*Info * Used Memory: 1mb
------------------------------------------------------
7165ms 24/Jul/2015:18:48:16 +0000 200 GET /en/home/products/show_products.html?tag=bikes-us%3Abrand%2Ftrek&tag=bikes-us%3Aproduct%2Fulocks
%2Fshimano text/html
7020ms 24/Jul/2015:18:46:54 +0000 200 GET /en/home/products/show_products.html?tag=trek-americas%3Abrand%2Ftrek&tag=trek-americas%3Aproduct
%2Fulocks%2FnonLocking text/html
6643ms 24/Jul/2015:18:46:54 +0000 200 GET /en/home/style/show_products.html?tag=bikes-us%3Abrand%2Ftrek&tag=bikes-us%3AstyleCollection%2Fcamelot
text/html
6001ms 24/Jul/2015:18:46:54 +0000 200 GET /en/home/style/show_products.html?tag=bikes-us%3Abrand%2Ftrek&tag=bikes-us%3AstyleCollection
%2Fbrookshire text/html
4979ms 24/Jul/2015:18:46:53 +0000 200 GET /en/home/products/show_products.html?tag=trek-americas%3Abrand%2Ftrek&tag=trek-americas%3Aproduct
%2Fhandlesets%2FtwoSidesKeyed text/html
4074ms 24/Jul/2015:18:48:16 +0000 200 GET /en/home/products/show_products.html?tag=bikes-us%3Abrand%2Ftrek&tag=bikes-us%3Aproduct%2Fknobs
%2FnonLocking text/html
3357ms 24/Jul/2015:18:46:39 +0000 200 GET /en/home/products/show_products.html?tag=bikes-us%3Abrand%2Ftrek&tag=bikes-us%3Aproduct
%2Fshifters&tag=bikes-us%3Aproduct%2Fshifters%2FoneSideKeyed text/html
1031ms 24/Jul/2015:18:46:02 +0000 200 GET /en/home/products/show_products.html?tag=bikes-us:brand/trek&tag=bikes-us:product/shifters&tag=bikes-
us:product/shifters/oneSideKeyed text/html
925ms 24/Jul/2015:18:46:44 +0000 200 GET /content/bikes-us/en/home/search.html?searchQuery=user+and+alarm+programming text/html
818ms 24/Jul/2015:18:46:36 +0000 200 GET /en/home/style/design-guides/style-evolution-2014.html text/html
528ms 24/Jul/2015:18:49:38 +0000 200 GET /en/home/products/F51ACCFFF.html?bck=@@bikes-us:brand/trek@@bikes-us:product/ulocks/keyedLock@@bikes-
us:product/ulocks text/html
456ms 24/Jul/2015:18:47:00 +0000 200 GET /content/dam/bikes-us/product-images/F10%20%28F75%29/F10ACC622ADD.jpg/_jcr_content/renditions/
cq5dam.thumbnail.319.319.png image/png
361ms 24/Jul/2015:18:49:38 +0000 200 GET /content/bikes-us/en/home/search.html?searchQuery=AL+SERIES text/html
306ms 24/Jul/2015:18:47:01 +0000 200 GET /content/dam/bikes-us/product-images/F10%20%28F75%29/F10BRW625GRW.jpg/_jcr_content/renditions/
cq5dam.thumbnail.319.319.png image/png
292ms 24/Jul/2015:18:49:42 +0000 200 GET /en/home/faq.html?id=42 text/html
272ms 24/Jul/2015:18:47:01 +0000 200 GET /content/dam/bikes-us/product-images/BE469NX/BE469NXCEN626.jpg/_jcr_content/renditions/cq5dam.thumbnail.
319.319.png image/png
244ms 24/Jul/2015:18:47:27 +0000 200 GET /content/bikes-us/en/home.html text/html
236ms 24/Jul/2015:18:47:02 +0000 200 GET /content/dam/bikes-us/product-images/F10%20%28F75%29/F10PLY716GRW.jpg/_jcr_content/renditions/
cq5dam.thumbnail.319.319.png image/png
Adobe WEM monitoring – thread count
WEM request thread count
•  Why is this important?
–  default max request thread is set to 200
–  If hitting the maximum, can indicate spike in traffic or application slowness
•  How do I view? System console:
http://i-cbdd5ba9.citytech-prod.ctmsp.com:4503/system/console/status-Threads
Thread #768010/10.87.66.63 [1437866326422] <closed> [priority=5, alive=true, daemon=true, interrupted=false,
loader=cqse-httpservice [22]]
Thread #2228/127.0.0.1 [1437868798545] GET /us/en.html HTTP/1.1 [priority=5, alive=true, daemon=true,
interrupted=false, loader=org.apache.sling.commons.classloader.impl.ClassLoaderFacade@2d58350a]
Thread #2196/127.0.0.1 [1437868798613] GET /us/en.html HTTP/1.1 [priority=5, alive=true, daemon=true,
interrupted=false, loader=org.apache.sling.commons.classloader.impl.ClassLoaderFacade@2d58350a]
Thread #768030/127.0.0.1 [1437868798881] GET /us/en.html HTTP/1.1 [priority=5, alive=true, daemon=true,
interrupted=false, loader=org.apache.sling.commons.classloader.impl.ClassLoaderFacade@2d58350a]
Thread #937774/127.0.0.1 [1437868798896] GET /us/en.html HTTP/1.1 [priority=5, alive=true, daemon=true,
interrupted=false, loader=org.apache.sling.commons.classloader.impl.ClassLoaderFacade@2d58350a]
Thread #767978/127.0.0.1 [1437868798909] GET /us/en.html HTTP/1.1 [priority=5, alive=true, daemon=true,
interrupted=false, loader=org.apache.sling.commons.classloader.impl.ClassLoaderFacade@2d58350a]
Thread #767927/127.0.0.1 [1437868802472] <closed> [priority=5, alive=true, daemon=true, interrupted=false,
loader=cqse-httpservice [22]]
Thread #767940/64.6.160.57 [1437868802408] GET /system/console/status-Threads HTTP/1.1 [priority=5, alive=true,
daemon=true, interrupted=false, loader=cqse-httpservice [22]]
Thread #767982/64.6.160.57 [1437868802410] <parse> [priority=5, alive=true, daemon=true, interrupted=false,
loader=cqse-httpservice [22]]
Thread #87/ActivityServiceImpl [priority=5, alive=true, daemon=true, interrupted=false,
loader=java.net.URLClassLoader@42472d48]
Thread #109/Adobe Granite Offloading job cloner queue processor [priority=5, alive=true, daemon=true,
interrupted=false, loader=java.net.URLClassLoader@42472d48]
•  Obtaining request thread count (easy curl command)
curl -s -u 'admin:_insert_password_here' http://localhost:4503/system/console/status-
Threads|grep -E 'GET|POST’|wc –l
Adobe WEM monitoring – JCR queries
Slow Queries, Popular Queries
•  AEM built-in
•  Displays top 15 slowest JCR queries
•  Example:
/usr/bin/java -jar /usr/local/bin/cmdline-
jmxclient-0.10.3.jar - localhost:12345
com.adobe.granite:type=QueryStat SlowQueries
Adobe WEM monitoring – JCR queries
------------- 07/26/2015 01:44:33 +0000 org.archive.jmx.Client SlowQueries: --------------
creationTime: Sun Jul 26 01:40:06 GMT 2015 duration: 2788ms language: xpath occurrenceCount: 1 position: 1
statement: /jcr:root/content/trek-us/en/home/products//element(*, cq:Page)[jcr:contains(., '*') and (jcr:content/
@cq:template = '/apps/trek-americas/templates/productDetail-page') and ((jcr:content/@cq:tags = 'trek-
americas:product/shifters' and jcr:content/@cq:tags = 'trek-americas:product/shifters/nonLocking' and jcr:content/
@cq:tags = 'trek-americas:brand/trek'))]
creationTime: Sun Jul 26 01:36:34 GMT 2015 duration: 1766ms language: xpath occurrenceCount: 8729
position: 2
statement: /jcr:root/var/eventing/jobs//element(*, slingevent:Job)[jcr:contains(., '/com/day/cq/replication/job')
and not(@slingevent:finished)]
creationTime: Sun Jul 26 01:40:33 GMT 2015 duration: 809ms language: xpath occurrenceCount: 1 position: 3
statement: /jcr:root/content/trek-us/en/home/products//element(*, cq:Page)[jcr:contains(., '*') and (jcr:content/
@cq:template = '/apps/trek-americas/templates/productDetail-page') and ((jcr:content/@cq:tags = 'trek-
americas:product/shifters' and jcr:content/@cq:tags = 'trek-americas:product/shifters/nonLocking' and jcr:content/
@cq:tags = 'trek-americas:brand/trek'))]
creationTime: Sun Jul 26 01:41:15 GMT 2015 duration: 790ms language: xpath occurrenceCount: 1 position: 4
statement: /jcr:root/content/trek-us/en/home/products//element(*, cq:Page)[jcr:contains(., '*') and (jcr:content/
@cq:template = '/apps/trek-americas/templates/productDetail-page') and ((jcr:content/@cq:tags = 'trek-americas:brand/
trek' and jcr:content/@cq:tags = 'trek-americas:product/ulocks' and jcr:content/@cq:tags = 'trek-americas:product/
ulocks/titanium'))]
creationTime: Sun Jul 26 01:40:05 GMT 2015 duration: 782ms language: xpath occurrenceCount: 1 position: 5
statement: /jcr:root/content/trek-us/en/home/products//element(*, cq:Page)[jcr:contains(., '*') and (jcr:content/
@cq:template = '/apps/trek-americas/templates/productDetail-page') and ((jcr:content/@cq:tags = 'trek-
americas:product/levers' and jcr:content/@cq:tags = 'trek-americas:electric/zwave' and jcr:content/@cq:tags = 'trek-
americas:product/ulocks/titanium'))] order by jcr:content/content-par/productdetail/@releasedate descending
Tip: The slow query statistic by default shows all queries since AEM startup. However this counter
can be reset, if you want to have for example 10-minute “summaries” of the slowest queries.
Adobe WEM monitoring – misc.
Other possible things to monitor
•  Running workflows
•  Bundle status - installed, active
•  Replication queues - total, blocked
data for all of the above is possible via curl!
JVM monitoring – heap usage
Heap usage
•  Useful for viewing AEM memory usage and GC issues
•  Can be obtained via JMX
–  Example using free cmdline-jmxclient.jar tool:
# java -jar /usr/local/bin/cmdline-jmxclient.jar - i-d4bb64dd.ct-prod.ctmsp.com:12345
'java.lang:name=PS Old Gen,type=MemoryPool' Usage
07/26/2015 20:12:20 +0000 org.archive.jmx.Client Usage:
committed: 4462215168
init: 894828544
max: 14316601344
used: 4158743792
•  Also viewable via jmap command
# jmap -heap 31470
Attaching to process ID 31470, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 20.5-b03
using thread-local object allocation.
Parallel GC with 1 thread(s)
- additional output trimmed -
JVM monitoring – heap usage
JVM monitoring – heap usage issues
JVM Monitoring – GC pause times
Why monitor JVM pause times?
•  These are “stop-the-world” events where the application is unreponsive due to JVM
garbage collection
•  Sometimes JVM garbage collection is not successful, and thus constant GCs occur
since memory cannot be freed – this incurs serious CPU usage
•  Should be monitored since it can be a performance hit
How to monitor?
•  Pause times can be added to stdout via JVM options
-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps
2015-07-27T18:50:30.212+0000: [Full GC [PSYoungGen: 98121K->0K(6107264K)] [ParOldGen:
6144935K->1561525K(6291456K)] 6243056K->1561525K(12398720K) [PSPermGen: 193509K-
>193465K(193600K)], 5.7558230 secs] [Times: user=22.98 sys=0.00, real=5.75 secs]
2015-07-27T18:50:42.432+0000: [GC [PSYoungGen: 5916288K->81734K(5998080K)] 7477813K-
>1643259K(12289536K), 0.1018320 secs] [Times: user=0.52 sys=0.00, real=0.10 secs]
•  Pause times also can be added via:
-XX:+PrintGCApplicationStoppedTime
Total time for which application threads were stopped: 0.0001780 seconds
Total time for which application threads were stopped: 0.0001920 seconds
Tip: Even if you don’t have time to enable monitoring via JMX, at least print GC output
to a log file for later analysis when AEM is slowing down!
JVM Monitoring – GC pause times
Summary
•  Monitor all homepage & landing pages, for
all individual Publishers and Dispatchers
•  Use AEM logs and tools to provide info on
AEM status and performance – access/
error/request logs, rlog.jar, thread status,
slow queries page and customize your
monitoring to record this data
•  Use JMX and verbose GC logging to record
JVM memory heap usage, and GC pause
times
References
References
•  http://smartbear.com/articles/what-is-real-user-
monitoring/
•  https://en.wikipedia.org/wiki/
Synthetic_monitoring
•  https://docs.adobe.com/docs/en/cq/5-6-1/
deploying/performance.html
Contact Info:
Michael Chan
michael.chan@icfi.com

Weitere ähnliche Inhalte

Was ist angesagt?

New Repository in AEM 6 by Michael Marth
New Repository in AEM 6 by Michael MarthNew Repository in AEM 6 by Michael Marth
New Repository in AEM 6 by Michael MarthAEM HUB
 
The new repository in AEM 6
The new repository in AEM 6The new repository in AEM 6
The new repository in AEM 6Jukka Zitting
 
The secret life of a dispatcher (Adobe CQ AEM)
The secret life of a dispatcher (Adobe CQ AEM)The secret life of a dispatcher (Adobe CQ AEM)
The secret life of a dispatcher (Adobe CQ AEM)Venugopal Gummadala
 
AEM - A Collection of developer friendly tools
AEM - A Collection of developer friendly toolsAEM - A Collection of developer friendly tools
AEM - A Collection of developer friendly toolsAshokkumar T A
 
Scaling AEM (CQ5) Gem Session
Scaling AEM (CQ5) Gem SessionScaling AEM (CQ5) Gem Session
Scaling AEM (CQ5) Gem SessionMichael Marth
 
Upgrading or migrating to a higher AEM version - Planning and process
Upgrading or migrating to a higher AEM version - Planning and processUpgrading or migrating to a higher AEM version - Planning and process
Upgrading or migrating to a higher AEM version - Planning and processAshokkumar T A
 
Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB
Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB
Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB MongoDB
 
Apache Jackrabbit Oak on MongoDB
Apache Jackrabbit Oak on MongoDBApache Jackrabbit Oak on MongoDB
Apache Jackrabbit Oak on MongoDBMongoDB
 
Adobe AEM Maintenance - Customer Care Office Hours
Adobe AEM Maintenance - Customer Care Office HoursAdobe AEM Maintenance - Customer Care Office Hours
Adobe AEM Maintenance - Customer Care Office HoursAndrew Khoury
 
Scale ColdFusion with Terracotta Distributed Caching for Ehchache
Scale ColdFusion with Terracotta Distributed Caching for EhchacheScale ColdFusion with Terracotta Distributed Caching for Ehchache
Scale ColdFusion with Terracotta Distributed Caching for EhchacheColdFusionConference
 
Introdcution to Adobe CQ
Introdcution to Adobe CQIntrodcution to Adobe CQ
Introdcution to Adobe CQRest West
 
Effectively Deploying MongoDB on AEM
Effectively Deploying MongoDB on AEMEffectively Deploying MongoDB on AEM
Effectively Deploying MongoDB on AEMNorberto Leite
 
Four approaches to integrate aem with external systems by Jan Kuzniak
Four approaches to integrate aem with external systems by Jan KuzniakFour approaches to integrate aem with external systems by Jan Kuzniak
Four approaches to integrate aem with external systems by Jan KuzniakAEM HUB
 
AEM - Binary less replication
AEM - Binary less replicationAEM - Binary less replication
AEM - Binary less replicationAshokkumar T A
 
Accelerate your ColdFusion Applications using Caching
Accelerate your ColdFusion Applications using CachingAccelerate your ColdFusion Applications using Caching
Accelerate your ColdFusion Applications using CachingColdFusionConference
 
AEM + MongoDB: How to Scale and Operate Large Digital Asset Management Systems
AEM + MongoDB: How to Scale and Operate Large Digital Asset Management SystemsAEM + MongoDB: How to Scale and Operate Large Digital Asset Management Systems
AEM + MongoDB: How to Scale and Operate Large Digital Asset Management SystemsMongoDB
 

Was ist angesagt? (20)

New Repository in AEM 6 by Michael Marth
New Repository in AEM 6 by Michael MarthNew Repository in AEM 6 by Michael Marth
New Repository in AEM 6 by Michael Marth
 
Aem maintenance
Aem maintenanceAem maintenance
Aem maintenance
 
The new repository in AEM 6
The new repository in AEM 6The new repository in AEM 6
The new repository in AEM 6
 
The secret life of a dispatcher (Adobe CQ AEM)
The secret life of a dispatcher (Adobe CQ AEM)The secret life of a dispatcher (Adobe CQ AEM)
The secret life of a dispatcher (Adobe CQ AEM)
 
AEM - A Collection of developer friendly tools
AEM - A Collection of developer friendly toolsAEM - A Collection of developer friendly tools
AEM - A Collection of developer friendly tools
 
EVOLVE'13 | Enhance | Permission Sensitive Caching | Paul McMahon & Jason Rap...
EVOLVE'13 | Enhance | Permission Sensitive Caching | Paul McMahon & Jason Rap...EVOLVE'13 | Enhance | Permission Sensitive Caching | Paul McMahon & Jason Rap...
EVOLVE'13 | Enhance | Permission Sensitive Caching | Paul McMahon & Jason Rap...
 
Scaling AEM (CQ5) Gem Session
Scaling AEM (CQ5) Gem SessionScaling AEM (CQ5) Gem Session
Scaling AEM (CQ5) Gem Session
 
Upgrading or migrating to a higher AEM version - Planning and process
Upgrading or migrating to a higher AEM version - Planning and processUpgrading or migrating to a higher AEM version - Planning and process
Upgrading or migrating to a higher AEM version - Planning and process
 
Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB
Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB
Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB
 
S903 palla
S903 pallaS903 palla
S903 palla
 
Apache Jackrabbit Oak on MongoDB
Apache Jackrabbit Oak on MongoDBApache Jackrabbit Oak on MongoDB
Apache Jackrabbit Oak on MongoDB
 
Adobe AEM Maintenance - Customer Care Office Hours
Adobe AEM Maintenance - Customer Care Office HoursAdobe AEM Maintenance - Customer Care Office Hours
Adobe AEM Maintenance - Customer Care Office Hours
 
10 common cf server challenges
10 common cf server challenges10 common cf server challenges
10 common cf server challenges
 
Scale ColdFusion with Terracotta Distributed Caching for Ehchache
Scale ColdFusion with Terracotta Distributed Caching for EhchacheScale ColdFusion with Terracotta Distributed Caching for Ehchache
Scale ColdFusion with Terracotta Distributed Caching for Ehchache
 
Introdcution to Adobe CQ
Introdcution to Adobe CQIntrodcution to Adobe CQ
Introdcution to Adobe CQ
 
Effectively Deploying MongoDB on AEM
Effectively Deploying MongoDB on AEMEffectively Deploying MongoDB on AEM
Effectively Deploying MongoDB on AEM
 
Four approaches to integrate aem with external systems by Jan Kuzniak
Four approaches to integrate aem with external systems by Jan KuzniakFour approaches to integrate aem with external systems by Jan Kuzniak
Four approaches to integrate aem with external systems by Jan Kuzniak
 
AEM - Binary less replication
AEM - Binary less replicationAEM - Binary less replication
AEM - Binary less replication
 
Accelerate your ColdFusion Applications using Caching
Accelerate your ColdFusion Applications using CachingAccelerate your ColdFusion Applications using Caching
Accelerate your ColdFusion Applications using Caching
 
AEM + MongoDB: How to Scale and Operate Large Digital Asset Management Systems
AEM + MongoDB: How to Scale and Operate Large Digital Asset Management SystemsAEM + MongoDB: How to Scale and Operate Large Digital Asset Management Systems
AEM + MongoDB: How to Scale and Operate Large Digital Asset Management Systems
 

Andere mochten auch

AEM Best Practices for Component Development
AEM Best Practices for Component DevelopmentAEM Best Practices for Component Development
AEM Best Practices for Component DevelopmentGabriel Walt
 
Adobe Managed Services: Complicated Cloud Deployments
Adobe Managed Services: Complicated Cloud DeploymentsAdobe Managed Services: Complicated Cloud Deployments
Adobe Managed Services: Complicated Cloud DeploymentsAdam Pazik
 
AEM MSM: Basics & More
AEM MSM: Basics & MoreAEM MSM: Basics & More
AEM MSM: Basics & MoreKanika Gera
 
Agnostic Continuous Delivery
Agnostic Continuous DeliveryAgnostic Continuous Delivery
Agnostic Continuous DeliveryHervé Leclerc
 
Introduction to Sightly and Sling Models
Introduction to Sightly and Sling ModelsIntroduction to Sightly and Sling Models
Introduction to Sightly and Sling ModelsStefano Celentano
 
The six key steps to AEM architecture
The six key steps to AEM architectureThe six key steps to AEM architecture
The six key steps to AEM architectureAshokkumar T A
 
Adobe Managed Services: Complicated Cloud Deployments by Adam Pazik, Mike Til...
Adobe Managed Services: Complicated Cloud Deployments by Adam Pazik, Mike Til...Adobe Managed Services: Complicated Cloud Deployments by Adam Pazik, Mike Til...
Adobe Managed Services: Complicated Cloud Deployments by Adam Pazik, Mike Til...AEM HUB
 
Enabing DevOps in an SDN World
Enabing DevOps in an SDN WorldEnabing DevOps in an SDN World
Enabing DevOps in an SDN WorldCisco DevNet
 
Adobe Experience Manager - Replication deep dive
Adobe Experience Manager - Replication deep diveAdobe Experience Manager - Replication deep dive
Adobe Experience Manager - Replication deep divemwmd
 
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...Sonatype
 

Andere mochten auch (10)

AEM Best Practices for Component Development
AEM Best Practices for Component DevelopmentAEM Best Practices for Component Development
AEM Best Practices for Component Development
 
Adobe Managed Services: Complicated Cloud Deployments
Adobe Managed Services: Complicated Cloud DeploymentsAdobe Managed Services: Complicated Cloud Deployments
Adobe Managed Services: Complicated Cloud Deployments
 
AEM MSM: Basics & More
AEM MSM: Basics & MoreAEM MSM: Basics & More
AEM MSM: Basics & More
 
Agnostic Continuous Delivery
Agnostic Continuous DeliveryAgnostic Continuous Delivery
Agnostic Continuous Delivery
 
Introduction to Sightly and Sling Models
Introduction to Sightly and Sling ModelsIntroduction to Sightly and Sling Models
Introduction to Sightly and Sling Models
 
The six key steps to AEM architecture
The six key steps to AEM architectureThe six key steps to AEM architecture
The six key steps to AEM architecture
 
Adobe Managed Services: Complicated Cloud Deployments by Adam Pazik, Mike Til...
Adobe Managed Services: Complicated Cloud Deployments by Adam Pazik, Mike Til...Adobe Managed Services: Complicated Cloud Deployments by Adam Pazik, Mike Til...
Adobe Managed Services: Complicated Cloud Deployments by Adam Pazik, Mike Til...
 
Enabing DevOps in an SDN World
Enabing DevOps in an SDN WorldEnabing DevOps in an SDN World
Enabing DevOps in an SDN World
 
Adobe Experience Manager - Replication deep dive
Adobe Experience Manager - Replication deep diveAdobe Experience Manager - Replication deep dive
Adobe Experience Manager - Replication deep dive
 
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
 

Ähnlich wie CIRCUIT 2015 - Monitoring AEM

Splunk: Forward me the REST of those shells
Splunk: Forward me the REST of those shellsSplunk: Forward me the REST of those shells
Splunk: Forward me the REST of those shellsAnthony D Hendricks
 
Automating Post Exploitation with PowerShell
Automating Post Exploitation with PowerShellAutomating Post Exploitation with PowerShell
Automating Post Exploitation with PowerShellEnclaveSecurity
 
Ansible benelux meetup - Amsterdam 27-5-2015
Ansible benelux meetup - Amsterdam 27-5-2015Ansible benelux meetup - Amsterdam 27-5-2015
Ansible benelux meetup - Amsterdam 27-5-2015Pavel Chunyayev
 
10 Tips for Your Journey to the Public Cloud
10 Tips for Your Journey to the Public Cloud10 Tips for Your Journey to the Public Cloud
10 Tips for Your Journey to the Public CloudIntuit Inc.
 
Open Audit
Open AuditOpen Audit
Open Auditncspa
 
Getting to Walk with DevOps
Getting to Walk with DevOpsGetting to Walk with DevOps
Getting to Walk with DevOpsEklove Mohan
 
Performance Tuning Oracle Weblogic Server 12c
Performance Tuning Oracle Weblogic Server 12cPerformance Tuning Oracle Weblogic Server 12c
Performance Tuning Oracle Weblogic Server 12cAjith Narayanan
 
Graphing for Security
Graphing for SecurityGraphing for Security
Graphing for Securitymr_secure
 
Application Performance Troubleshooting 1x1 - Part 2 - Noch mehr Schweine und...
Application Performance Troubleshooting 1x1 - Part 2 - Noch mehr Schweine und...Application Performance Troubleshooting 1x1 - Part 2 - Noch mehr Schweine und...
Application Performance Troubleshooting 1x1 - Part 2 - Noch mehr Schweine und...rschuppe
 
network-management Web base.ppt
network-management Web base.pptnetwork-management Web base.ppt
network-management Web base.pptAssadLeo1
 
High Performance Web Sites
High Performance Web SitesHigh Performance Web Sites
High Performance Web SitesRavi Raj
 
Season 4 [Free OpManager training] Part2- Monitoring Server Performance
Season 4 [Free OpManager training] Part2- Monitoring Server PerformanceSeason 4 [Free OpManager training] Part2- Monitoring Server Performance
Season 4 [Free OpManager training] Part2- Monitoring Server PerformanceManageEngine, Zoho Corporation
 
Seven steps to better security
Seven steps to better securitySeven steps to better security
Seven steps to better securityMichael Pignataro
 
(APP307) Leverage the Cloud with a Blue/Green Deployment Architecture | AWS r...
(APP307) Leverage the Cloud with a Blue/Green Deployment Architecture | AWS r...(APP307) Leverage the Cloud with a Blue/Green Deployment Architecture | AWS r...
(APP307) Leverage the Cloud with a Blue/Green Deployment Architecture | AWS r...Amazon Web Services
 
Cognos Performance Tuning Tips & Tricks
Cognos Performance Tuning Tips & TricksCognos Performance Tuning Tips & Tricks
Cognos Performance Tuning Tips & TricksSenturus
 
Realtime traffic analyser
Realtime traffic analyserRealtime traffic analyser
Realtime traffic analyserAlex Moskvin
 
Boris Stoyanov - Troubleshooting the Virtual Router - Run and Get Diagnostics
Boris Stoyanov - Troubleshooting the Virtual Router - Run and Get DiagnosticsBoris Stoyanov - Troubleshooting the Virtual Router - Run and Get Diagnostics
Boris Stoyanov - Troubleshooting the Virtual Router - Run and Get DiagnosticsShapeBlue
 

Ähnlich wie CIRCUIT 2015 - Monitoring AEM (20)

Splunk: Forward me the REST of those shells
Splunk: Forward me the REST of those shellsSplunk: Forward me the REST of those shells
Splunk: Forward me the REST of those shells
 
Automating Post Exploitation with PowerShell
Automating Post Exploitation with PowerShellAutomating Post Exploitation with PowerShell
Automating Post Exploitation with PowerShell
 
Ansible benelux meetup - Amsterdam 27-5-2015
Ansible benelux meetup - Amsterdam 27-5-2015Ansible benelux meetup - Amsterdam 27-5-2015
Ansible benelux meetup - Amsterdam 27-5-2015
 
10 Tips for Your Journey to the Public Cloud
10 Tips for Your Journey to the Public Cloud10 Tips for Your Journey to the Public Cloud
10 Tips for Your Journey to the Public Cloud
 
Open Audit
Open AuditOpen Audit
Open Audit
 
Getting to Walk with DevOps
Getting to Walk with DevOpsGetting to Walk with DevOps
Getting to Walk with DevOps
 
Performance Tuning Oracle Weblogic Server 12c
Performance Tuning Oracle Weblogic Server 12cPerformance Tuning Oracle Weblogic Server 12c
Performance Tuning Oracle Weblogic Server 12c
 
Graphing for Security
Graphing for SecurityGraphing for Security
Graphing for Security
 
Application Performance Troubleshooting 1x1 - Part 2 - Noch mehr Schweine und...
Application Performance Troubleshooting 1x1 - Part 2 - Noch mehr Schweine und...Application Performance Troubleshooting 1x1 - Part 2 - Noch mehr Schweine und...
Application Performance Troubleshooting 1x1 - Part 2 - Noch mehr Schweine und...
 
network-management Web base.ppt
network-management Web base.pptnetwork-management Web base.ppt
network-management Web base.ppt
 
High Performance Web Sites
High Performance Web SitesHigh Performance Web Sites
High Performance Web Sites
 
Season 4 [Free OpManager training] Part2- Monitoring Server Performance
Season 4 [Free OpManager training] Part2- Monitoring Server PerformanceSeason 4 [Free OpManager training] Part2- Monitoring Server Performance
Season 4 [Free OpManager training] Part2- Monitoring Server Performance
 
Seven steps to better security
Seven steps to better securitySeven steps to better security
Seven steps to better security
 
Salesforce Performance hacks - Client Side
Salesforce Performance hacks - Client SideSalesforce Performance hacks - Client Side
Salesforce Performance hacks - Client Side
 
(APP307) Leverage the Cloud with a Blue/Green Deployment Architecture | AWS r...
(APP307) Leverage the Cloud with a Blue/Green Deployment Architecture | AWS r...(APP307) Leverage the Cloud with a Blue/Green Deployment Architecture | AWS r...
(APP307) Leverage the Cloud with a Blue/Green Deployment Architecture | AWS r...
 
Cognos Performance Tuning Tips & Tricks
Cognos Performance Tuning Tips & TricksCognos Performance Tuning Tips & Tricks
Cognos Performance Tuning Tips & Tricks
 
Realtime traffic analyser
Realtime traffic analyserRealtime traffic analyser
Realtime traffic analyser
 
Opmanager Workshop - Middle East
Opmanager Workshop - Middle EastOpmanager Workshop - Middle East
Opmanager Workshop - Middle East
 
Boris Stoyanov - Troubleshooting the Virtual Router - Run and Get Diagnostics
Boris Stoyanov - Troubleshooting the Virtual Router - Run and Get DiagnosticsBoris Stoyanov - Troubleshooting the Virtual Router - Run and Get Diagnostics
Boris Stoyanov - Troubleshooting the Virtual Router - Run and Get Diagnostics
 
WAF in Scale
WAF in ScaleWAF in Scale
WAF in Scale
 

Mehr von ICF CIRCUIT

CIRCUIT 2015 - Hybrid App Development with AEM Apps
CIRCUIT 2015 - Hybrid App Development with AEM AppsCIRCUIT 2015 - Hybrid App Development with AEM Apps
CIRCUIT 2015 - Hybrid App Development with AEM AppsICF CIRCUIT
 
CIRCUIT 2015 - Akamai: Caching and Beyond
CIRCUIT 2015 - Akamai:  Caching and BeyondCIRCUIT 2015 - Akamai:  Caching and Beyond
CIRCUIT 2015 - Akamai: Caching and BeyondICF CIRCUIT
 
CIRCUIT 2015 - Free Beer and Testing
CIRCUIT 2015 - Free Beer and TestingCIRCUIT 2015 - Free Beer and Testing
CIRCUIT 2015 - Free Beer and TestingICF CIRCUIT
 
CIRCUIT 2015 - UI Customization in AEM 6.1
CIRCUIT 2015 - UI Customization in AEM 6.1CIRCUIT 2015 - UI Customization in AEM 6.1
CIRCUIT 2015 - UI Customization in AEM 6.1ICF CIRCUIT
 
CIRCUIT 2015 - Content API's For AEM Sites
CIRCUIT 2015 - Content API's For AEM SitesCIRCUIT 2015 - Content API's For AEM Sites
CIRCUIT 2015 - Content API's For AEM SitesICF CIRCUIT
 
CIRCUIT 2015 - Responsive Websites & Grid-Based Layouts
CIRCUIT 2015 - Responsive Websites & Grid-Based LayoutsCIRCUIT 2015 - Responsive Websites & Grid-Based Layouts
CIRCUIT 2015 - Responsive Websites & Grid-Based LayoutsICF CIRCUIT
 
CIRCUIT 2015 - Glimpse of perceptual diff
CIRCUIT 2015 - Glimpse of perceptual diffCIRCUIT 2015 - Glimpse of perceptual diff
CIRCUIT 2015 - Glimpse of perceptual diffICF CIRCUIT
 
CIRCUIT 2015 - Orchestrate your story with interactive video and web content
CIRCUIT 2015 -  Orchestrate your story with interactive video and web contentCIRCUIT 2015 -  Orchestrate your story with interactive video and web content
CIRCUIT 2015 - Orchestrate your story with interactive video and web contentICF CIRCUIT
 
How to migrate from any CMS (thru the front-door)
How to migrate from any CMS (thru the front-door)How to migrate from any CMS (thru the front-door)
How to migrate from any CMS (thru the front-door)ICF CIRCUIT
 
Maximize the power of OSGi in AEM
Maximize the power of OSGi in AEM Maximize the power of OSGi in AEM
Maximize the power of OSGi in AEM ICF CIRCUIT
 
CIRCUIT 2015 - 10 Things Apache Sling Can Do
CIRCUIT 2015 - 10 Things Apache Sling Can DoCIRCUIT 2015 - 10 Things Apache Sling Can Do
CIRCUIT 2015 - 10 Things Apache Sling Can DoICF CIRCUIT
 
Circuit 2015 Keynote - Carsten Ziegeler
Circuit 2015 Keynote -  Carsten ZiegelerCircuit 2015 Keynote -  Carsten Ziegeler
Circuit 2015 Keynote - Carsten ZiegelerICF CIRCUIT
 

Mehr von ICF CIRCUIT (12)

CIRCUIT 2015 - Hybrid App Development with AEM Apps
CIRCUIT 2015 - Hybrid App Development with AEM AppsCIRCUIT 2015 - Hybrid App Development with AEM Apps
CIRCUIT 2015 - Hybrid App Development with AEM Apps
 
CIRCUIT 2015 - Akamai: Caching and Beyond
CIRCUIT 2015 - Akamai:  Caching and BeyondCIRCUIT 2015 - Akamai:  Caching and Beyond
CIRCUIT 2015 - Akamai: Caching and Beyond
 
CIRCUIT 2015 - Free Beer and Testing
CIRCUIT 2015 - Free Beer and TestingCIRCUIT 2015 - Free Beer and Testing
CIRCUIT 2015 - Free Beer and Testing
 
CIRCUIT 2015 - UI Customization in AEM 6.1
CIRCUIT 2015 - UI Customization in AEM 6.1CIRCUIT 2015 - UI Customization in AEM 6.1
CIRCUIT 2015 - UI Customization in AEM 6.1
 
CIRCUIT 2015 - Content API's For AEM Sites
CIRCUIT 2015 - Content API's For AEM SitesCIRCUIT 2015 - Content API's For AEM Sites
CIRCUIT 2015 - Content API's For AEM Sites
 
CIRCUIT 2015 - Responsive Websites & Grid-Based Layouts
CIRCUIT 2015 - Responsive Websites & Grid-Based LayoutsCIRCUIT 2015 - Responsive Websites & Grid-Based Layouts
CIRCUIT 2015 - Responsive Websites & Grid-Based Layouts
 
CIRCUIT 2015 - Glimpse of perceptual diff
CIRCUIT 2015 - Glimpse of perceptual diffCIRCUIT 2015 - Glimpse of perceptual diff
CIRCUIT 2015 - Glimpse of perceptual diff
 
CIRCUIT 2015 - Orchestrate your story with interactive video and web content
CIRCUIT 2015 -  Orchestrate your story with interactive video and web contentCIRCUIT 2015 -  Orchestrate your story with interactive video and web content
CIRCUIT 2015 - Orchestrate your story with interactive video and web content
 
How to migrate from any CMS (thru the front-door)
How to migrate from any CMS (thru the front-door)How to migrate from any CMS (thru the front-door)
How to migrate from any CMS (thru the front-door)
 
Maximize the power of OSGi in AEM
Maximize the power of OSGi in AEM Maximize the power of OSGi in AEM
Maximize the power of OSGi in AEM
 
CIRCUIT 2015 - 10 Things Apache Sling Can Do
CIRCUIT 2015 - 10 Things Apache Sling Can DoCIRCUIT 2015 - 10 Things Apache Sling Can Do
CIRCUIT 2015 - 10 Things Apache Sling Can Do
 
Circuit 2015 Keynote - Carsten Ziegeler
Circuit 2015 Keynote -  Carsten ZiegelerCircuit 2015 Keynote -  Carsten Ziegeler
Circuit 2015 Keynote - Carsten Ziegeler
 

Kürzlich hochgeladen

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 

Kürzlich hochgeladen (20)

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 

CIRCUIT 2015 - Monitoring AEM

  • 1. CIRCUIT – An Adobe Developer Event Presented by ICF Interactive Monitoring AEM - Going above and beyond CPU, Disk, and Memory Michael Chan ICFI Interactive
  • 2. Introduction Who Am I •  Michael Chan, Systems Engineer & Architect for ICFI Interactive Managed Services •  Former Java & C developer •  With past experience in –  Unix security –  Network monitoring –  Systems (network, storage, server) integration –  Ecommerce •  Primary responsibilities at ICFI (among others) –  Build out systems infrastructure, including systems automation, logging, and monitoring –  Enable engineers to quickly assess and respond to systems issues
  • 3. Purpose of session Session will cover: •  Introduce systems monitoring concepts •  Provide practical ideas and examples on how to monitor your website and AEM stack •  Use data to make correlations for root-cause analysis Session will not cover: •  Which monitoring software to use •  How to implement x or y feature in your monitoring software •  What alerting strategies you should use
  • 4. Goals of systems monitoring •  Maintain site availability – Can users access the site? •  Identify performance issues – Are users waiting too long? •  Troubleshoot problems – How do I identify root cause? •  Identify long-term trends – Is the application slowing down? – Do we need faster hardware?
  • 5. Monitoring tools out there (not exhaustive) Open Source (free!) •  Nagios •  Icinga •  Zabbix SAAS •  Application-performance focused –  AppDynamics –  New Relic •  Boundary •  Datadog
  • 6. Monitoring software considerations What I have found most important •  Easy to use –  Has a convenient GUI –  Easy to add servers, applications •  Easy to view and interpret data –  Need to be able to view data and quickly make correlations •  Extensible –  Easy to customize, e.g. monitor Publisher listening on port 4506 instead of 4503 –  Support for plugins and especially custom scripts, necessary for application-specific monitoring •  Other considerations –  Can the setup configs be version controlled in Git? –  Is there an API for the monitoring system, to create/modify configs? Tip: everyone’s needs are differerent, use what makes sense for you!
  • 7. Basic monitoring – CPU, network, disk Good questions to ask when monitoring these •  CPU Load Average –  What percentage of CPU is the application utilizing? –  Is there surplus CPU capacity left? •  Network Statistics –  e.g. Bytes in/out, Packets in/out –  How much traffic are our servers receiving? –  Do any network spikes correlate with slower application performance? •  Disk (IOPS, throughput) –  How much is the application utilizing the disk? –  Is the application hitting any Disk I/O thresholds? Tip: benchmark your Network and Disk I/O thresholds to discover your hardware limitations. Note: AEM may be hitting CPU limits even before CPU load is %100. Reason for this is that threads often can be waiting on another thread’s operations to complete, and until that thread completes, the rest are waiting or blocked. Therefore slowness can begin even at %50-%75 CPU utilization
  • 8. Simple web monitoring – must have’s HTTP Code check mc-macbook-2:~ mc$ curl -I http://www.citytechinc.com/us/en.html HTTP/1.1 200 OK Content-based checks mc-macbook-2:~ mc$ curl -s http://www.citytechinc.com/us/en.html | grep 'CITYTECH, Inc. all rights reserved' &copy; 2015 CITYTECH, Inc. all rights reserved Content-based checks with timeout mc-macbook-2:~ mc$ curl --max-time 30 -s http://www.citytechinc.com/us/en.html | grep 'CITYTECH, Inc. all rights reserved' &copy; 2015 CITYTECH, Inc. all rights reserved Response time check mc-macbook-2:~ mc$ time curl -s http://www.citytechinc.com/us/en.html | grep 'CITYTECH, Inc. all rights reserved' >/dev/null 2>&1 real 0m0.195s user 0m0.007s Sys 0m0.006s Tip: install content-based checks on each Publish and Dispatcher instance. That way you can quickly detect which instance has a failure.
  • 9. Simple web monitoring – Apache performance stats Apache, mod_status module •  Provides performance statistics •  Note: path e.g. /server-status should be disabled from public internet root@Client Prod CQ Disp 1a i-a678d2db:~# curl -s http://localhost/ server-status | html2text|more ****** Apache Server Status for localhost ****** Server Version: Apache/2.2.15 (Unix) Communique/4.1.2 mod_ssl/ 2.2.15 OpenSSL/ 1.0.1e-fips Server Built: Jul 18 2014 02:31:29 ==================================================================== Current Time: Wednesday, 29-Jul-2015 01:37:00 GMT Restart Time: Sunday, 26-Jul-2015 03:39:30 GMT Parent Server Generation: 4 Server uptime: 2 days 21 hours 57 minutes 30 seconds Total accesses: 3430869 - Total Traffic: 114.6 GB CPU Usage: u43.79 s19.41 cu0 cs0 - .0251% CPU load 13.6 requests/sec - 477.1 kB/second - 35.0 kB/request 41 requests currently being processed, 21 idle workers
  • 10. Web monitoring – STM / RUM – nice to have Synthetic Transaction Monitoring •  (also known as active monitoring) is website monitoring that is done using a web browser emulation or scripted recordings of web transactions. •  Examples –  Selenium –  Neustar –  Keynote •  Advantages –  Repeatable process •  e.g. can ensure that the process of “login, add product to shopping cart, checkout” works between code releases –  Can be used as a control –  Cheap •  Disadvantages –  Monitors only what you decided to test against –  Not as thorough as RUM
  • 11. Web monitoring – RUM / STM – nice to have Real User Monitoring •  (RUM) is a passive monitoring technology that records all user interaction with a website or client interacting with a server or cloud-based application. •  Examples –  Google Analytics –  New Relic –  Keynote –  Many, many more •  Advantages –  Real-user “testing” data –  Monitoring for issues as they occur –  Identifies browser-related issues •  Disadvantages –  Expensive –  Too much information (information overload)
  • 12. Adobe WEM monitoring – basic checks for Author, Publisher Ports to monitor (are they accessible)? •  Author – 4502 •  Publisher – 4503 Suggested pages to monitor •  Sling login page - /system/sling/cqform/defaultlogin.html –  Should always work! –  Response times almost always the same –  If Sling login page is up, but for example homepage is not, can be indicative a content or code-related issue curl -s http://localhost:4503/system/sling/cqform/defaultlogin.html | grep QUICKSTART_HOMEPAGE <!-- QUICKSTART_HOMEPAGE - (string used for readyness detection, do not remove) --> •  Homepage, important landing pages –  If Publisher hosts multiple farms & host-specific sling mappings are used, you may need to pass host-header: curl -H "Host: www.citytechinc.com" http://localhost:4503/us/en.html –  Above example is another reason why a customizable monitoring solution is needed •  Nagios has an http_check plugin that supports sending host headers with requests
  • 13. Adobe WEM monitoring – error.log, critical errors Files to monitor •  error.log, keywords (AEM 5.5, 5.6, although some may still be applicable to 6.x) –  critical errors •  OutOfMemoryMonitor  CQ  shutting  down   •  StackOverflowError   •  Maximum  threads  reached   •  Java OutOfMemoryErrors, e.g. –  java.lang.OutOfMemoryError:  unable  to  create  new   native  thread   •  too  many  open  files   –  Non-critical errors (error count is useful) •  RecursionTooDeepException   •  Failed  to  mmap  tar  file  /   java.lang.OutOfMemoryError:  Map  failed  
  • 14. Adobe WEM monitoring – error.log, repository related Files to monitor •  error.log, repository-related keywords –  critical errors •  tar  files  read-­‐only   –  Non-critical errors (error count is useful, with alarm set when threshold is exceeded) •  failed  to  retrieve  state  of(.+)node   •  failed  to  retrieve  state  of  intermediary  node   •  Failed  to  read  bundle   •  Repository  error  during  page  import   •  Unable  to  create  version   •  lucene(.+)Unknown(.+)node   •  lucene(.+)query  result  node     Tip: When encoutering important repository errors, make sure to update your monitoring software to detect it!  
  • 15. Adobe WEM monitoring – error.log
  • 16. Adobe WEM monitoring – access.log Files to monitor •  access.log –  HTTP code frequency, e.g. –  200 Success –  302 Redirect –  403 Forbidden –  404 Not Found –  500 Internal Server Error # tail access.log 127.0.0.1 - anonymous 04/Aug/2015:20:30:54 +0000 "GET /us/en.html HTTP/1.1" 200 22572 "-" "-" 127.0.0.1 - anonymous 04/Aug/2015:20:30:55 +0000 "GET /content/ citytech/global/en.html HTTP/1.1" 200 22598 "-" "curl agent, CTMSP monitoring” Tip: throw these stats into graph in order to correlate trends or possible page issues or anomalies (RUM, ELK does this excellently)
  • 17. Adobe WEM monitoring – access.log, cont.
  • 18. Adobe WEM monitoring – access.log, cont. Files to monitor •  access.log – Cache-busting requests •  Contains query strings, e.g. –  http://www.citytechinc.com/us/en.html?hi=test •  Extensionless, e.g. –  GET /athletes/athletes.34360.html/career – Extensions •  .js, .css •  Images - .bmp, .jpg, .jpeg, .png Tip: calculate the percentage of cache-busting requests over time as a baseline to compare against.
  • 19. Adobe WEM monitoring – access.log, cont.
  • 20. Adobe WEM monitoring – request.log Files to monitor •  request.log –  Looks like root@Citytech Prod CQ Pub 1c i-cbdd5ba9:/var/log/cq5# tail request.log 26/Jul/2015:01:10:23 +0000 [2774404] -> GET /content/citytech/global/ en.html HTTP/1.1 26/Jul/2015:01:10:23 +0000 [2774404] <- 200 text/html 229ms 26/Jul/2015:01:10:25 +0000 [2774405] -> GET /system/sling/cqform/ defaultlogin.html HTTP/1.1 26/Jul/2015:01:10:25 +0000 [2774405] <- 200 text/html 3ms 26/Jul/2015:01:10:28 +0000 [2774407] -> GET /us/en.html HTTP/1.1 26/Jul/2015:01:10:28 +0000 [2774407] <- 200 text/html 222ms –  Can obtain list of response times with rlog.jar java -jar /opt/adobe-cq5.6.1/publish/crx-quickstart/opt/ helpers/rlog.jar -n 50 -xdev /var/log/cq5/request.log Tip: create a top 100 list of slowest page requests over 5 minute intervals in order to spot poorly performing pages
  • 21. Adobe WEM monitoring – request.log 07/24/2015 01:50:27 PM ------------- Fri Jul 24 18:50:26 GMT 2015 -------------- *Info * Parsed 1135 requests. *Info * Time for parsing: 72ms *Info * Time for sorting: 3ms *Info * Total Memory: 110mb *Info * Free Memory: 109mb *Info * Used Memory: 1mb ------------------------------------------------------ 7165ms 24/Jul/2015:18:48:16 +0000 200 GET /en/home/products/show_products.html?tag=bikes-us%3Abrand%2Ftrek&tag=bikes-us%3Aproduct%2Fulocks %2Fshimano text/html 7020ms 24/Jul/2015:18:46:54 +0000 200 GET /en/home/products/show_products.html?tag=trek-americas%3Abrand%2Ftrek&tag=trek-americas%3Aproduct %2Fulocks%2FnonLocking text/html 6643ms 24/Jul/2015:18:46:54 +0000 200 GET /en/home/style/show_products.html?tag=bikes-us%3Abrand%2Ftrek&tag=bikes-us%3AstyleCollection%2Fcamelot text/html 6001ms 24/Jul/2015:18:46:54 +0000 200 GET /en/home/style/show_products.html?tag=bikes-us%3Abrand%2Ftrek&tag=bikes-us%3AstyleCollection %2Fbrookshire text/html 4979ms 24/Jul/2015:18:46:53 +0000 200 GET /en/home/products/show_products.html?tag=trek-americas%3Abrand%2Ftrek&tag=trek-americas%3Aproduct %2Fhandlesets%2FtwoSidesKeyed text/html 4074ms 24/Jul/2015:18:48:16 +0000 200 GET /en/home/products/show_products.html?tag=bikes-us%3Abrand%2Ftrek&tag=bikes-us%3Aproduct%2Fknobs %2FnonLocking text/html 3357ms 24/Jul/2015:18:46:39 +0000 200 GET /en/home/products/show_products.html?tag=bikes-us%3Abrand%2Ftrek&tag=bikes-us%3Aproduct %2Fshifters&tag=bikes-us%3Aproduct%2Fshifters%2FoneSideKeyed text/html 1031ms 24/Jul/2015:18:46:02 +0000 200 GET /en/home/products/show_products.html?tag=bikes-us:brand/trek&tag=bikes-us:product/shifters&tag=bikes- us:product/shifters/oneSideKeyed text/html 925ms 24/Jul/2015:18:46:44 +0000 200 GET /content/bikes-us/en/home/search.html?searchQuery=user+and+alarm+programming text/html 818ms 24/Jul/2015:18:46:36 +0000 200 GET /en/home/style/design-guides/style-evolution-2014.html text/html 528ms 24/Jul/2015:18:49:38 +0000 200 GET /en/home/products/F51ACCFFF.html?bck=@@bikes-us:brand/trek@@bikes-us:product/ulocks/keyedLock@@bikes- us:product/ulocks text/html 456ms 24/Jul/2015:18:47:00 +0000 200 GET /content/dam/bikes-us/product-images/F10%20%28F75%29/F10ACC622ADD.jpg/_jcr_content/renditions/ cq5dam.thumbnail.319.319.png image/png 361ms 24/Jul/2015:18:49:38 +0000 200 GET /content/bikes-us/en/home/search.html?searchQuery=AL+SERIES text/html 306ms 24/Jul/2015:18:47:01 +0000 200 GET /content/dam/bikes-us/product-images/F10%20%28F75%29/F10BRW625GRW.jpg/_jcr_content/renditions/ cq5dam.thumbnail.319.319.png image/png 292ms 24/Jul/2015:18:49:42 +0000 200 GET /en/home/faq.html?id=42 text/html 272ms 24/Jul/2015:18:47:01 +0000 200 GET /content/dam/bikes-us/product-images/BE469NX/BE469NXCEN626.jpg/_jcr_content/renditions/cq5dam.thumbnail. 319.319.png image/png 244ms 24/Jul/2015:18:47:27 +0000 200 GET /content/bikes-us/en/home.html text/html 236ms 24/Jul/2015:18:47:02 +0000 200 GET /content/dam/bikes-us/product-images/F10%20%28F75%29/F10PLY716GRW.jpg/_jcr_content/renditions/ cq5dam.thumbnail.319.319.png image/png
  • 22. Adobe WEM monitoring – thread count WEM request thread count •  Why is this important? –  default max request thread is set to 200 –  If hitting the maximum, can indicate spike in traffic or application slowness •  How do I view? System console: http://i-cbdd5ba9.citytech-prod.ctmsp.com:4503/system/console/status-Threads Thread #768010/10.87.66.63 [1437866326422] <closed> [priority=5, alive=true, daemon=true, interrupted=false, loader=cqse-httpservice [22]] Thread #2228/127.0.0.1 [1437868798545] GET /us/en.html HTTP/1.1 [priority=5, alive=true, daemon=true, interrupted=false, loader=org.apache.sling.commons.classloader.impl.ClassLoaderFacade@2d58350a] Thread #2196/127.0.0.1 [1437868798613] GET /us/en.html HTTP/1.1 [priority=5, alive=true, daemon=true, interrupted=false, loader=org.apache.sling.commons.classloader.impl.ClassLoaderFacade@2d58350a] Thread #768030/127.0.0.1 [1437868798881] GET /us/en.html HTTP/1.1 [priority=5, alive=true, daemon=true, interrupted=false, loader=org.apache.sling.commons.classloader.impl.ClassLoaderFacade@2d58350a] Thread #937774/127.0.0.1 [1437868798896] GET /us/en.html HTTP/1.1 [priority=5, alive=true, daemon=true, interrupted=false, loader=org.apache.sling.commons.classloader.impl.ClassLoaderFacade@2d58350a] Thread #767978/127.0.0.1 [1437868798909] GET /us/en.html HTTP/1.1 [priority=5, alive=true, daemon=true, interrupted=false, loader=org.apache.sling.commons.classloader.impl.ClassLoaderFacade@2d58350a] Thread #767927/127.0.0.1 [1437868802472] <closed> [priority=5, alive=true, daemon=true, interrupted=false, loader=cqse-httpservice [22]] Thread #767940/64.6.160.57 [1437868802408] GET /system/console/status-Threads HTTP/1.1 [priority=5, alive=true, daemon=true, interrupted=false, loader=cqse-httpservice [22]] Thread #767982/64.6.160.57 [1437868802410] <parse> [priority=5, alive=true, daemon=true, interrupted=false, loader=cqse-httpservice [22]] Thread #87/ActivityServiceImpl [priority=5, alive=true, daemon=true, interrupted=false, loader=java.net.URLClassLoader@42472d48] Thread #109/Adobe Granite Offloading job cloner queue processor [priority=5, alive=true, daemon=true, interrupted=false, loader=java.net.URLClassLoader@42472d48] •  Obtaining request thread count (easy curl command) curl -s -u 'admin:_insert_password_here' http://localhost:4503/system/console/status- Threads|grep -E 'GET|POST’|wc –l
  • 23. Adobe WEM monitoring – JCR queries Slow Queries, Popular Queries •  AEM built-in •  Displays top 15 slowest JCR queries •  Example: /usr/bin/java -jar /usr/local/bin/cmdline- jmxclient-0.10.3.jar - localhost:12345 com.adobe.granite:type=QueryStat SlowQueries
  • 24. Adobe WEM monitoring – JCR queries ------------- 07/26/2015 01:44:33 +0000 org.archive.jmx.Client SlowQueries: -------------- creationTime: Sun Jul 26 01:40:06 GMT 2015 duration: 2788ms language: xpath occurrenceCount: 1 position: 1 statement: /jcr:root/content/trek-us/en/home/products//element(*, cq:Page)[jcr:contains(., '*') and (jcr:content/ @cq:template = '/apps/trek-americas/templates/productDetail-page') and ((jcr:content/@cq:tags = 'trek- americas:product/shifters' and jcr:content/@cq:tags = 'trek-americas:product/shifters/nonLocking' and jcr:content/ @cq:tags = 'trek-americas:brand/trek'))] creationTime: Sun Jul 26 01:36:34 GMT 2015 duration: 1766ms language: xpath occurrenceCount: 8729 position: 2 statement: /jcr:root/var/eventing/jobs//element(*, slingevent:Job)[jcr:contains(., '/com/day/cq/replication/job') and not(@slingevent:finished)] creationTime: Sun Jul 26 01:40:33 GMT 2015 duration: 809ms language: xpath occurrenceCount: 1 position: 3 statement: /jcr:root/content/trek-us/en/home/products//element(*, cq:Page)[jcr:contains(., '*') and (jcr:content/ @cq:template = '/apps/trek-americas/templates/productDetail-page') and ((jcr:content/@cq:tags = 'trek- americas:product/shifters' and jcr:content/@cq:tags = 'trek-americas:product/shifters/nonLocking' and jcr:content/ @cq:tags = 'trek-americas:brand/trek'))] creationTime: Sun Jul 26 01:41:15 GMT 2015 duration: 790ms language: xpath occurrenceCount: 1 position: 4 statement: /jcr:root/content/trek-us/en/home/products//element(*, cq:Page)[jcr:contains(., '*') and (jcr:content/ @cq:template = '/apps/trek-americas/templates/productDetail-page') and ((jcr:content/@cq:tags = 'trek-americas:brand/ trek' and jcr:content/@cq:tags = 'trek-americas:product/ulocks' and jcr:content/@cq:tags = 'trek-americas:product/ ulocks/titanium'))] creationTime: Sun Jul 26 01:40:05 GMT 2015 duration: 782ms language: xpath occurrenceCount: 1 position: 5 statement: /jcr:root/content/trek-us/en/home/products//element(*, cq:Page)[jcr:contains(., '*') and (jcr:content/ @cq:template = '/apps/trek-americas/templates/productDetail-page') and ((jcr:content/@cq:tags = 'trek- americas:product/levers' and jcr:content/@cq:tags = 'trek-americas:electric/zwave' and jcr:content/@cq:tags = 'trek- americas:product/ulocks/titanium'))] order by jcr:content/content-par/productdetail/@releasedate descending Tip: The slow query statistic by default shows all queries since AEM startup. However this counter can be reset, if you want to have for example 10-minute “summaries” of the slowest queries.
  • 25. Adobe WEM monitoring – misc. Other possible things to monitor •  Running workflows •  Bundle status - installed, active •  Replication queues - total, blocked data for all of the above is possible via curl!
  • 26. JVM monitoring – heap usage Heap usage •  Useful for viewing AEM memory usage and GC issues •  Can be obtained via JMX –  Example using free cmdline-jmxclient.jar tool: # java -jar /usr/local/bin/cmdline-jmxclient.jar - i-d4bb64dd.ct-prod.ctmsp.com:12345 'java.lang:name=PS Old Gen,type=MemoryPool' Usage 07/26/2015 20:12:20 +0000 org.archive.jmx.Client Usage: committed: 4462215168 init: 894828544 max: 14316601344 used: 4158743792 •  Also viewable via jmap command # jmap -heap 31470 Attaching to process ID 31470, please wait... Debugger attached successfully. Server compiler detected. JVM version is 20.5-b03 using thread-local object allocation. Parallel GC with 1 thread(s) - additional output trimmed -
  • 27. JVM monitoring – heap usage
  • 28. JVM monitoring – heap usage issues
  • 29. JVM Monitoring – GC pause times Why monitor JVM pause times? •  These are “stop-the-world” events where the application is unreponsive due to JVM garbage collection •  Sometimes JVM garbage collection is not successful, and thus constant GCs occur since memory cannot be freed – this incurs serious CPU usage •  Should be monitored since it can be a performance hit How to monitor? •  Pause times can be added to stdout via JVM options -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps 2015-07-27T18:50:30.212+0000: [Full GC [PSYoungGen: 98121K->0K(6107264K)] [ParOldGen: 6144935K->1561525K(6291456K)] 6243056K->1561525K(12398720K) [PSPermGen: 193509K- >193465K(193600K)], 5.7558230 secs] [Times: user=22.98 sys=0.00, real=5.75 secs] 2015-07-27T18:50:42.432+0000: [GC [PSYoungGen: 5916288K->81734K(5998080K)] 7477813K- >1643259K(12289536K), 0.1018320 secs] [Times: user=0.52 sys=0.00, real=0.10 secs] •  Pause times also can be added via: -XX:+PrintGCApplicationStoppedTime Total time for which application threads were stopped: 0.0001780 seconds Total time for which application threads were stopped: 0.0001920 seconds Tip: Even if you don’t have time to enable monitoring via JMX, at least print GC output to a log file for later analysis when AEM is slowing down!
  • 30. JVM Monitoring – GC pause times
  • 31. Summary •  Monitor all homepage & landing pages, for all individual Publishers and Dispatchers •  Use AEM logs and tools to provide info on AEM status and performance – access/ error/request logs, rlog.jar, thread status, slow queries page and customize your monitoring to record this data •  Use JMX and verbose GC logging to record JVM memory heap usage, and GC pause times
  • 32. References References •  http://smartbear.com/articles/what-is-real-user- monitoring/ •  https://en.wikipedia.org/wiki/ Synthetic_monitoring •  https://docs.adobe.com/docs/en/cq/5-6-1/ deploying/performance.html Contact Info: Michael Chan michael.chan@icfi.com