<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <meta name="generator" content="Osso Notes">
    <title></title></head>
<body>
<p>----- Original message -----
<br>&gt; I thing it would be very useful to use the statistics to determine how
<br>&gt; close the buffering has gotten to the limit of the log_fifo_size before
<br>&gt; messages start being dropped. This information can be used to;
<br>
<br>hmm. IIRC there's a stored counter that measures how much messages are stored in a queue. I'm unable to check the source right now, and this is only a vague recollection, or might be a pe feature I stumbled upon.
<br>
<br>&gt; 
<br>&gt; - proactively change the configuration on a host.
<br>&gt; - calculate the rate of buffer consumption and predict how much time
<br>&gt; will elapse before dropping will start.&nbsp; &#32;Alerts to system operators can
<br>&gt; be created prior to messages being dropped.
<br>&gt; 
<br>
<br>
<br>
<br>&gt; This information can be calculated from having the number of messages
<br>&gt; queued, and the log_fifo_size for the destination, or a percentage full
<br>&gt; could be used.
<br>&gt; 
<br>&gt; I would prefer the log_fifo_size.
<br>&gt; 
<br>&gt; I would also prefer to see all of the stats for a destination on a
<br>&gt; single line. Programaticaly it is easier to split the numbers up than it
<br>&gt; is the try to join them back together based on the first three fields of
<br>&gt; a stat line
<br>&gt; 
<br>&gt; dst.file;d_var_syslog#0;/var/log/syslog.20120908.000000;a;dropped;0
<br>&gt; dst.file;d_var_syslog#0;/var/log/syslog.20120908.000000;a;processed;326
<br>&gt; dst.file;d_var_syslog#0;/var/log/syslog.20120908.000000;a;stored;0
<br>&gt; 
<br>
<br>huh, this is the stored counter I was referring to above. so it definitely exists, the question remains if it gets updated properly. 
<br>
<br>&gt; Something like
<br>&gt; 
<br>&gt; 
<br>&gt; dst.file;d_var_syslog#0;/var/log/syslog.20120908.000000;a;0;326;0;5000,1347143526
<br>&gt; 
<br>&gt; where the 4 numbers are&nbsp; &#32;dropped, processed, stored, fifo_size and stamp
<br>&gt; or two different formats, one for source and one for destination
<br>&gt; 
<br>&gt; 
<br>&gt; src.file;local#2;/proc/kmsg;a;1549;1347143526
<br>&gt; dst.file;d_var_syslog#0;/var/log/syslog.20120908.000000;a;0;326;0;5000
<br>
<br>this could probably be done, although a little problematic to extend, and would break applications that relied on the current format. perhaps a separate stats switch could trigger this alternate format.
<br>
<br>&gt; 
<br>&gt; where
<br>&gt; src has processed and stamp
<br>&gt; dst has dropped, processed, stored, fifo_size
<br>&gt; 
<br>&gt; Possibly the source could also show the flow-control state as well, or
<br>&gt; even better, the flow control duration, so if a source has been blocked
<br>&gt; for x number of seconds I can alert an operations center about the
<br>&gt; condition.
<br>
<br>like the longest 'blocking period' since the start of syslog-ng. this could be monitored easily.
<br>
<br>&gt; 
<br>&gt; Thanks again for your consideration.
<br>&gt; 
<br>
<br>good ideas in general, and shouldn't be difficult either. I'm somewhat overwhelmed these days.<br></p>
</body>
</html>