Building a Business Metrics Database
Download
Report
Transcript Building a Business Metrics Database
Building a Business Metrics
Database
Adding value to performance
management and capacity
planning
Scott Chapman
American Electric Power
[email protected]
The problem
What are we measuring?
What are we reporting?
Lots and lots of technical details
Some subset of that
Who understands it?
Maybe nobody outside of ourselves
Do our readers understand our technical terms?
Do they understand how we’re doing the calculations?
More importantly do they know what business functions those
technical things support?
The technical details are probably not overly important
to anybody other than a few technicians
What really matters?
How much business-useful work are we doing?
What are we doing that isn’t useful?
Are we meeting our SLAs and do the SLAs match the
business requirements?
What is stopping us from doing more?
When will we need to invest in more technology?
Does everybody understand the business value and
importance of our IT systems?
Ensure that our IT systems provide business value!
We need a business-centric view!
We need business measurements to tie to the
technical measures
Hard to answer questions from the business
perspective if we don’t have business measurements!
Business metrics not a new idea
The business managers have metrics
E.G. Balanced scorecards for business reporting
Used for capacity planning
Natural Forecasting Units
CPDB… PDB… BMDB?
Not only do we need business metrics, we need
a historical view of them
We create Capacity Planning Databases and
Performance Databases, why not a Business
Metrics Database?
Could be part of CPDB or could include capacity
planning metrics in the BMDB
Either way, a historical database of business
metrics should be part of our core performance
and capacity management processes
Bring it all together
Three dimensions of applications:
Performance
Capacity Utilization
Business work performed
All together on one screen please!
Why build a BMDB?
Capacity planning
Performance reporting
Business workloads impact on performance?
Systems performance impacting business?
Learn about your applications
Technical projections based on business measures
What runs where?
What is the value to the business?
Publish the data—spread the knowledge!
BMDB Design
Use vendor-provided solution
Build your own
MICS? Other options?
SAS or other DBMS
This really isn’t too hard!
But you would like to not change the
database every time we add a metric
One possible design
Key features of this design
Business metrics metadata contained
within the database
Relatively compact
Provisions for formatting the metrics
SAS formats applied to metrics
Stoplight reporting via the severity table
How to start populating the BMDB
Capture technical measures for all applications
Determine the first application
CPU time, RT, SLA attainment, etc.
One you are familiar with
Or one with an enthusiastic supporter
Find the significant technical drivers
Determine the business functions for those
Capture metrics for those functions
For example…
Looking at work management
Notice increase in transaction volume every two
weeks—why?
Time entry!
Find business metric to represent the volume of
this workload: Time sheets submitted
Select count(*) from time_sheets where submit_date
= “yesterday”
Run the query everyday & store the results!
Make your life as easy as possible!
You don’t need to understand everything about the business!
System utilization drivers
“Problem children”
Things that people care about
Easy for us to understand the technical measures, so start there
Easy for somebody else to tell us what those represent
Most activity metrics can be readily retrieved from the application
database
May want to parse some existing reports for complicated data—
like accounting totals
Things to consider capturing
Items representing business work, i.e.
business transaction volumes
Items representing business data, i.e.
business entities stored by the application
Application-centric performance and SLAs
Application capacity utilization
Whatever is important to the business
managers!
Capture hints
You will need a mapping of transactions to
applications
WLM Report classes can tie work to applications
Ongoing maintenance required
May already be done for chargeback
Very useful for DDF, maybe WAS & CICS
Account codes limited value for batch?
Look at the dataset names the jobs are using
Tie SMF type 42s and 30s together
Somewhat expensive, but great accuracy
Reporting
Make
Make
Make
Make
Make
it
it
it
it
it
look good
useful
easy to use
engaging
accessible!
A browser-based
solution would be
ideal, but creating a
bunch of static pages
everyday is not
AJAX to the rescue!?!
Asynchronous JavaScript with XML
Read all about it on the web, but…
Key JS functionality for us:
Can change any HTML element on that page
Add/delete elements or compeletely re-write the HTML
aka “dynamic html”
Extract your BMDB data to XML files
Write some JS code in an HTML page to read/parse that XML file &
load to array
JS code then loads frames with more HTML files that are templates
JS uses array to look up values for the templates
Once the core code is written, adding new metrics/reporting merely
means adding new HTML templates
HTML “templates”
JS Code loads HTML templates HTML Template file
based on the application
<tr>
<td>Work Orders Completed</td>
selected
<td align="right">
<span id="bmCORP" datafld="WOCMPTD">
Then scans the templates for
1,240
<span> tags
</span>
Looks up (or calculates) values </td></tr>
from the array and updates the
span text with the appropriate
value
Calculated metric sample
Adding new metrics or reports <tr>
<td>CPU per CICS transaction</td>
<td align="right">
simply means creating a new
<span id="evPROD" datafld="@!CITCPU@/@!CITCNT@"
template—which is just
title="">
</span></td>
standard HTML with specially
</tr>
crafted <span> tags
JavaScript Issues
New language to learn (but easy)
Parsing XML/HTML with JS can be slow
Plenty of good books available
Consider “browser book” from visibone.com for a
quick-reference
Consider limiting data shown initially
Debugging can be difficult
Remember the good old days?
Help coming soon, if not already – go look for it
What I hope you take away
from this…
Conclusion #1
Business metrics are invaluable for
improving capacity planning,
performance management, and
application awareness
Use as natural forecasting units
Use for application analysis
Use to improve reporting & understanding
Conclusion #2
You need a historical collection of business
metrics – a BMDB
If you don’t retain the data you can’t analyze
it!
Use the BMDB for consolidated reporting
A BMDB should be a core part of your
performance/capacity management process
Conclusion #3
Building the BMDB can be done cheaply
and easily
You already have the tools
DB design simple
DB relatively compact
Populating the database can usually be done
from existing performance data or by simple
queries from the application database
Conclusion #4
Once you have the data you should
publish it!
People will get excited about seeing the
business metrics, performance characteristics,
and capacity utilization for an application on
the same page
Conclusion #5
AJAX provides a potentially useful method
for presenting this sort of data in a
dynamic fashion
Consider building yourself a framework for
presenting application performance data using
this concept
Your mission,
should you decide to accept it,
is to go build a BMDB for your organization.
You will improve your
capacity planning,
performance management,
and business awareness!
This is not an impossible mission!
Having not self-destructed,
I will now answer any questions.