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.