~ubuntu-branches/ubuntu/saucy/rrdtool/saucy-proposed

« back to all changes in this revision

Viewing changes to doc/rrdcached.txt

  • Committer: Bazaar Package Importer
  • Author(s): Clint Byrum
  • Date: 2010-07-22 08:07:01 UTC
  • mfrom: (1.2.8 upstream) (3.1.6 sid)
  • Revision ID: james.westby@ubuntu.com-20100722080701-k46mgdfz6euxwqsm
Tags: 1.4.3-1ubuntu1
* Merge from debian unstable, Remaining changes:
  - debian/control: Don't build against ruby1.9 as we don't want
    it in main.
* require libdbi >= 0.8.3 to prevent aborts when using dbi datasources

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
RRDCACHED(1)                        rrdtool                       RRDCACHED(1)
 
2
 
 
3
 
 
4
 
 
5
NNAAMMEE
 
6
       rrdcached - Data caching daemon for rrdtool
 
7
 
 
8
SSYYNNOOPPSSIISS
 
9
       rrrrddccaacchheedd [--PP _p_e_r_m_i_s_s_i_o_n_s] [--ll _a_d_d_r_e_s_s] [--ss _g_r_o_u_p] [--ww _t_i_m_e_o_u_t]
 
10
       [--zz _d_e_l_a_y] [--ff _t_i_m_e_o_u_t] [--pp _p_i_d___f_i_l_e] [--tt _w_r_i_t_e___t_h_r_e_a_d_s]
 
11
       [--jj _j_o_u_r_n_a_l___d_i_r] [-F] [-g] [--bb _b_a_s_e___d_i_r [--BB]]
 
12
 
 
13
DDEESSCCRRIIPPTTIIOONN
 
14
       rrrrddccaacchheedd is a daemon that receives updates to existing RRD files,
 
15
       accumulates them and, if enough have been received or a defined time
 
16
       has passed, writes the updates to the RRD file. A _f_l_u_s_h command may be
 
17
       used to force writing of values to disk, so that graphing facilities
 
18
       and similar can work with up-to-date data.
 
19
 
 
20
       The daemon was written with big setups in mind. Those setups usually
 
21
       run into IO related problems sooner or later for reasons that are
 
22
       beyond the scope of this document. Check the wiki at the RRDtool
 
23
       homepage for details. Also check "SECURITY CONSIDERATIONS" below before
 
24
       using this daemon! A detailed description of how the daemon operates
 
25
       can be found in the "HOW IT WORKS" section below.
 
26
 
 
27
OOPPTTIIOONNSS
 
28
       --ll _a_d_d_r_e_s_s
 
29
           Tells the daemon to bind to _a_d_d_r_e_s_s and accept incoming connections
 
30
           on that socket. If _a_d_d_r_e_s_s begins with "unix:", everything
 
31
           following that prefix is interpreted as the path to a UNIX domain
 
32
           socket. Otherwise the address or node name are resolved using
 
33
           "getaddrinfo()".
 
34
 
 
35
           For network sockets, a port may be specified by using the form
 
36
           "[[_a_d_d_r_e_s_s]]::_p_o_r_t_". If the address is an IPv4 address or a fully
 
37
           qualified domain name (i. e. the address contains at least one dot
 
38
           (".")), the square brackets can be omitted, resulting in the
 
39
           (simpler) "_a_d_d_r_e_s_s::_p_o_r_t_" pattern. The default port is 4422221177//uuddpp. If
 
40
           you specify a network socket, it is mandatory to read the "SECURITY
 
41
           CONSIDERATIONS" section.
 
42
 
 
43
           The following formats are accepted. Please note that the address of
 
44
           the UNIX domain socket mmuusstt start with a slash in the second case!
 
45
 
 
46
              unix:</path/to/unix.sock>
 
47
              /<path/to/unix.sock>
 
48
              <hostname-or-ip>
 
