openldap/servers/slapd/back-monitor/README
Pierangelo Masarati 4a8ab5dbf2 Mostly based on patches provided by Hallvard B. Furuseth
ITS#1677 - cast away const warnings
ITS#1678 - unsigned char args to ctype funcs
ITS#1682 - don't redefine ldap_debug
ITS#1683 - uninitialized vars
ITS#1703 - ldo_debug initialization
ITS#1705 - unsigned testing
ITS#1706 - socklen_t args
ITS#1719 - back-tcl update (other cleanups/fixes/improvements; yet untested)
ITS#1724 - integerNormalize/integerFilter/integerIndexer bugs
ITS#1725 - libdes not required

Implement back-null (/dev/null style backend)
Cleanup some misc warnings ("%lu" format, unused/uninitialized vars,
        ambiguous operator precedence)

Kurt, please regenerate configure
2002-04-08 09:43:22 +00:00

228 lines
4.2 KiB
Plaintext

MONITOR BACKEND
NAME: back-monitor
Backend for monitoring the server's activity.
COMPILE AND CONFIGURATION OPTIONS
It must be explicitly enabled by configuring with
--enable-monitor
set; then it must be activated by placing in slapd.conf the database
configure directive
database monitor
The suffix "cn=Monitor" is implicitly activated (it cannot be given
as a suffix of the database as usually done for conventional backends).
Note that the "cn=Monitor" naming context appears in the rootDSE
(FIXME: do we really want this?)
A bind operation is provided; at present it allows to bind as the
backend rootdn. As a result, the backend supports the rootdn/rootpw
directives (only simple bind at present).
NAMING CONTEXT AND TREE STRUCTURE
The backend naming context is "cn=Monitor"; the first level entries
represent the monitored subsystems. It is implemented in a modular way,
to ease the addition of new subsystems.
SCHEMA
All the subsystems get a default "cn" attribute, represented by the
subsystem's name, and they all have "top", "monitor" and "extensibleObject"
objectclasses.
"extensibleObject" is used, and the "description" attribute
is used to hold the monitor information of each entry.
FUNCTIONALITY
Most of the sybsystems contain an additional depth level, represented
by detailed item monitoring.
All the entries undergo an update operation, if a related method is
defined, prior to being returned. Moreover, there's a mechanism to
allow volatile entries to be defined, and generated on the fly when
requested. As an instance, the connection statistics are updated
at each request, while each active connection data is created on the
fly.
One nice feature of this solution is that granular ACLs can be applied
to each entry.
OPERATIONS
The backend currently supports:
bind
compare
modify
search
SUBSYSTEMS
Currently some subsystems are partially supported. "Partially"
means their entries are correctly generated, but sometimes only
partially useful information is provided.
The subsystems are:
Listener
Databases
Backends
Threads
SASL
TLS
Connections
Read Waiters
Write Waiters
Log
Operations
Statistics
Time
LISTENER SUBSYSTEM
It contains the description of the devices the server is currently
listening on
DATABASES SUBSYSTEM
The main entry contains the naming context of each configured database;
the subentries contain, for each database, the type and the naming
context.
BACKENDS SUBSYSTEMS
The main entry contains the type of backends enabled at compile time;
the subentries, for each backend, contain the type of the backend.
It should also contain the modules that have been loaded if dynamic
backends are enabled.
THREADS SUBSYSTEM
It contains the maximum number of threads enabled at startup and the
current backload.
SASL
Currently empty.
TLS
Currently empty.
CONNECTIONS
The main entry is empty; it should contain some statistics on the number
of connections.
Dynamic subentries are created for each open connection, with stats on
the activity on that connection (the format will be detailed later).
There are two special subentries that show the number of total and
current connections respectively.
READ WAITERS SUBSYSTEM
It contains the number of current read waiters.
WRITE WAITERS SUBSYSTEM
It contains the number of current write waiters.
LOG SUBSYSTEM
It contains the currently active log items. The "Log" subsystem allows
user modify operations on the "description" attribute, whose values MUST
be in the list of admittable log switches:
Trace
Packets
Args
Conns
BER
Filter
Config (useless)
ACL
Stats
Stats2
Shell
Parse
Cache (deprecated)
Index
These values can be added, replaced or deleted; they affect what
messages are sent to the syslog device.
OPERATIONS SUBSYSTEM
It shows some statistics on the operations performed by the server:
Initiated
Completed
SENT SUBSYSTEM
It shows some statistics on the data sent by the server:
Bytes
PDU
Referrals
Entries
TIME SUBSISTEM
It contains two subentries with the start time and the current time
of the server.
NOTES
This document is in a very early stage of maturity and will
probably be rewritten many times before the monitor backend is released.
AUTHOR: Pierangelo Masarati <ando@OpenLDAP.org>