8/14/2019 EMT: Better Performance Monitoring
1/22
EMT
Eric [email protected]
8/14/2019 EMT: Better Performance Monitoring
2/22
Functional Monitoring Functional
Can I access the service? Nagios Zabbix Perl script that does a cURL and sends an email
Typically centralized Active and passive checks
5 minute interval Tips
Check something meaningful Always have a plan for failure
8/14/2019 EMT: Better Performance Monitoring
3/22
Performance Monitoring Performance
Response time, response time, response time! Everything else exists to figure out why response time is
bad
Resource utilization Trending Troubleshooting
Efficiency Usage per request Hardware comparisons
Capacity
8/14/2019 EMT: Better Performance Monitoring
4/22
Story Time The consulting phone call
Something bad happened last night HOLY $#@&! THE WORLD IS ON FIRE
The system is down or super slow One server is down or super slow
A story of swapping Around 5:00 Exactly 5:07
8/14/2019 EMT: Better Performance Monitoring
5/22
Existing Solutions Graphs, lots of graphs.
rrdtool Command line tools with no stored history
iostat, vmstat, top, innotop Status pages
Apache mod_status Tomcat JMX status PHP APC status
8/14/2019 EMT: Better Performance Monitoring
6/22
Graphs Pros
Easy to see large changes Easy to see trends over time
Cons Slow to access Difficult to build ad hoc graphs Difficult to get accurate numbers
8/14/2019 EMT: Better Performance Monitoring
7/22
Graph Example
8/14/2019 EMT: Better Performance Monitoring
8/22
EMT Collect data from existing scripts and status pages Store data locally
sqlite or csv file Send data to be archived Query data using a command line tool Access local storage directly
8/14/2019 EMT: Better Performance Monitoring
9/22
Architecture
8/14/2019 EMT: Better Performance Monitoring
10/22
EMT Data Model Instances
Runs copies of plugins per named instance Apache ebergen.net Apache jcole.us
Fields Main object Defined in configuration Example
MySQL queries Apache requests
Sub Fields Created on the fly by plugin
Bytes sent per network adapter
8/14/2019 EMT: Better Performance Monitoring
11/22
Accessing Data emt_view
CLI command that can print formatted output Supports named and anonymous views
Views are currently lists of instance:field.sub_field Future views will be able to do aggregation and expressions
Supports a default view emt.txt file
timestamp=2009-04-2013:46:01,duration=60,main:apache_total_accesses=31,send_bytes.eth0=226613
sqlite Table with the same text as csv and a timestamp
index
Normalized tables
8/14/2019 EMT: Better Performance Monitoring
12/22
emt_view
8/14/2019 EMT: Better Performance Monitoring
13/22
emt_view s mysql
8/14/2019 EMT: Better Performance Monitoring
14/22
emt_view s apache
8/14/2019 EMT: Better Performance Monitoring
15/22
emt_view f too long for a
heading
8/14/2019 EMT: Better Performance Monitoring
16/22
End of Story
8/14/2019 EMT: Better Performance Monitoring
17/22
emt_nsca
8/14/2019 EMT: Better Performance Monitoring
18/22
Plugins Commands
Usually execute a command Timestamp just calls a php function Can do as much work as they need to
Poll show status every 5 seconds for running queries Fields
Metrics parsed from the output of commands Parsing should take care of sub_fields Instance will be tagged in the field by emt_gather
8/14/2019 EMT: Better Performance Monitoring
19/22
Configuration my.cnf style configuration
/etc/emt.cnf Default view Running instances
Include directory/etc/emt.d/*cnf Used to enable plugins Pass configuration to emt_* commands and plugins
8/14/2019 EMT: Better Performance Monitoring
20/22
Plans emt_view awk mode Views that can process data Plugins
Better plugin interface emt_gather internal plugins Support methods for common parsing tasks
Different installation methods
8/14/2019 EMT: Better Performance Monitoring
21/22
Links http://code.google.com/p/emt/ http://groups.google.com/group/emt-dev http://provenscaling.com/software/emt/ http://ebergen.net
8/14/2019 EMT: Better Performance Monitoring
22/22
Any questions?
Discussion!
Top Related