49
              [<hostname-or-ip>]:<port>
 
50
              <hostname-or-ipv4>:<port>
 
51
 
 
52
           If the --ll option is not specified the default address,
 
53
           "unix:/tmp/rrdcached.sock", will be used.
 
54
 
 
55
       --ss _g_r_o_u_p___n_a_m_e|_g_i_d
 
56
           Set the group permissions of a UNIX domain socket. The option
 
57
           accepts either a numeric group id or group name. That group will
 
58
           then have both read and write permissions (the socket will have
 
59
           file permissions 0750) for the socket and, therefore, is able to
 
60
           send commands to the daemon. This may be useful in cases where you
 
61
           cannot easily run all RRD processes with the same user privileges
 
62
           (e.g. graph generating CGI scripts that typically run in the
 
63
           permission context of the web server).
 
64
 
 
65
           This option affects the _f_o_l_l_o_w_i_n_g UNIX socket addresses (the
 
66
           following --ll options), i.e., you may specify different settings for
 
67
           different sockets.
 
68
 
 
69
           The default is not to change ownership or permissions of the socket
 
70
           and, thus, use the system default.
 
71
 
 
72
       --mm _m_o_d_e
 
73
           Set the file permissions of a UNIX domain socket. The option
 
74
           accepts an octal number representing the bit pattern for the mode
 
75
           (see _c_h_m_o_d(1) for details).
 
76
 
 
77
           Please note that not all systems honor this setting. On Linux,
 
78
           read/write permissions are required to connect to a UNIX socket.
 
79
           However, many BSD-derived systems ignore permissions for UNIX
 
80
           sockets. See _u_n_i_x(7) for details.
 
81
 
 
82
           This option affects the _f_o_l_l_o_w_i_n_g UNIX socket addresses (the
 
83
           following --ll options), i.e., you may specify different settings for
 
84
           different sockets.
 
85
 
 
86
           The default is not to change ownership or permissions of the socket
 
87
           and, thus, use the system default.
 
88
 
 
89
       --PP _c_o_m_m_a_n_d[,_c_o_m_m_a_n_d[,...]]
 
90
           Specifies the commands accepted via a network socket. This allows
 
91
           administrators of _R_R_D_C_a_c_h_e_D to control the actions accepted from
 
92
           various sources.
 
93
 
 
94
           The arguments given to the --PP option is a comma separated list of
 
95
           commands.  For example, to allow the "FLUSH" and "PENDING" commands
 
96
           one could specify:
 
97
 
 
98
             rrdcached -P FLUSH,PENDING $MORE_ARGUMENTS
 
99
 
 
100
           The --PP option affects the _f_o_l_l_o_w_i_n_g socket addresses (the following
 
101
           --ll options). In the following example, only the IPv4 network socket
 
102
           (address 10.0.0.1) will be restricted to the "FLUSH" and "PENDING"
 
103
           commands:
 
104
 
 
105
             rrdcached -l unix:/some/path -P FLUSH,PENDING -l 10.0.0.1
 
106
 
 
107
           A complete list of available commands can be found in the section
 
108
           "Valid Commands" below. There are two minor special exceptions:
 
109
 
 
110
           �   The "HELP" and "QUIT" commands are always allowed.
 
111
 
 
112
           �   If the "BATCH" command is accepted, the .. command will
 
113
               automatically be accepted, too.
 
114
 
 
115
           Please also read "SECURITY CONSIDERATIONS" below.
 
116
 
 
117
       --ww _t_i_m_e_o_u_t
 
118
           Data is written to disk every _t_i_m_e_o_u_t seconds. If this option is
 
119
           not specified the default interval of 300 seconds will be used.
 
120
 
 
121
       --zz _d_e_l_a_y
 
122
           If specified, rrdcached will delay writing of each RRD for a random
 
123
           number of seconds in the range [0,_d_e_l_a_y).  This will avoid too many
 
