Documentos de Académico
Documentos de Profesional
Documentos de Cultura
for
Chaerea
(regarding dynamic fault detection)
Version 1.2
1 May, 2012
Prepared by:
Joe Brightbill
John Greco
Ethan Mullins
and
John Troy
Revision History:
Name
Date
Reason
Version
Joe Brightbill
05/01/12
1.2
Joe Brightbill
04/15/12
1.1
Joe Brightbill
John Greco
John Tory
02/07/12
Construction proceeding
completion of SRS.
1.0
Table of Contents
1. Introduction......................................................................................................................................5
1.1 Purpose.................................................................................................................................5
1.2 Scope....................................................................................................................................5
1.3 Definitions............................................................................................................................5
2. Testing Approach..............................................................................................................................7
2.1 Testing Objectives................................................................................................................7
2.2 Testing Structure..................................................................................................................7
3. Assumptions and Exclusions............................................................................................................8
3.1 Assumptions.........................................................................................................................8
3.2 Exclusions............................................................................................................................8
4. Functional Test Plan.........................................................................................................................9
4.1 Hardware Sensor Level........................................................................................................9
4.1.1 CPU Temperature Sensor (temp.sh).............................................................................9
4.1.2 Hard Drive Temperature Sensor (smarttemp.sh)..........................................................9
4.1.3 Transfers per Second Sensor (iostat-tps).......................................................................9
4.1.4 Reads per Second Sensor (iostat-reads)........................................................................9
4.1.5 Writes per Second Sensor (iostat-writes)......................................................................9
4.1.6 Bytes Read Sensor (iostat-read)..................................................................................10
4.1.7 Bytes Written Sensor (iostat-write).............................................................................10
4.2 OS Sensor Level.................................................................................................................10
4.2.1 Process Sensor (vmstat-procs*).................................................................................10
4.2.2 Memory Sensor (vmstat-mem*).................................................................................10
4.2.3 Swap Memory Sensor (vmstat_swap*)......................................................................10
4.2.5 Block Sensor (vmstat-block*)....................................................................................10
4.2.6 CPU Sensor (vmstat-spu*)..........................................................................................10
4.2.6 Load Average Sensor (load_average.sh)....................................................................11
4.2.7 Eth0 In Sensor (ifstat-eth0_in)...................................................................................11
4.2.8 Eth0 Out Sensor (ifstat-eth0_out)...............................................................................11
4.3 VM Sensor Level...............................................................................................................11
4.3.1 Br0 In Sensor (ifstat-br0_in)......................................................................................11
4.3.2 Br0 Out Sensor (ifstat-br0_out)..................................................................................11
4.4 Application Sensor Level...................................................................................................11
4.4.1 Survivor Space 0 Sensor (jstat-S0*)...........................................................................11
4.4.2 Survivor Space 1 Sensor (jstat-S1*)...........................................................................12
4.4.3 Eden Space Sensor (jstat-E*)......................................................................................12
4.4.4 Old Space Sensor (jstat-O*)........................................................................................12
4.4.5 Permanent Space Sensor (jstat-P*).............................................................................12
4.4.6 Young Generation GC Sensor (jstat-YGC).................................................................12
4.4.7 Full GC Sensor (jstat-FGC*).......................................................................................12
4.4.8 Garbage Collection Time Sensor (jstat-GCT).............................................................12
4.5 Dispatcher Level................................................................................................................13
4.5.1 Dispatcher (dispatcher.c)............................................................................................13
4.5.2 Sensor (sensor.c)..........................................................................................................13
4.5.3 Sensor Configuration (sensors.json)..........................................................................13
4.6 Collector Level...................................................................................................................13
4.6.1 Moderated Individually with Graphite.......................................................................13
1. Introduction
1.1
Purpose
This document will provide testing specifications for the Chaerea dynamic fault
detection system. This system will diagnose faults in multi-level systems by reading in sensor
values at four different system levels (hardware, operating system, vm, application) and,
using these readings, create a hyperellipse that will encompass the detected values. This
enclosure will then be used in future instances to dynamically determine whether or not sensor
readings at a given time are indicative of some sort of system fault (based on their location
external or internal to the hyperellipse). For further details in regards the testing, requirements,
see the Software Requirements Specifications document for Chaerea.
1.2
Scope
This document outlines the acceptance test plan for the dynamic fault detection system
using computational geometry. There are not really any end users for this project so the intended
audience is just that which is comprised of the designers, testers and anyone else with whom
they may be working intimately.
1.3
Definitions
Block Device - A storage device that supports reading and (optionally) writing data in
fixed-size blocks, sectors, or clusters.
Computational Geometry - The study of algorithms to solve certain problems concerning
sets of points.
Eden Space - The pool from which memory is initially allocated for most objects.
Ellipse - An enclosed one-sided figure expressed by the equation:
(x^2/a^2) + (y^2/b^2) = 1
Graphite - an open source Scalable Realtime Graphing application in Python that can be
used to transfer data.
Hyperellipse - An n-dimensional generalization of an ellipse.
Hyperrectangle - An n-dimensional generalization on a rectangle.
Ifstat - A Unix utility that reports network interface activity.
Json - A lightweight data-interchange format.
Load Average - The average system load over a period of time.
Middleware - Software that connects software components.
Minimum Volume Enclosing Ellipse - The ellipse with the smallest possible volume that
2. Testing Approach
This section describes the overall approach and particular techniques that will be used
during the Acceptance Test Plan for Chaerea and any constraints that may apply. Testing will be
done in a continuous fashion, and therefore there will be no start and end dependencies or
expectations. Rather, there will just be expectant methods of testing for each individual file.
2.1
Testing Objectives
Validate the elements of the Chaerea fault detection system and verify that it performs in
accordance with the requirements set forth in the Software Requirements Specification
document.
2.2
Testing Structure
In the Software Requirements Specification, we separated requirements by files within
given modules. In this document, we will detail how each file listed in the Software
Requirement Specification document will be tested.
3.2
Assumptions
Exclusions
4.1
Sensor will be run, pushing output to the console, for one minute.
Sensor will be run, pushing output to the console, for one minute.
Sensor will be run, pushing output to the console, for one minute.
Sensor will be run, pushing output to the console, for one minute.
Sensor will be run, pushing output to the console, for one minute.
Sensor will be run, pushing output to the console, for one minute.
4.2
Sensor will be run, pushing output to the console, for one minute.
OS Sensor Level
Sensor will be run, pushing output to the console, for one minute.
Sensor will be run, pushing output to the console, for one minute.
If the sensor returns non-negative values that do not exceed the memory
threshold of the system, we will consider this a success.
Sensor will be run, pushing output to the console, for one minute.
Sensor will be run, pushing output to the console, for one minute.
Sensor will be run, pushing output to the console, for one minute.
Sensor will be run, pushing output to the console, for one minute.
Sensor will be run, pushing output to the console, for one minute.
If the sensor returns non-negative value below 1 Gb, we will consider this
a success
4.3
Sensor will be run, pushing output to the console, for one minute.
If the sensor returns non-negative value below 1 Gb, we will consider this
a success
VM Sensor Level
Sensor will be run, pushing output to the console, for one minute.
If the sensor returns non-negative value below 1 Gb, we will consider this
a success
4.4
Sensor will be run, pushing output to the console, for one minute.
If the sensor returns non-negative value below 1 Gb, we will consider this
a success
Sensor will be run, pushing output to the console, for one minute.
Sensor will be run, pushing output to the console, for one minute.
Sensor will be run, pushing output to the console, for one minute.
Sensor will be run, pushing output to the console, for one minute.
Sensor will be run, pushing output to the console, for one minute.
Sensor will be run, pushing output to the console, for one minute.
If the sensor returns a non-negative value for the events and a reasonable value
for the time (it does not exceed the uptime of the system) we will consider this a
success.
Sensor will be run, pushing output to the console, for one minute.
If the sensor returns a non-negative value for the events and a reasonable value
for the time (it does not exceed the uptime of the system) we will consider this a
success.
Sensor will be run, pushing output to the console, for one minute.
If the sensor returns a reasonable non-negative value (it does not exceed the
uptime of the system) we will consider this a success.
4.5
Dispatcher Level
If the sensors that this has been configured to initiate are initiated in
reasonable time and report data as shown in the individual sensor script
tests, we will consider this a success.
If the sensors are able to maintain and communicate their data accurately
and efficiently within this framework, we will consider this a success.
We should be able to add and remove sensors and access them using their
process ID.
4.6
Collector Level
4.7
Detector Level
Enter random data into the code for the ellipse, hyperrectangle and
convex hull. Confirm manually that the shapes are created correctly.
Ensure that the script allows for accurate selection of what shape to create
and creates the requested shape.
4.8
Presenter Level
Confirm that the values displayed are being relayed accurately and in a
timely fashion (with graphs displaying the proper associated values).