The document discusses Alfresco Support Tools, which provide administrative tools for monitoring and troubleshooting Alfresco One. It begins with an overview of how Alfresco One administration can be challenging without external tools. It then describes the tools included in Alfresco Support Tools, such as live graphs of system performance, tracking of active sessions, identifying hot threads, taking thread dumps, and configuring log4j settings. The document acknowledges contributions to the project and provides instructions for downloading and installing the Alfresco Support Tools.
4. ● Overview
● Alfresco One not easy to maintain
● One-Man-Show issue
● Large Enterprises problem to investigate issues quickly
● Comparison both worlds
● Dependencies
● JMX required
● How it looks
● Browser
● Features
● Live Graphs
● Active Sessions
● Hot Threads, Thread Dumper and Thread Sampler
● Log4J Settings and Extra
● Acknowledgments
● Source code on GitHub
Agenda
5. Overview
• Alfresco One is not an easily maintained application. It requires
external tools to diagnose, monitor and analyse problems or fine
tune configuration specific to the user case. For example, jstack,
jVisualVM , Yourkit, etc.
AlfrescoOne
6. Overview
• In mid-size companies the system administration tasks are run by a
one-man band
One-Man-Show
7. Overview
• In larger enterprises problem investigation or configuration of a system
feature (e.g. LDAP sync) involves several people from different teams:
Alfresco admin, sysAdmin, DBAdmin, Developer, network admin,
DevOps, project Manager … this can comprise 4 or 5 people ...
LargeEnterprises
8. Overview
One-man band:
• Knows a little about everything
• Alfresco is not his sole
responsibility
• Not a specialist or has access to
specialist tools.
• Alfresco support may need to
train the admin how to use a
specialist tool
Comparison
DevOps Team:
• Not all available when required
• Alfresco is not the only
responsibility
• A simple task such as putting a
class in DEBUG may require an
internal change process
• Internal security policies may
inhibit diagnostic steps, such as
accessing the DB or LDAP-AD
9. Dependencies
• Traditionally control of a JVM is made through the JMX (Java
Management Extension) which gives access to the Management
Beans (MBeans) and the monitoring parameters of the JVM.
• Note: JMX is only available in the Enterprise Edition of Alfresco
• Starting with version Alfresco 4.2.0 the JMX objects are exposed
through the JavaScript API.
JMXrequired
10. Dependencies
• Support Tools depends on the Admin Console provided from version 4.2 Enterprise onwards
• Sample URL: http://127.0.0.1:8080/alfresco/s/enterprise/admin/
Howitlooks
11. Dependencies
● This is the library used: http://smoothiecharts.org/
Browser
Internet
Explorer
Firefox
Safari
(Desktop)
Chrome
Opera
(Desktop)
Safari
(Mobile)
Opera
(Mobile)
Android
Browser
6.0 - 8.0 2.0 - 6.0 3.1 - 3.2 4.0 - 13.0 9.0 - 11.0 3.2 10.0 2.0
9.0 7.0 4.0 14.0 11.1 4.0 11.0 2.1
… … … … … … … …
11.0 47.0 9.1.1 51.0 30 6.0 16 4.4
● Live graphs use the CANVAS browser object which is unavailable on some old
browsers:
12. Features
LiveGraphs
System Performance
• Live graphs of the Memory
and CPU usage
• The graph uses a recursive
call to refresh data every 2
seconds
• Lightweight webscript that
will execute a JMX bean
operation (minimal impact)
• Timescale is configurable
by the user
13. Features
ActiveSessions
Checks your DB pool usage
and allows you to check
active usernames.
This actually traces sys activity
on DB side and the current
list of logged users
• You can click on one of
the usernames to see
more details
• You can invalidate the
session ticket of one user
to force a logoff
14. Features
HotThreads
• Based on the famous
HotThread tool written
in Java
• The script calculates the
CPU during 5 seconds
and displays the stack
trace of the 5 busiest
threads.
• You can generate
reports, save them and
send them to support
15. Features
ThreadDumper
• To troubleshoot
performance problems and
deadlocks
• You can generate as many
as you need and navigate
through them to compare.
Save all and study later
(this may not work on IE8
due the functions used to
save, copy and paste then
manually).
• The output is formatted to
resemble a Jstack
16. Features
ThreadSampler
• Allows you to see what each
thread on the system is
doing, every 5 seconds
• Threads are coloured
depending on their status
• Clicking on one of them
displays the stacktrace.
• Thread dumps can be saved
in JSON format to send to a
support ticket or loaded later
using the same page to
analyse them.
17. Features
Log4JSettings
• A live class can be set
easily to debug, tailed
in system log remotely
with a nice UI and with
only 2 clicks.
18. Features
Extra
Apart from that there are 4 little tools that could be helpful on some cases
• JMX Settings on the DB
– To find which beans have values overridden from the DB and revert them to the values on the properties
files, use with care
• Scheduled Jobs
– Lists and interprets the CRON jobs defined internally in Alfresco. Also shows the last execution time.
• Test Transformation
– Transformation settings and test transformation
• Thread Profiler
– Provides a live summary of each thread’s memory and CPU usage
19. Acknowledgments
SpecialThanks
• Mike Farman for his support on this project and parts of the code.
• Marco Mancuso for his help on the development and adapting it to Maven
standards.
• Rich McKnight for his code to access the persisted MBeans on the DB.
• Jamie Allison for his code review, polish and improvements.
• Will Abson for his useful advice.
• The Smoothie Charts creators: http:smoothiecharts.org/ the library from which
was quite useful and fun to use
21. Source code on Github
GitHub
1. Download v1.10 at: https://github.com/Alfresco/alfresco-support-tools
2. Stop Alfresco
3. Drop the Alfresco Support Tools AMP to folder ../<AlfrescoInstallHome>/amps
4. Use ../<AlfrescoInstallHome>/bin/apply_amps.sh/bat to inject the Alfresco Support
Tools in the alfresco.war
5. Empty “../tomcat/tmp”, “../tomcat/work” and remove “../tomcat/webapps/alfresco”
6. Restart Alfresco, log in to the Admin console and you are ready to go