124
           writes being queued simultaneously.  This value should be no
 
125
           greater than the value specified in --ww.  By default, there is no
 
126
           delay.
 
127
 
 
128
       --ff _t_i_m_e_o_u_t
 
129
           Every _t_i_m_e_o_u_t seconds the entire cache is searched for old values
 
130
           which are written to disk. This only concerns files to which
 
131
           updates have stopped, so setting this to a high value, such as
 
132
           3600 seconds, is acceptable in most cases. This timeout defaults to
 
133
           3600 seconds.
 
134
 
 
135
       --pp _f_i_l_e
 
136
           Sets the name and location of the PID-file. If not specified, the
 
137
           default, "_$_l_o_c_a_l_s_t_s_t_e_d_i_r_/_r_u_n_/_r_r_d_c_a_c_h_e_d_._p_i_d_" will be used.
 
138
 
 
139
       --tt _w_r_i_t_e___t_h_r_e_a_d_s
 
140
           Specifies the number of threads used for writing RRD files.  The
 
141
           default is 4.  Increasing this number will allow rrdcached to have
 
142
           more simultaneous I/O requests into the kernel.  This may allow the
 
143
           kernel to re-order disk writes, resulting in better disk
 
144
           throughput.
 
145
 
 
146
       --jj _d_i_r
 
147
           Write updates to a journal in _d_i_r.  In the event of a program or
 
148
           system crash, this will allow the daemon to write any updates that
 
149
           were pending at the time of the crash.
 
150
 
 
151
           On startup, the daemon will check for journal files in this
 
152
           directory.  If found, all updates therein will be read into memory
 
153
           before the daemon starts accepting new connections.
 
154
 
 
155
           The journal will be rotated with the same frequency as the flush
 
156
           timer given by --ff.
 
157
 
 
158
           When journaling is enabled, the daemon will use a fast shutdown
 
159
           procedure.  Rather than flushing all files to disk, it will make
 
160
           sure the journal is properly written and exit immediately.
 
161
           Although the RRD data files are not fully up-to-date, no
 
162
           information is lost; all pending updates will be replayed from the
 
163
           journal next time the daemon starts up.
 
164
 
 
165
           To disable fast shutdown, use the --FF option.
 
166
 
 
167
       --FF  ALWAYS flush all updates to the RRD data files when the daemon is
 
168
           shut down, regardless of journal setting.
 
169
 
 
170
       --gg  Run in the foreground.  The daemon will not _f_o_r_k_(_).
 
171
 
 
172
       --bb _d_i_r
 
173
           The daemon will change into a specific directory at startup. All
 
174
           files passed to the daemon, that are specified by a rreellaattiivvee path,
 
175
           will be interpreted to be relative to this directory. If not given
 
176
           the default, "/tmp", will be used.
 
177
 
 
178
             +------------------------+------------------------+
 
179
             ! Command line           ! File updated           !
 
180
             +------------------------+------------------------+
 
181
             ! foo.rrd                ! /tmp/foo.rrd           !
 
182
             ! foo/bar.rrd            ! /tmp/foo/bar.rrd       !
 
183
             ! /var/lib/rrd/foo.rrd   ! /var/lib/rrd/foo.rrd   !
 
184
             +------------------------+------------------------+
 
185
             Paths given on the command  line and paths actually
 
186
             updated by the daemon,  assuming the base directory
 
187
             "/tmp".
 
188
 
 
189
           WWAARRNNIINNGG:: The paths up to and including the base directory MMUUSSTT NNOOTT
 
190
           BBEE symbolic links.  In other words, if the base directory is
 
191
           specified as:
 
192
 
 
193
               -b /base/dir/somewhere
 
194
 
 
195
           ... then NNOONNEE of the following should be symbolic links:
 
196
 
 
197
               /base
 
198
               /base/dir
 
199
               /base/dir/somewhere
 
