Blueflood

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 01:12, 27 февраля 2019.
Blueflood
Blueflood.png
Логотип Blueflood
Разработчики: Rackspace
Выпущена: 2013; 6 years ago (2013)
Постоянный выпуск: v2.0 / 16 August 2017 года; 2 years ago (2017-08-16)
Состояние разработки: Активное
Написана на: C
Операционная система: OS X и Linux
Локализация: Английский
Тип ПО: DBMS
Лицензия: Apache License
Веб-сайт blueflood.io

Blueflood - это система управления базами данных и мультитенантная распределенная система обработки метрик с высокой пропускной способностью и низкой задержкой, которая используется в Rackspace Metrics и в настоящее время используется в производстве командой Rackspace Monitoring и Rackspace Public Cloud для хранения метрик, созданных их системами.

О БД

Данные Blueflood могут использоваться для построения панелей мониторинга, генерации отчетов, графиков или для любого другого использования, включающего данные временных рядов. Он фокусируется на данных, близких к реальным, с данными, которые можно запросить за миллисекунды после приема.

Blueflood был создан командой Rackspace Monitoring в Rackspace для управления необработанными метриками, созданными в системе контроля Rackspace. Blueflood теперь в значительной степени продвигается командой Rackspace Metrics, которая предоставляет Blueflood-as-a-Service в качестве бесплатного сервиса. С момента создания продукта с открытым исходным кодом несколько других крупных компаний начали использовать данный инструмент.

Blueflood является открытым исходным кодом под лицензией Apache 2.0.

Описание СУБД на основе Cassandra
Модель первичной базы данных СУБД с временными рядами
Web-сайт Blueflood.io
Разработчик Rackspace
Первый выпуск 2013
Лицензия Открытый исходный код
Язык реализации Java
Серверные операционные системы Linux, OS X
Схема данных Предопределенная схема
API и другие методы доступа HTTP REST
Методы разделения Sharding
Методы репликации Выбираемый коэффициент репликации
Концепции согласованности Конечная согласованность

Немедленная согласованность

Структура

Данные хранятся с использованием Cassandra, чтобы сделать Blueflood отказоустойчивым и доступным. В отличие от предков, таких как CarbonDB или RRDTool, ваш кластер Blueflood может расширяться по мере роста ваших показателей. Просто добавьте узлы Cassandra.

Написанная на Java, Blueflood существует как кластер распределенных сервисов. Вы отправляете показатели в службу ingestion. Вы запрашиваете свои показатели из службы запросов. В фоновом режиме накопительные пакеты обрабатываются в автономном режиме, так что запросы на большие периоды времени возвращаются быстро. В фоновом режиме, накопительные пакеты обрабатываются в автономном режиме, так что запросы на большие периоды времени возвращаются быстро.

Функции

Доступные функции:

  • Загружает необработанные метрические точки данных в виде числовых, строковых или логических значений через интерфейсы Scribe или HTTP.
  • Сокращает необработанные числовые данные в агрегации за 5, 20, 60, 240 и 1440 минут, которые обеспечивают: минимальное, максимальное, среднее, дисперсию и количество представленных точек необработанных данных.
  • Поддерживает масштабное развертывание и развертывание в нескольких центрах обработки данных с большой степенью гибкости.
  • Поддерживает конфигурации высокой доступности. Blueflood может быть настроен с высокой степенью избыточности и отказоустойчивости.

Будущие возможности

Возможности, которые появятся в будущем:

  • Предварительно агрегированные накопления. Это позволит пользователям отправлять данные из агрегаторов метрик, таких как StatsD.
  • Лучшая поддержка запросов. В настоящее время любое агрегирование времени рендеринга должно быть применено к клиентской части.
  • Открытие метрики. Интеграция с Elasticsearch, позволит пользователям выполнять запросы. Это, как минимум, позволит использовать глобальную запись при запросе метрических данных.

Принцип работы

Cassandra - Blueflood использует Cassandra в качестве хранилища данных. Zookeeper - Обязанности по вычислению накопительных пакетов обрабатываются с помощью шардинга, управляемого через Zookeeper. Отдельные узлы могут отвечать за одну или несколько ролей.

  • Ingestion: узел будет отвечать за потребление данных через HTTP-интерфейс.
  • Rollup: узел будет выполнять вычисления с понижающей дискретизацией и суммировать необработанные данные, сохраняя агрегаты с более низким разрешением.
  • Query: узел будет обрабатывать входящие запросы на основе HTTP, возвращая необработанные или агрегированные данные для заданного временного окна.

Также можно настроить количество ресурсов, выделяемых для задач, связанных с каждой ролью, что дает пользователям полный контроль над оптимизацией Blueflood для их собственной уникальной конфигурации кластера и шаблонов использования.

CASSANDRA_HOST IP-адрес Cassandra seed. (Обязательно)
ELASTICSEARCH_HOST IP-адрес узла Elasticsearch. (Обязательно)
CASSANDRA_DRIVER Тип драйвера для подключения к C * - astyanax для экономичного протокола (рекомендуется для C * <2.1), dasastax для собственного протокола cql (рекомендуется для C *> 1.2)
MAX_ROLLUP_THREADS Максимальное количество потоков в метриках
MAX_CASSANDRA_CONNECTIONS Максимальное количество соединений с каждым узлом Cassandra
INGEST_MODE Стоит ли запускать сервис Ingest
ROLLUP_MODE Стоит ли запускать сервис Rollup
QUERY_MODE Стоит ли запускать сервис Query
LOG_LEVEL Уровень регистрации BF-сервисов
INITIAL_HEAP_SIZE Начальный размер кучи, выделяемой процессу BF.
MAX_HEAP_SIZE Максимальный размер кучи, выделяемой процессу BF.
GRAPHITE_HOST IP-адрес хоста Graphite - это монитор контейнера
GRAPHITE_PORT Линейный порт хоста Graphite для контроля контейнера
GRAPHITE_PREFIX Префикс для графических метрик.

Начало работы

Есть несколько разных способов, с которыми вы можете начать работу с Blueflood:

Способ 1: Docker

Предполагает установку git и docker-compose:

git clone https://github.com/rackerlabs/blueflood.git
cd blueflood/contrib/blueflood-docker-compose/
docker-compose up -d

Способ 2: Vagrant

Предполагая, что Vagrant и VirtualBox установлены:

mkdir blueflood_demo; cd blueflood_demo
vagrant init blueflood/blueflood; vagrant up


Источники

  1. Официальный сайт Blueflood // blueflood [2013-2018]. Дата обновления: 2015. URL: http://blueflood.io/ (дата обращения: 1.10.2018)
  2. GitHub Blueflood // github [2008-2018]. Дата обновления: 3.06.2018. URL: https://github.com/rackerlabs/blueflood (дата обращения: 1.10.2018)
  3. Detailed overview of the characteristics of Blueflood // db-engines [2012-2018]. URL: https://db-engines.com/en/system/Blueflood (дата обращения: 7.10.2018)
  4. Blueflood: A new Open Source Tool for Time Series Data at Scale // rackspace [1998-2018]. Дата обновления: 22.08.2018. URL: https://developer.rackspace.com/blog/blueflood-announcement/ (дата обращения: 7.10.2018)