Ad Widget

Collapse

Trigger on "average" but exclude spikes.

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • detniels
    Junior Member
    • Jun 2026
    • 4

    #1

    Trigger on "average" but exclude spikes.

    I am sampling some data every 10 seconds and wan't to trigger when all of the sampled values have been above 5 for a duration of 5 minutes.

    Average doesn't help me, maybe because I am too dumb to use it.... But if all values returned during the 5 minutes are 1, except one value that is 100, the average trigger will fire, obviously.

    What trigger function should I use?

    (Zabbix 6.0.5)
    Last edited by detniels; Today, 11:19.
  • detniels
    Junior Member
    • Jun 2026
    • 4

    #2
    I have tried using percentile()

    But I don't understand why it triggers on this data:

    Click image for larger version  Name:	image.png Views:	0 Size:	45.1 KB ID:	514140The expression is:

    percentile(/LO - Windows Server/perf_counter_en["\PhysicalDisk(_Total)\Avg. Disk Queue Length"],#30,100)>5

    And as far as I can understand, all values returned during that last 30 samples have to be ABOVE 5 for the trigger to fire?

    But it still fires and creates a problem.
    Last edited by detniels; Today, 11:30.

    Comment

    • detniels
      Junior Member
      • Jun 2026
      • 4

      #3
      The items collecting the values is this:

      Click image for larger version

Name:	image.png
Views:	6
Size:	36.8 KB
ID:	514142

      Comment

      • detniels
        Junior Member
        • Jun 2026
        • 4

        #4
        Trying this trigger:

        percentile(/LO - Windows Server/perf_counter_en["\PhysicalDisk(_Total)\Avg. Disk Queue Length"],300,95)>=5.0

        also doesn't work as expected (from my understanding)

        Viewing the corresponding graph, no values returned are above 5 in the 5 minute graph, so why does the trigger fire and create a problem?

        Comment

        • kyus
          Senior Member
          • Feb 2024
          • 195

          #5
          You can use the min function.

          min(/LO - Windows Server/perf_counter_en["\PhysicalDisk(_Total)\Avg. Disk Queue Length"],5m)>5

          Comment

          Working...