200
 
 
201
       --BB  Only permit writes into the base directory specified in --bb (and any
 
202
           sub-directories).  This does NNOOTT detect symbolic links.  Paths
 
203
           containing "../" will also be blocked.
 
204
 
 
205
AAFFFFEECCTTEEDD RRRRDDTTOOOOLL CCOOMMMMAANNDDSS
 
206
       The following commands may be made aware of the rrrrddccaacchheedd using the
 
207
       command line argument ----ddaaeemmoonn or the environment variable
 
208
       RRRRDDCCAACCHHEEDD__AADDDDRREESSSS:
 
209
 
 
210
       �   dump
 
211
 
 
212
       �   fetch
 
213
 
 
214
       �   flush
 
215
 
 
216
       �   graph
 
217
 
 
218
       �   graphv
 
219
 
 
220
       �   info
 
221
 
 
222
       �   last
 
223
 
 
224
       �   lastupdate
 
225
 
 
226
       �   update
 
227
 
 
228
       �   xport
 
229
 
 
230
       The uuppddaattee command can send values to the daemon instead of writing
 
231
       them to the disk itself. All other commands can send a FFLLUUSSHH command
 
232
       (see below) to the daemon before accessing the files, so they work with
 
233
       up-to-date data even if the cache timeout is large.
 
234
 
 
235
EERRRROORR RREEPPOORRTTIINNGG
 
236
       The daemon reports errors in one of two ways: During startup, error
 
237
       messages are printed to "STDERR". One of the steps when starting up is
 
238
       to fork to the background and closing "STDERR" - after this writing
 
239
       directly to the user is no longer possible. Once this has happened, the
 
240
       daemon will send log messages to the system logging daemon using
 
241
       _s_y_s_l_o_g(3). The facility used is "LOG_DAEMON".
 
242
 
 
243
HHOOWW IITT WWOORRKKSS
 
244
       When receiving an update, rrrrddccaacchheedd does not write to disk but looks
 
245
       for an entry for that file in its internal tree. If not found, an entry
 
246
       is created including the current time (called "First" in the diagram
 
247
       below). This time is nnoott the time specified on the command line but the
 
248
       time the operating system considers to be "now". The value and time of
 
249
       the value (called "Time" in the diagram below) are appended to the tree
 
250
       node.
 
251
 
 
252
       When appending a value to a tree node, it is checked whether it's time
 
253
       to write the values to disk. Values are written to disk if
 
254
       "now() - First >= timeout", where "timeout" is the timeout specified
 
255
       using the --ww option, see "OPTIONS". If the values are "old enough" they
 
256
       will be enqueued in the "update queue", i. e. they will be appended to
 
257
       the linked list shown below.  Because the tree nodes and the elements
 
258
       of the linked list are the same data structures in memory, any update
 
259
       to a file that has already been enqueued will be written with the next
 
260
       write to the RRD file, too.
 
261
 
 
262
       A separate "update thread" constantly dequeues the first element in the
 
263
       update queue and writes all its values to the appropriate file. So as
 
264
       long as the update queue is not empty files are written at the highest
 
265
       possible rate.
 
266
 
 
267
       Since the timeout of files is checked only when new values are added to
 
268
       the file, "dead" files, i. e. files that are not updated anymore, would
 
269
       never be written to disk. Therefore, every now and then, controlled by
 
270
       the --ff option, the entire tree is walked and all "old" values are
 
271
       enqueued. Since this only affects "dead" files and walking the tree is
 
272
       relatively expensive, you should set the "flush interval" to a
 
273
       reasonably high value. The default is 3600 seconds (one hour).
 
274
 
 
275
       The downside of caching values is that they won't show up in graphs
 
276
       generated from the RRD files. To get around this, the daemon provides
 
277
       the "flush command" to flush specific files. This means that the file
 
278
       is inserted at the hheeaadd of the update queue or moved there if it is
 
