Uploaded image for project: 'ZABBIX BUGS AND ISSUES'
  1. ZABBIX BUGS AND ISSUES
  2. ZBX-27236

Join event_suppress instead of not exists

XMLWordPrintable

    • Icon: Problem report Problem report
    • Resolution: Unresolved
    • Icon: Critical Critical
    • None
    • 7.0.21, 7.4.5, 8.0.0alpha1
    • Frontend (F)
    • Support backlog

          AND NOT EXISTS (
              SELECT 1
              FROM event_suppress es
              WHERE es.eventid = e.eventid
          )
      
      SELECT DISTINCT
          e.eventid,
          e.objectid,
          e.clock,
          e.ns,
          e.name,
          e.severity,
          es1.cause_eventid
      FROM
          functions f
          JOIN items i ON f.itemid = i.itemid
          JOIN host_hgset hh ON i.hostid = hh.hostid
          JOIN permission p ON hh.hgsetid = p.hgsetid
          JOIN events e ON e.objectid = f.triggerid
          LEFT JOIN event_symptom es1 ON e.eventid = es1.eventid
      WHERE
          e.source = 0
          AND e.object = 0
          AND p.ugsetid = 1
          AND NOT EXISTS (
              SELECT 1
              FROM functions f1
              JOIN items i1 ON f1.itemid = i1.itemid
              JOIN host_hgset hh1 ON i1.hostid = hh1.hostid
              LEFT JOIN permission p1 ON p1.hgsetid = hh1.hgsetid
                  AND p1.ugsetid = 1
              WHERE f.triggerid = f1.triggerid
                AND i.itemid != f1.itemid
                AND p1.hgsetid IS NULL
          )
          AND NOT EXISTS (
              SELECT 1
              FROM event_suppress es
              WHERE es.eventid = e.eventid
          )
          AND NOT EXISTS (
              SELECT 1
              FROM event_symptom es
              WHERE es.eventid = e.eventid
          )
          AND EXISTS (
              SELECT 1
              FROM event_tag
              WHERE e.eventid = event_tag.eventid
                AND event_tag.tag = 'foo'
                AND event_tag.value = 'bar'
          )
          AND e.clock >= 1760360197
          AND e.clock <= 1762952197
          AND e.value = 1
      ORDER BY e.eventid DESC
      LIMIT 45001;
      
      

      Perhaps would be better like this:

      SELECT DISTINCT
          e.eventid,
          e.objectid,
          e.clock,
          e.ns,
          e.name,
          e.severity,
          es1.cause_eventid
      FROM
          functions f
          JOIN items i ON f.itemid = i.itemid
          JOIN host_hgset hh ON i.hostid = hh.hostid
          JOIN permission p ON hh.hgsetid = p.hgsetid
          JOIN events e ON e.objectid = f.triggerid
          LEFT JOIN event_symptom es1 ON e.eventid = es1.eventid
          LEFT JOIN event_suppress es ON e.eventid = es.eventid
      WHERE
          e.source = 0
          AND e.object = 0
          AND p.ugsetid = 1
          AND NOT EXISTS (
              SELECT 1
              FROM functions f1
              JOIN items i1 ON f1.itemid = i1.itemid
              JOIN host_hgset hh1 ON i1.hostid = hh1.hostid
              LEFT JOIN permission p1 ON p1.hgsetid = hh1.hgsetid
                  AND p1.ugsetid = 1
              WHERE f.triggerid = f1.triggerid
                AND i.itemid != f1.itemid
                AND p1.hgsetid IS NULL
          )
          AND es.eventid is null
          AND es1.eventid is null
          AND EXISTS (
              SELECT 1
              FROM event_tag
              WHERE e.eventid = event_tag.eventid
                AND event_tag.tag = 'foo'
                AND event_tag.value = 'bar'
          )
          AND e.clock >= 1760360197
          AND e.clock <= 1762952197
          AND e.value = 1
      ORDER BY e.eventid DESC
      LIMIT 45001;
      

            zabbix.dev Zabbix Development Team
            vso Vladislavs Sokurenko
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: