| 1 |
<?xml version='1.0' encoding='UTF-8' ?> |
|---|
| 2 |
<!DOCTYPE preface PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" |
|---|
| 3 |
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" |
|---|
| 4 |
[ |
|---|
| 5 |
<!ENTITY % magic.fixup SYSTEM "http://labs.omniti.com/docbook/ent"> |
|---|
| 6 |
%magic.fixup; |
|---|
| 7 |
]> |
|---|
| 8 |
<preface id="introduction"> |
|---|
| 9 |
<title>Introduction</title> |
|---|
| 10 |
<para> |
|---|
| 11 |
Reconnoiter is a monitoring and trend analysis system designed to cope |
|---|
| 12 |
with large architectures (thousands of machines and hundreds of thousands |
|---|
| 13 |
of metrics). |
|---|
| 14 |
</para> |
|---|
| 15 |
<para> |
|---|
| 16 |
Heavy focus is placed on decoupling the various components of the system |
|---|
| 17 |
to allow for disjoint evolution of each component as issues arise or new |
|---|
| 18 |
requirements are identified. Resource monitoring, metric aggregation, |
|---|
| 19 |
metric analysis and visualization are all cleanly separated. |
|---|
| 20 |
</para> |
|---|
| 21 |
<para> |
|---|
| 22 |
The monitor, <command>noitd</command>, is written in C and designed to |
|---|
| 23 |
support highly concurrent and rapid checks with an expected capability |
|---|
| 24 |
of monitoring 100,000 services per minute (6 million checks per hour.) |
|---|
| 25 |
While it is hard to make writing checks "easy" in this high-performance |
|---|
| 26 |
environment, efforts have been made to ensure that custom check scripting |
|---|
| 27 |
does not require the expertise of writing highly-concurrent, event-driven |
|---|
| 28 |
C code. Instead, glue is provided via scripting languages such as Lua |
|---|
| 29 |
that attempt to handle aspects of this high-concurrency environment |
|---|
| 30 |
transparently. As with any high-performance system, you can easily |
|---|
| 31 |
introduce non-performant code and jeopardize performance system-wide. |
|---|
| 32 |
</para> |
|---|
| 33 |
<para> |
|---|
| 34 |
The aggregator, <command>stratcond</command>, is also written in C and |
|---|
| 35 |
responsible for the simple task of securely gathering data from all of the |
|---|
| 36 |
distributed <command>noitd</command> instances and transforming them into |
|---|
| 37 |
the data storage facility (currently PostgreSQL). |
|---|
| 38 |
</para> |
|---|
| 39 |
<para> |
|---|
| 40 |
The data storage facility (PostgreSQL) holds all information about |
|---|
| 41 |
individual checks, their statuses and the individual metrics associated |
|---|
| 42 |
with them. Automatic processes are in place that summarize the |
|---|
| 43 |
numeric metrics into windowed averages for expedient graphing at |
|---|
| 44 |
a variety of time window resolutions (hour, day, month, year, etc.). |
|---|
| 45 |
</para> |
|---|
| 46 |
<para> |
|---|
| 47 |
The visualization interface (reconnoiter) draws from the data store |
|---|
| 48 |
to visualize collected metrics and assist with monitoring, trending and |
|---|
| 49 |
other visual analyses. The visualization system is written in PHP. |
|---|
| 50 |
</para> |
|---|
| 51 |
</preface> |
|---|
| 52 |
<!-- |
|---|
| 53 |
vim:ts=2:sw=2:et: |
|---|
| 54 |
--> |
|---|