Релиз InfluxDB 0.9

    image

    Удивительно, но об этой подающей большие надежды Time Series DB довольно мало статей на хабре, всего 10, причём она упоминается там вскользь. А ведь версия 0.9 вышла довольно давно, больше месяца назад и была весьма ожидаемой. Итак, что же нового?

    Новые фичи


    Новое API

    Обращения к API стало куда проще вклинивать в уже имеющиеся приложения, благодаря отказу от передачи данных в виде json. Это было, конечно круто и всё такое, но вот вручную отправить метрику с помощью curl выходило довольно проблематично. Сейчас отправка в самом простом виде выглядит следующим образом:

    curl "http://influxdb:8086/write?db=база_данных" -d "метрика value=значение"
    


    Старое API из версии 0.8 более не поддерживается, что, наверное и к лучшему.

    non_negative_derivative()


    Очень полезная агрегирующая функция, которая скрывает отрицательные значения, что спасает графики прирастания растущих, но обнуляющихся величин от внезапных огромных пиков идущих вниз. (пример такой метрики — счётчик missed / dropped пакетов на сетевом интерфейсе в Linux). Когда я только знакомился с проектом, это пожалуй первое что я пытался сделать и убил довольно много времени, пока не узнал от знакомого про наличие этой функции в grafite и не наткнулся на задачу на github о добавлении этой функции в influxdb 0.9.

    Прочее

    • Поддержка протокола grafite. Если уж решились стать «убийцей grafite» нужно думать как grafite. Скорее всего это здорово поможет ребятам хотя бы заставить людей попробовать их базу.
    • Новый web UI. Здесь в принципе мало что изменилось, в основном вёрстка.


    Сейчас ребята готовят к релизу версию 0.9.2, в которой:

    • Сделали конфигурируемым таймауты между записями на диск. Вот эта штука довольно важна, на мой взгляд, так 0.9.0 выдавала довольно много дискового I/O (за день около 100гб c трёх серверов, шлющих данные об интерфейсах, CPU, памяти и дисковом пространстве через collectd), думаю хоть какая-то агрегация будет полезна. До этого 5 секунд таймаута были захардкодены.
    • Снизили высокую нагрузку на CPU в некоторых случаях.


    Помимо всего прочего недавно команда influxdb подготовила два связанных с influxdb проекта:

    Telegraf — сборщик метрик для InfluxDB на Go
    Chronograf — визуализатор метрик для InfluxDB

    Источники


    ChangeLog
    Release Notes
    Поделиться публикацией

    Похожие публикации

    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 26

      0
      Оно чертовски сырое, базовый функционал не пашет.
      Пока можно ничего про это не писать.

      {s: `SELECT field1 FROM myseries ORDER BY DESC`, err: `only ORDER BY ASC supported at this time`}

      выдержка из тестов.
        0
        А зачем вообще DESC для метрик, если использовать их для графиков? (я не фанатик influxdb (хотя, начал сомневаться), просто сейчас попытался представить сценарий использования и не смог).
          0
          Набор вариантов использования не исчерпывается графиками. Система мониторинга, нужно выбрать последние 3 значения для вычисления состояния сервиса.

          Ну и по текущему состоянию.
          Примеры запросов -> ответов:
          curl -G 'http://fixmon:8086/query?db=fixmon&pretty=true' --data-urlencode «q=SELECT last(time) from system»
          {
          «results»: [
          {
          «error»: «unknown field or tag name in select clause: time»
          }
          ]
          }%
          time есть, но его нет

          curl -G 'http://fixmon:8086/query?db=fixmon&pretty=true' --data-urlencode «q=SELECT last(free) from system»
          {
          «results»: [
          {
          «series»: [
          {
          «name»: «system»,
          «columns»: [
          «time»,
          «last»
          ],
          «values»: [
          [
          «1970-01-01T00:00:00Z»,
          1.28894459e+08
          ]
          ]
          }
          ]
          }
          ]
          }%
          Опять косяк, время выставлено на начало эпохи(в коде куча заглушек + баги)

          Таких примеров на самом деле очень много.
            0
            Как вам удалось записать метрику без времени? Или как-то само вышло?
              0
              Время есть, только оно не может быть полем для запроса, и в него может попадать мусор
        0
        to chemistmail: Сырое, да. Но я использую его с ранних версий и жизни без не представляю. Слишком заманчива идея писать сырые данные и постфактум решать, что именно я хочу проанализировать. Может быть для среднестатистического веб-проекта или уже устоявшегося продукта оно не так здорово как мне кажется, но я использую influxdb, фактически, как профайлер и это прекрасно, скажу я вам (там же и логи).
          0
          Аналогично, слежу с его помощью за временем исполнения скриптов в проекте, позволяет очень быстро вылавливать тормоза.
            +1
            Способов записать сырые данные и потом проанализировать масса. Вся фишка influxdb в SQL запросах, а вот это к сожалению находится весьма в плачевном состоянии. Сам проект интересен, но не более. В общем когда они реализуют тот набор SQL который они заявили, тогда можно смотреть, а сейчас это игрушка не более. Это мое сугубо личное мнение.
              0
              С первой частью согласен, а вот про игрушку даже не знаю — той части агрегирующих функций, которая работает вполне хватает для моих скромных потребностей, заводится дело с полпинка. Буду считать её сравнительно хорошо работающей игрушкой. :)
                0
                Какие, например? Я с радостью заменю influxdb на что то менее сырое и более удобное.
                  0
                  Зависит от объемов данных, но тот же opentsdb гораздо более зрелый проект.
                  opentsdb.net/docs/build/html/user_guide/query/examples.html

                  Но это не так наглядно и удобно как SQL + сложнее в установке и требования к окружению совсем другие.

                  www.anchor.com.au/blog/2014/06/vaultaire-ceph-based-immutable-tsdb
                  Это другой вариант от австралийцев.

                  А если объемы небольшие, то можно писать в текст и гонять по нему sql запросы
                  keithsheppard.name/txt-sushi

                  + Есть еще postgres с его hstore + их последние фишки в www.postgresql.org/about/news/1596
                  и прочее.
                    0
                    Думаете я не гуглил?) Гуглил и даже был готов сесть и написать самостоятельно. Но решил дать шанс этой бд.
                    Тот же OpenTSDB не умеет гистограмы, перцентили и прочие функции над данными выполнять, которые умеет influxdb. А это самое главное. Запросы можно хоть на брейнфаке слать; в частности, у меня на клиенте транслятор с «моего языка запросов» (назовем это так, на самом деле просто YAML конфиг) на «SQL» который использует influxdb. Конечно, признаюсь, я на клиенте кое какие метрики считаю т.к. в инфлюксе их нет, но делаю это не с сырыми данными.
                    А вот за vaultaire — спасибо! Посмотрю повнимательнее. Он на хаскелле, и это уже само по себе здорово.
                      0
                      Я смотрел opentsdb, очень не тривиален в установке. Основной плюшк, на мой взгляд, интеграция с hdfs. Но с дургой стороны, дисковое пространство не так дорого.
              0
              А windows версию сделали?
                0
                Но… зачем?
                Делать не делали, но говорят что собираться под windows должно, ибо на чистом Go.
                  0
                  Я разрабатываю платформу, которая идёт под linux, osx и windows. Моя среда разработки Windows.
                  InfluxDB классная штука, но не камильфо урезать функционал под виндой…
                  Я смог собрать под Windows. При запуске посыпались ошибки, а это было выше моих сил, а главное времени. :(
                0
                Было бы интересно увидеть сравнение с Prometheus.
                  0
                  prometheus.io/docs/introduction/comparison

                  Они сами давно уже всё написали :)
                    0
                    Кстати, как раз в выходные планировал активно Prometheus прощупать, а на следующих OpenTSDB.
                    Глядишь — действительно обзор и сравнение всех этих новомодных штук накидаю :)
                      0
                      Одно дело, когда разработчики сравнивают, а другое дело, когда пользователи :)
                      Интересно было бы прочитать.
                        0
                        Удалось Opentsdb пощупать?
                          0
                          Суперпрокрастинация одолела, простите.
                            0
                            Жаль, было бы очень интересно. У нас не получилось ее завести.
                      0
                      А у далось заженить с Grafana influxdb 0.9.2?

                      Я вполне нормально выдераю данные, например в том же chronograf, а вот тот же запрос в графане не шуршит.
                        0
                        А с какими конкретно запросами траблы?
                        Я сильно нетривиальных не писал, но вроде работала связка, рисовала всё.
                          0
                          я вчера уже разобрался, у меня была ошибка на другом уровне. Никак не получалось получить данные из grafana.

                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                      Самое читаемое