279
       already enqueued. The flush command will return only after the file's
 
280
       pending updates have been written to disk.
 
281
 
 
282
        +------+   +------+                               +------+
 
283
        ! head !   ! root !                               ! tail !
 
284
        +---+--+   +---+--+                               +---+--+
 
285
            !         /\                                      !
 
286
            !        /  \                                     !
 
287
            !       /\  /\                                    !
 
288
            !      /\/\ \ `----------------- ... --------,    !
 
289
            V     /      `-------,                       !    V
 
290
        +---+----+---+    +------+-----+             +---+----+---+
 
291
        ! File:  foo !    ! File:  bar !             ! File:  qux !
 
292
        ! First: 101 !    ! First: 119 !             ! First: 180 !
 
293
        ! Next:&bar -+--->! Next:&... -+---> ... --->! Next:NULL  !
 
294
        | Prev:NULL  !<---+-Prev:&foo  !<--- ... ----+-Prev: &... !
 
295
        +============+    +============+             +============+
 
296
        ! Time:  100 !    ! Time:  120 !             ! Time:  180 !
 
297
        ! Value:  10 !    ! Value: 0.1 !             ! Value: 2,2 !
 
298
        +------------+    +------------+             +------------+
 
299
        ! Time:  110 !    ! Time:  130 !             ! Time:  190 !
 
300
        ! Value:  26 !    ! Value: 0.1 !             ! Value: 7,3 !
 
301
        +------------+    +------------+             +------------+
 
302
        :            :    :            :             :            :
 
303
        +------------+    +------------+             +------------+
 
304
        ! Time:  230 !    ! Time:  250 !             ! Time:  310 !
 
305
        ! Value:  42 !    ! Value: 0.2 !             ! Value: 1,2 !
 
306
        +------------+    +------------+             +------------+
 
307
 
 
308
       The above diagram demonstrates:
 
309
 
 
310
       �   Files/values are stored in a (balanced) tree.
 
311
 
 
312
       �   Tree nodes and entries in the update queue are the same data
 
313
           structure.
 
314
 
 
315
       �   The local time ("First") and the time specified in updates ("Time")
 
316
           may differ.
 
317
 
 
318
       �   Timed out values are inserted at the "tail".
 
319
 
 
320
       �   Explicitly flushed values are inserted at the "head".
 
321
 
 
322
       �   ASCII art rocks.
 
323
 
 
324
SSEECCUURRIITTYY CCOONNSSIIDDEERRAATTIIOONNSS
 
325
   AAuutthheennttiiccaattiioonn
 
326
       There is no authentication.
 
327
 
 
328
       The client/server protocol does not yet have any authentication
 
329
       mechanism. It is likely that authentication and encryption will be
 
330
       added in a future version, but for the time being it is the
 
331
       administrator's responsibility to secure the traffic from/to the
 
332
       daemon!
 
333
 
 
334
       It is highly recommended to install a packet filter or similar
 
335
       mechanism to prevent unauthorized connections. Unless you have a
 
336
       dedicated VLAN or VPN for this, using network sockets is probably a bad
 
337
       idea!
 
338
 
 
339
   AAuutthhoorriizzaattiioonn
 
340
       There is minimal per-socket authorization.
 
341
 
 
342
       Authorization is currently done on a per-socket basis. That means each
 
343
       socket has a list of commands it will accept and it will accept. It
 
344
       will accept only those commands explicitly listed but it will
 
345
       (currently) accept these commands from anyone reaching the socket.
 
346
 
 
347
       If the networking sockets are to be used, it is necessary to restrict
 
348
       the accepted commands to those needed by external clients. If, for
 
349
       example, external clients want to draw graphs of the cached data, they
 
350
       should only be allowed to use the "FLUSH" command.
 
351
 
 
352
   EEnnccrryyppttiioonn
 
353
       There is no encryption.
 
