README
1MONITOR BACKEND
2
3 NAME: back-monitor
4
5 Backend for monitoring the server's activity.
6
7
8
9COMPILE AND CONFIGURATION OPTIONS
10
11It must be explicitly enabled by configuring with
12
13 --enable-monitor
14
15set; then it must be activated by placing in slapd.conf the database
16configure directive
17
18 database monitor
19
20The suffix "cn=Monitor" is implicitly activated (it cannot be given
21as a suffix of the database as usually done for conventional backends).
22Note that the "cn=Monitor" naming context appears in the rootDSE
23in the attribute monitorContext
24
25A bind operation is provided; at present it allows to bind as the
26backend rootdn. As a result, the backend supports the rootdn/rootpw
27directives (only simple bind at present).
28
29
30
31NAMING CONTEXT AND TREE STRUCTURE
32
33The backend naming context is "cn=Monitor"; the first level entries
34represent the monitored subsystems. It is implemented in a modular way,
35to ease the addition of new subsystems.
36
37
38
39SCHEMA
40
41All the subsystems get a default "cn" attribute, represented by the
42subsystem's name, and they all have "top", "monitor" and "extensibleObject"
43objectclasses.
44"extensibleObject" is used, and the "description" attribute
45is used to hold the monitor information of each entry.
46
47
48
49FUNCTIONALITY
50
51Most of the sybsystems contain an additional depth level, represented
52by detailed item monitoring.
53All the entries undergo an update operation, if a related method is
54defined, prior to being returned. Moreover, there's a mechanism to
55allow volatile entries to be defined, and generated on the fly when
56requested. As an instance, the connection statistics are updated
57at each request, while each active connection data is created on the
58fly.
59
60One nice feature of this solution is that granular ACLs can be applied
61to each entry.
62
63
64
65OPERATIONS
66
67The backend currently supports:
68
69 bind
70 compare
71 modify
72 search
73
74
75
76SUBSYSTEMS
77
78Currently some subsystems are partially supported. "Partially"
79means their entries are correctly generated, but sometimes only
80partially useful information is provided.
81
82The subsystems are:
83
84 Backends
85 Connections
86 Databases
87 Listener
88 Log
89 Operations
90 Overlays
91 SASL
92 Statistics
93 Threads
94 Time
95 TLS
96 Read/Write Waiters
97
98
99
100BACKENDS SUBSYSTEMS
101
102The main entry contains the type of backends enabled at compile time;
103the subentries, for each backend, contain the type of the backend.
104It should also contain the modules that have been loaded if dynamic
105backends are enabled.
106
107
108
109CONNECTIONS
110
111The main entry is empty; it should contain some statistics on the number
112of connections.
113Dynamic subentries are created for each open connection, with stats on
114the activity on that connection (the format will be detailed later).
115There are two special subentries that show the number of total and
116current connections respectively.
117
118
119
120DATABASES SUBSYSTEM
121
122The main entry contains the naming context of each configured database;
123the subentries contain, for each database, the type and the naming
124context.
125
126
127
128LISTENER SUBSYSTEM
129
130It contains the description of the devices the server is currently
131listening on
132
133
134
135LOG SUBSYSTEM
136
137It contains the currently active log items. The "Log" subsystem allows
138user modify operations on the "description" attribute, whose values MUST
139be in the list of admittable log switches:
140
141 Trace
142 Packets
143 Args
144 Conns
145 BER
146 Filter
147 Config (useless)
148 ACL
149 Stats
150 Stats2
151 Shell
152 Parse
153 Cache (deprecated)
154 Index
155
156These values can be added, replaced or deleted; they affect what
157messages are sent to the syslog device.
158
159
160
161OPERATIONS SUBSYSTEM
162
163It shows some statistics on the operations performed by the server:
164
165 Initiated
166 Completed
167
168and for each operation type, i.e.:
169
170 Bind
171 Unbind
172 Add
173 Delete
174 Modrdn
175 Modify
176 Compare
177 Search
178 Abandon
179 Extended
180
181
182
183OVERLAYS SUBSYSTEM
184
185The main entry contains the type of overlays available at run-time;
186the subentries, for each overlay, contain the type of the overlay.
187It should also contain the modules that have been loaded if dynamic
188overlays are enabled.
189
190
191
192SASL
193
194Currently empty.
195
196
197
198STATISTICS SUBSYSTEM
199
200It shows some statistics on the data sent by the server:
201
202 Bytes
203 PDU
204 Entries
205 Referrals
206
207
208
209THREADS SUBSYSTEM
210
211It contains the maximum number of threads enabled at startup and the
212current backload.
213
214
215
216TIME SUBSYSTEM
217
218It contains two subentries with the start time and the current time
219of the server.
220
221
222
223TLS
224
225Currently empty.
226
227
228
229READ/WRITE WAITERS SUBSYSTEM
230
231It contains the number of current read waiters.
232
233
234
235NOTES
236
237This document is in a very early stage of maturity and will
238probably be rewritten many times before the monitor backend is released.
239
240
241
242AUTHOR: Pierangelo Masarati <ando@OpenLDAP.org>
243
244