Ad Widget

Collapse

Zabbix API: Max query size exceeded

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Alex_UUU
    Senior Member
    • Dec 2018
    • 541

    #1

    Zabbix API: Max query size exceeded

    Коллеги, приветствую.

    Вот потребовалось мне через АПИ вытащить все итемы с последними значениями, чтобы посмотреть, правильные ли они (например для текстового ЭД проверяем в триггере есть ли там Ок, а там ошибка скрипта ну и т.д.)
    ну и через АПИ вытаскиваю

    Code:
    Request: In JSON format:
    {"auth":"fc5b01087433aeb3707ee7a6c558c253","params ":{"filter":{"value_type":[1,4]},"output":["hostid","lastclock","lastvalue"]},"jsonrpc":"2.0","id":1,"method":"item.get"}
    ** POST https://zabbix.umnikov.ru/api_jsonrpc.php ==> 200 OK (1s)
    Типа все ок. А там:

    Code:
    Decoded content from POST:
    {"jsonrpc":"2.0","error":{"data":"DB::Exception : Syntax error: failed at position 262142 ('2148086'): 2148086,2148087,2148088,2148089,2148090,2148091,21 48092,2148093,2148094,2148095,2148096,2148097,2148 100,2148103,2148104,2148646,2148647,2148648,214864 9,2148650,. Max query size exceeded: '2148086'","message":"Application error.","code":-32500},"id":1}
    Error received from server in reply to JSON request: DB::Exception: Syntax error: failed at position 262142 ('2148086'): 2148086,2148087,2148088,2148089,2148090,2148091,21 48092,2148093,2148094,2148095,2148096,2148097,2148 100,2148103,2148104,2148646,2148647,2148648,214864 9,2148650,. Max query size exceeded: '2148086'
    Ясно, что значений много (около 50 000) и длина может быть разная.
    Есть ли возможность ограничить?
    Параметр лимит режет только с одной стороны. параметров "Начало" и "конец" нет.
    Или я не заметил?
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    #2
    Мне кажется, что метод item.get вернёт вам конфигурацию элементов данных, а не последние значения.
    Вероятно, вам нужен метод history.get. Там, в частности, кроме параметра limit, также поддерживаются параметры time_from и time_till; однако, надо иметь в виду, что нужно явно указывать (целочисленным параметром history) тип забираемых данных - целочисленное/дробное/строковое/etc.

    Comment

    • Semiadmin
      Senior Member
      • Oct 2014
      • 1625

      #3
      Самое последнее значение item.get возвращает, но, видимо, их и впрямь слишком много. Я бы в этом случае ограничивал, например, по принадлежности к группе хостов или даже к хосту.

      Comment

      • Alex_UUU
        Senior Member
        • Dec 2018
        • 541

        #4
        Originally posted by Kos
        Мне кажется, что метод item.get вернёт вам конфигурацию элементов данных, а не последние значения.
        Вероятно, вам нужен метод history.get. Там, в частности, кроме параметра limit, также поддерживаются параметры time_from и time_till; однако, надо иметь в виду, что нужно явно указывать (целочисленным параметром history) тип забираемых данных - целочисленное/дробное/строковое/etc.
        item.get прекрасно возвращает последнее значение. И этим он лучше history.get.



        Originally posted by Semiadmin
        Самое последнее значение item.get возвращает, но, видимо, их и впрямь слишком много. Я бы в этом случае ограничивал, например, по принадлежности к группе хостов или даже к хосту.
        Плохо то, что можно и на одном хосте наткнуться на это. Был бы лимит от и до, в БД как правило есть это limit 1000,2000 было бы прекрасно.

        Comment

        Working...