354
 
 
355
       Again, this may be added in the future, but for the time being it is
 
356
       your job to keep your private data private. Install a VPN or an
 
357
       encrypted tunnel if you statistics are confidential!
 
358
 
 
359
   SSaanniittyy cchheecckkiinngg
 
360
       There is no sanity checking.
 
361
 
 
362
       The daemon will blindly write to any file it gets told, so you really
 
363
       should create a separate user just for this daemon. Also it does not do
 
364
       any sanity checks, so if it gets told to write values for a time far in
 
365
       the future, your files will be messed up good!
 
366
 
 
367
   CCoonncclluussiioonn
 
368
       �   Security is the job of the administrator.
 
369
 
 
370
       �   We recommend to allow write access via UNIX domain sockets only.
 
371
 
 
372
       �   You have been warned.
 
373
 
 
374
PPRROOTTOOCCOOLL
 
375
       The daemon communicates with clients using a line based ASCII protocol
 
376
       which is easy to read and easy to type. This makes it easy for scripts
 
377
       to implement the protocol and possible for users to use telnet to
 
378
       connect to the daemon and test stuff "by hand".
 
379
 
 
380
       The protocol is line based, this means that each record consists of one
 
381
       or more lines. A line is terminated by the line feed character 0x0A,
 
382
       commonly written as "\n". In the examples below, this character will be
 
383
       written as "<LF>" ("line feed").
 
384
 
 
385
       After the connection has been established, the client is expected to
 
386
       send a "command". A command consists of the command keyword, possibly
 
387
       some arguments, and a terminating newline character. For a list of
 
388
       commands, see "Valid Commands" below.
 
389
 
 
390
       Example:
 
391
 
 
392
         FLUSH /tmp/foo.rrd<LF>
 
393
 
 
394
       The daemon answers with a line consisting of a status code and a short
 
395
       status message, separated by one or more space characters. A negative
 
396
       status code signals an error, a positive status code or zero signal
 
397
       success. If the status code is greater than zero, it indicates the
 
398
       number of lines that follow the status line.
 
399
 
 
400
       Examples:
 
401
 
 
402
        0 Success<LF>
 
403
 
 
404
        2 Two lines follow<LF>
 
405
        This is the first line<LF>
 
406
        And this is the second line<LF>
 
407
 
 
408
   VVaalliidd CCoommmmaannddss
 
409
       The following commands are understood by the daemon:
 
410
 
 
411
       FFLLUUSSHH _f_i_l_e_n_a_m_e
 
412
           Causes the daemon to put _f_i_l_e_n_a_m_e to the hheeaadd of the update queue
 
413
           (possibly moving it there if the node is already enqueued). The
 
414
           answer will be sent aafftteerr the node has been dequeued.
 
415
 
 
416
       FFLLUUSSHHAALLLL
 
417
           Causes the daemon to start flushing ALL pending values to disk.
 
418
           This returns immediately, even though the writes may take a long
 
419
           time.
 
420
 
 
421
       PPEENNDDIINNGG _f_i_l_e_n_a_m_e
 
422
           Shows any "pending" updates for a file, in order.  The updates
 
423
           shown have not yet been written to the underlying RRD file.
 
424
 
 
425
       FFOORRGGEETT _f_i_l_e_n_a_m_e
 
426
           Removes _f_i_l_e_n_a_m_e from the cache.  Any pending updates WWIILLLL BBEE LLOOSSTT.
 
427
 
 
428
       QQUUEEUUEE
 
429
           Shows the files that are on the output queue.  Returns zero or more
 
430
           lines in the following format, where <num_vals> is the number of
 
431
           values to be written for the <file>:
 
432
 
 
433
               <num_vals> <file>
 
434
 
 
435
       HHEELLPP [_c_o_m_m_a_n_d]
 
436
           Returns a short usage message. If no command is given, or _c_o_m_m_a_n_d
 
