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 subsystems 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