Ad Widget

Collapse

How does the agent buffering really work?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • churari
    Junior Member
    • Feb 2012
    • 7

    #1

    How does the agent buffering really work?

    I am trying to understand how the agent buffering works. In our environment we have unstable connections back to the server and thus the buffering would help our situation to ensure no data is lost. We are running v1.8 on Ubuntu.

    From the documentation I see there are 2 parameters:

    BufferSend: "Do not keep data longer than N seconds in buffer"
    BufferSize: "Maximum number of values in a memory buffer. The agent will end all collected dat to Zabbix Server or Proxy if the buffer is full."

    So if I have BufferSend = 5 then my understanding is that anything that has not been sent to the server successfully will be sent.

    What happens if the communication to the server fails? Is the buffer still purged or is it only purged after a "success" received from the server?

    If I have BufferSize set to 100 does that mean that if 100 values have not been sent to the server it will be sent. To me this means that 100 values have been received before the BufferSend (timeout) has occurred, so send anyway. Is this correct?

    Again, what happens if the buffer is sent with 100 values, but it is not successful with the server? Are items in the buffer purged?

    Really, that is my main question: In what circumstances would data be purged from the buffer and not sent to the server?

    Thanks.
  • BDiE8VNy
    Senior Member
    • Apr 2010
    • 680

    #2
    I have a roughly idea about what happens in release 2.0.x. (without guarantee!)

    Sending the content of the buffer will be taken into account every second or after processing an item.
    But it will be skipped every time all of the following criteria are met:
    • the count of persistent (log) values in buffer is lower than the half of configured BufferSize
    • the count of non-persistent (non-log) values in buffer is lower than configured BufferSize
    • the buffer was not send within the last configured BufferSend seconds


    The buffer gets only purged after it was successfully send to the server or proxy.
    On a full buffer non persistent values will overwrite the oldest of their own values in buffer.

    Comment

    Working...