437
           is HHEELLPP, a list of commands supported by the daemon is returned.
 
438
           Otherwise a short description, possibly containing a pointer to a
 
439
           manual page, is returned.  Obviously, this is meant for interactive
 
440
           usage and the format in which the commands and usage summaries are
 
441
           returned is not well defined.
 
442
 
 
443
       SSTTAATTSS
 
444
           Returns a list of metrics which can be used to measure the daemons
 
445
           performance and check its status. For a description of the values
 
446
           returned, see "Performance Values" below.
 
447
 
 
448
           The format in which the values are returned is similar to many
 
449
           other line based protocols: Each value is printed on a separate
 
450
           line, each consisting of the name of the value, a colon, one or
 
451
           more spaces and the actual value.
 
452
 
 
453
           Example:
 
454
 
 
455
            9 Statistics follow
 
456
            QueueLength: 0
 
457
            UpdatesReceived: 30
 
458
            FlushesReceived: 2
 
459
            UpdatesWritten: 13
 
460
            DataSetsWritten: 390
 
461
            TreeNodesNumber: 13
 
462
            TreeDepth: 4
 
463
            JournalBytes: 190
 
464
            JournalRotate: 0
 
465
 
 
466
       UUPPDDAATTEE _f_i_l_e_n_a_m_e _v_a_l_u_e_s [_v_a_l_u_e_s ...]
 
467
           Adds more data to a filename. This is tthhee operation the daemon was
 
468
           designed for, so describing the mechanism again is unnecessary.
 
469
           Read "HOW IT WORKS" above for a detailed explanation.
 
470
 
 
471
           Note that rrdcached only accepts absolute timestamps in the update
 
472
           values.  Updates strings like "N:1:2:3" are automatically converted
 
473
           to absolute time by the RRD client library before sending to
 
474
           rrdcached.
 
475
 
 
476
       WWRROOTTEE _f_i_l_e_n_a_m_e
 
477
           This command is written to the journal after a file is successfully
 
478
           written out to disk.  It is used during journal replay to determine
 
479
           which updates have already been applied.  It is _o_n_l_y valid in the
 
480
           journal; it is not accepted from the other command channels.
 
481
 
 
482
       BBAATTCCHH
 
483
           This command initiates the bulk load of multiple commands.  This is
 
484
           designed for installations with extremely high update rates, since
 
485
           it permits more than one command to be issued per _r_e_a_d_(_) and
 
486
           _w_r_i_t_e_(_).
 
487
 
 
488
           All commands are executed just as they would be if given
 
489
           individually, except for output to the user.  Messages indicating
 
490
           success are suppressed, and error messages are delayed until the
 
491
           client is finished.
 
492
 
 
493
           Command processing is finished when the client sends a dot (".") on
 
494
           its own line.  After the client has finished, the server responds
 
495
           with an error count and the list of error messages (if any).  Each
 
496
           error messages indicates the number of the command to which it
 
497
           corresponds, and the error message itself.  The first user command
 
498
           after BBAATTCCHH is command number one.
 
499
 
 
500
               client:  BATCH
 
501
               server:  0 Go ahead.  End with dot '.' on its own line.
 
502
               client:  UPDATE x.rrd 1223661439:1:2:3            <--- command #1
 
503
               client:  UPDATE y.rrd 1223661440:3:4:5            <--- command #2
 
504
               client:  and so on...
 
505
               client:  .
 
506
               server:  2 Errors
 
507
               server:  1 message for command 1
 
508
               server:  12 message for command 12
 
509
 
 
510
       QQUUIITT
 
511
           Disconnect from rrdcached.
 
512
 
 
513
   PPeerrffoorrmmaannccee VVaalluueess
 
514
       The following counters are returned by the SSTTAATTSS command:
 
515
 
 
516
       QQuueeuueeLLeennggtthh _(_u_n_s_i_g_n_e_d _6_4_b_i_t _i_n_t_e_g_e_r_)
 
517
           Number of nodes currently enqueued in the update queue.
 
518
 
 
519
       UUppddaatteessRReecceeiivveedd _(_u_n_s_i_g_n_e_d _6_4_b_i_t _i_n_t_e_g_e_r_)
 
520
           Number of UPDATE commands received.
 
521
 
 
522
       FFlluusshheessRReecceeiivveedd _(_u_n_s_i_g_n_e_d _6_4_b_i_t _i_n_t_e_g_e_r_)
 
523
           Number of FLUSH commands received.
 
524
 
 
525
       UUppddaatteessWWrriitttteenn _(_u_n_s_i_g_n_e_d _6_4_b_i_t _i_n_t_e_g_e_r_)
 
526
           Total number of updates, i. e. calls to "rrd_update_r", since the
 
527
           daemon was started.
 
528
 
 
529
       DDaattaaSSeettssWWrriitttteenn _(_u_n_s_i_g_n_e_d _6_4_b_i_t _i_n_t_e_g_e_r_)
 
530
           Total number of "data sets" written to disk since the daemon was
 
531
           started. A data set is one or more values passed to the UUPPDDAATTEE
 
532
           command. For example: "1223661439:123:456" is one data set with two
 
533
           values. The term "data set" is used to prevent confusion whether
 
534
           individual values or groups of values are counted.
 
535
 
 
536
       TTrreeeeNNooddeessNNuummbbeerr _(_u_n_s_i_g_n_e_d _6_4_b_i_t _i_n_t_e_g_e_r_)
 
537
           Number of nodes in the cache.
 
538
 
 
539
       TTrreeeeDDeepptthh _(_u_n_s_i_g_n_e_d _6_4_b_i_t _i_n_t_e_g_e_r_)
 
540
           Depth of the tree used for fast key lookup.
 
541
 
 
542
       JJoouurrnnaallBByytteess _(_u_n_s_i_g_n_e_d _6_4_b_i_t _i_n_t_e_g_e_r_)
 
543
           Total number of bytes written to the journal since startup.
 
544
 
 
545
       JJoouurrnnaallRRoottaattee _(_u_n_s_i_g_n_e_d _6_4_b_i_t _i_n_t_e_g_e_r_)
 
546
           Number of times the journal has been rotated since startup.
 
547
 
 
548
SSIIGGNNAALLSS
 
549
       SIGINT and SIGTERM
 
550
           The daemon exits normally on receipt of either of these signals.
 
551
           Pending updates are handled in accordance with the --jj and --FF
 
552
           options.
 
553
 
 
554
       SIGUSR1
 
555
           The daemon exits AFTER flushing all updates out to disk.  This may
 
556
           take a while.
 
557
 
 
558
       SIGUSR2
 
559
           The daemon exits immediately, without flushing updates out to disk.
 
560
           Pending updates will be replayed from the journal when the daemon
 
561
           starts up again.  WWAARRNNIINNGG:: iiff jjoouurrnnaalliinngg ((--jj)) iiss NNOOTT eennaabblleedd,, aannyy
 
562
           ppeennddiinngg uuppddaatteess WWIILLLL BBEE LLOOSSTT.
 
563
 
 
564
BBUUGGSS
 
565
       No known bugs at the moment.
 
566
 
 
567
SSEEEE AALLSSOO
 
568
       rrdtool, rrdgraph
 
569
 
 
570
AAUUTTHHOORR
 
571
       Florian Forster <octo at verplant.org>
 
572
 
 
573
       Both rrrrddccaacchheedd and this manual page have been written by Florian.
 
574
 
 
575
CCOONNTTRRIIBBUUTTOORRSS
 
576
       kevin brintnall <kbrint@rufus.net>
 
577
 
 
578
 
 
579
 
 
580
1.4.3                             2010-03-22                      RRDCACHED(1)