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