def METHOD_NAME(self, zbx):
    # execute query on default database
    result = Pooler.query("""
    SELECT '_upd' as type,
           sum(calls) as calls,
           sum(total_time) as totaltime
    FROM pg_stat_statements
    where dbid = (select datid from pg_stat_database where datname = 'sparkmes')
      and left(query,8) = 'SELECT *' and query ~* '_UPDATE'
    union all
    SELECT '_sel' as type,
           sum(calls) as calls,
           sum(total_time) as totaltime
    FROM pg_stat_statements
    where dbid = (select datid from pg_stat_database where datname = 'sparkmes')
      and left(query,8) = 'SELECT *' and not (query ~* '_UPDATE')
    union all
    select substring(query,15,4) as type, sum(calls) as calls, sum(total_time) as totaltime
    FROM pg_stat_statements
    where dbid = (select datid from pg_stat_database where datname = 'sparkmes')
      and (left(query,27) = 'SELECT * FROM firms_select('
           OR
           left(query,26) = 'SELECT * FROM ip_select((('
          )
    group by 1
    """, 'sparkmes')
    # send a resulting value to zabbix
    for idx, item in enumerate(self.Items):
        key, zbxkey, val, delta = item[0], item[1], 0, item[4]
        for row in result:
            if key.endswith(row[0]):
                val = row[item[5]]
                if self.Yprev[idx] is None:
                    self.Yprev[idx] = float(val)
                self.Yprev[idx] = round(
                    self.Coef * float(val) + (1 - self.Coef) * self.Yprev[idx], 1)
                break
            else:
                continue
        else:
            if self.Yprev[idx] is not None:
                # исходных данных нет, уменьшаем значение
                self.Yprev[idx] = self.Yprev[idx] / 3
        if self.Yprev[idx] is None or self.Yprev[idx] is not None and self.Yprev[idx] <= 0:
            self.Yprev[idx] = None
        else:
            if val is not None:
                if item[6] == Plugin.VALUE_TYPE.numeric_float:
                    zbx.send('{0}[{1}]'.format(
                        zbxkey, key), float(val), delta)
                    self.log.info('{0}[{1}] '.format(
                        zbxkey, key) + str(val))
                else:
                    zbx.send('{0}[{1}]'.format(
                        zbxkey, key), int(val), delta)
                    self.log.info('{0}[{1}] '.format(
                        zbxkey, key) + str(val))
                zbx.send('{0}[{1}_Yprev]'.format(zbxkey, key),
                         float(self.Yprev[idx]), delta)
                self.log.info('{0}[{1}_Yprev] '.format(
                    zbxkey, key) + str(self.Yprev[idx]))
            # debug...
            # if key == 'calls_upd':