Расширение Apache Cassandra
Расширение Apache Cassandra
Улучшение наблюдаемости Apache Cassandra
Обзор
Расширение мониторинга сервера Apache Cassandra JMX в Ключ-АСТРОМ предоставляет информацию об исключениях базы данных, неудачных запросах, производительности и многом другом.
Ключ-АСТРОМ автоматически обнаруживает все приложения и микросервисы, развёрнутые в вашей системе, и позволяет отслеживать, как они используют вашу базу данных. Он обеспечивает автоматическую сквозную трассировку вплоть до отдельного оператора базы данных, метрики сервера базы данных и аналитику логов. Ключ-АСТРОМ визуализирует зависимости приложения от базы данных для SQL и NoSQL баз данных, а также для облачных и самостоятельно размещённых баз данных. Он также диагностирует аномалии в реальном времени с помощью ИИ и определяет первопричину вплоть до медленно выполняющихся или ошибочных SQL-операторов. Глубокое понимание на уровне кода в сочетании с облачно-нативным мониторингом сервера базы данных поможет вам поддерживать надёжную производственную среду.
Если Cassandra работает недостаточно производительно или возникает проблема, Ключ-АСТРОМ немедленно сообщает вам об этом и показывает, какие ноды затронуты.
Это расширение JMX (Java Management Extension) для Ключ-АСТРОМ. JMX идеально подходит для мониторинга приложений, созданных на Java. Убедитесь, что вы отслеживаете процесс Cassandra, поскольку расширение не поддерживает сбор метрик со стороны клиента.
Варианты использования
- Понимание всех зависимостей ваших приложений от базы данных, какие операторы базы данных выполняются и их производительность.
- Улучшение производительности вашего приложения путём сокращения или оптимизации типичных шаблонов работы с базой данных, таких как проблема запроса 1+N.
- Понимание влияния ваших приложений на ресурсы базы данных.
- Понимание влияния нехватки ресурсов, блокировок или других проблем базы данных на ваше приложение путём наблюдения за самим сервером базы данных.
Требования
- Cassandra 2+
- Windows или Linux
Активация и настройка
Для клиентов базы данных Apache Cassandra:
- Если ваше клиентское приложение работает на виртуальной машине или физическом сервере, установите ЕдиныйАгент на него, чтобы начать.
- Если ваше клиентское приложение работает как рабочая нагрузка в Kubernetes или OpenShift, настройте Ключ-АСТРОМ на Kubernetes или OpenShift.
- Активируйте следующие функции ЕдиныйАгент для получения трассировки:
* Java CQL * Java Datastax Cql * Go CQL (gocql/gocql)
- Активируйте мониторинг логов для получения аналитики логов.
Для серверов базы данных Apache Cassandra:
- Если ваш сервер базы данных работает на виртуальной машине или физическом сервере, установите ЕдиныйАгент на него, чтобы начать.
- Активируйте расширение Cassandra JMX для получения аналитики здоровья и производительности сервера базы данных в сочетании с метриками и событиями. Выберите Добавить в среду.
- Активируйте мониторинг логов для получения полной аналитики логов.
Детали
Дашборд Обзор Cassandra JMX будет включён в расширение, где вы сможете увидеть обзор ваших метрик Cassandra JMX.
Кроме того, все метрики, собираемые расширением, будут добавлены на экран унифицированного анализа экземпляра группы процессов в трёх новых разделах: Исключения, Использование и Пул потоков. Убедитесь, что вы находитесь на новом экране для экземпляров групп процессов, чтобы увидеть их.
Все метрики также можно просмотреть с помощью визуализации данных.
Лицензирование и затраты
Использование расширения бесплатно. Вы платите только за данные, которые собирает расширение.
Расширение Apache Cassandra собирает пользовательские метрики, которые потребляют Davis Data Units (DDU) (классическая лицензия Ключ-АСТРОМ) или метрики в зависимости от вашей модели лицензирования.
Потребление зависит от количества отслеживаемых экземпляров.
Подписка на платформу Ключ-АСТРОМ
В подписке на платформу Ключ-АСТРОМ приём метрик потребляет метрики в соответствии с количеством принятых точек данных метрик.
Чтобы рассчитать приблизительное годовое потребление, примените следующую формулу: <количество точек данных метрик в минуту> * 60 минут * 24 часа * 365 дней.
Классическая лицензия Ключ-АСТРОМ
В классической модели лицензирования приём метрик потребляет Davis Data Units (DDU) со скоростью 0,001 DDU на точку данных метрики. Умножьте приведённую выше формулу для годовых точек данных на 0,001, чтобы оценить годовое использование DDU.
DDU, потребляемые этим расширением, имеют право на бесплатный уровень, включённый в каждый хост.
Стоимость DDU, указанная выше, не включает возможные события логов или пользовательские события, запускаемые расширением.
Наборы функций
При активации расширения с помощью конфигурации мониторинга вы можете ограничить мониторинг одним из наборов функций. Для корректной работы расширение должно собрать хотя бы одну метрику после активации.
В сильно сегментированных сетях наборы функций могут отражать сегменты вашей среды. Затем при создании конфигурации мониторинга вы можете выбрать набор функций и соответствующую группу АктивныйШлюз, которая может подключиться к этому конкретному сегменту.
Все метрики, не отнесённые ни к одному набору функций, считаются стандартными и всегда сообщаются.
Метрика наследует набор функций подгруппы, которая, в свою очередь, наследует набор функций группы. Кроме того, набор функций, определённый на уровне метрики, переопределяет набор функций, определённый на уровне подгруппы, который, в свою очередь, переопределяет набор функций, определённый на уровне группы.
cache
| Название метрики | Ключ метрики | Описание |
|---|---|---|
| KeyCache hit rate | cassandra.cache.keyCache.hits |
Частота попаданий в кэш ключей в секунду. |
| RowCache hit rate | cassandra.cache.rowCache.hits |
Частота попаданий в кэш строк в секунду. |
compaction
| Название метрики | Ключ метрики | Описание |
|---|---|---|
| Compaction pending tasks | cassandra.compaction.pendingTasks |
Количество задач компакции, находящихся в ожидании. |
| Compaction completed tasks | cassandra.compaction.completedTasks |
Количество завершённых задач компакции. |
| Compaction rate | cassandra.compaction.bytesCompacted |
Частота сжатых байтов в секунду. |
client-requests-write
| Название метрики | Ключ метрики | Описание |
|---|---|---|
| Write failure rate | cassandra.clientRequest.write.failures |
Частота сбоев записи в секунду. Сбой записи происходит, когда запрос на запись не может быть успешно завершён. Это может быть вызвано различными причинами, такими как тайм-ауты, недоступные реплики или другие проблемы в кластере Cassandra. |
| Write timeout rate | cassandra.clientRequest.write.timeout |
Частота тайм-аутов записи в секунду. Тайм-аут записи происходит, когда запрос на запись не может быть завершён в течение указанного времени. |
| Write unavailable rate | cassandra.clientRequest.write.unavailables |
Частота недоступности записи в секунду. Недоступность записи происходит, когда запрос на запись не может быть завершён из-за недоступных реплик. |
| Write latency rate | cassandra.clientRequest.write.latency.rate |
Частота задержек записи в секунду. |
| Write latency 95th percentile | cassandra.clientRequest.write.latency.95thPercentile |
95-й процентиль задержек записи. |
storage
| Название метрики | Ключ метрики | Описание |
|---|---|---|
| Exception count | cassandra.storage.exceptions |
Количество исключений хранилища. |
| Storage load | cassandra.storage.load |
Текущая нагрузка на систему хранения. |
| Storage total hints | cassandra.storage.totalHints |
Общее количество подсказок в системе хранения. |
column-family
| Название метрики | Ключ метрики | Описание |
|---|---|---|
| Live SSTable count | cassandra.columnFamily.liveSSTableCount |
Количество живых SSTable в семействе столбцов. |
client-requests-read
| Название метрики | Ключ метрики | Описание |
|---|---|---|
| Read failure rate | cassandra.clientRequest.read.failures |
Частота сбоев чтения в секунду. Сбой чтения происходит, когда запрос на чтение не может быть успешно завершён. Это может быть вызвано различными причинами, такими как тайм-ауты, недоступные реплики или другие проблемы в кластере Cassandra. |
| Read timeout rate | cassandra.clientRequest.read.timeout |
Частота тайм-аутов чтения в секунду. Тайм-аут чтения происходит, когда запрос на чтение не может быть завершён в течение указанного времени. |
| Read unavailable rate | cassandra.clientRequest.read.unavailables |
Частота недоступности чтения в секунду. Недоступность чтения происходит, когда запрос на чтение не может быть завершён из-за недоступных реплик. |
| Read latency rate | cassandra.clientRequest.read.latency.rate |
Частота задержек чтения в секунду. |
| Read latency 95th percentile | cassandra.clientRequest.read.latency.95thPercentile |
95-й процентиль задержек чтения. |
client-requests-rangeslice
| Название метрики | Ключ метрики | Описание |
|---|---|---|
| RangeSlice timeout rate | cassandra.clientRequest.rangeSlice.timeout |
Частота тайм-аутов RangeSlice в секунду. Тайм-аут RangeSlice происходит, когда запрос RangeSlice не может быть завершён в течение указанного времени. |
| RangeSlice failure rate | cassandra.clientRequest.rangeSlice.failures |
Частота сбоев RangeSlice в секунду. Сбой RangeSlice происходит, когда запрос RangeSlice не может быть успешно завершён. |
| RangeSlice unavailable rate | cassandra.clientRequest.rangeSlice.unavailables |
Частота недоступности RangeSlice в секунду. Недоступность RangeSlice происходит, когда запрос RangeSlice не может быть завершён из-за недоступных реплик. |
| RangeSlice latency rate | cassandra.clientRequest.rangeSlice.latency.rate |
Частота задержек RangeSlice в секунду. |
| RangeSlice latency 95th percentile | cassandra.clientRequest.rangeSlice.latency.95thPercentile |
95-й процентиль задержек RangeSlice. |
thread-pool
| Название метрики | Ключ метрики | Описание |
|---|---|---|
| Read stage pending tasks | cassandra.threadPool.request.read.pending.fix |
Количество задач в стадии чтения, находящихся в ожидании. |
| Read stage active tasks | cassandra.threadPool.request.read.active.fix |
Количество активных задач в стадии чтения. |
| Read stage blocked tasks total | cassandra.threadPool.request.read.totalBlocked.fix |
Общее количество заблокированных задач в стадии чтения. |
| Read stage currently blocked tasks | cassandra.threadPool.request.read.currentlyBlocked.fix |
Количество текущих заблокированных задач в стадии чтения. |
| ReadRepair stage pending tasks | cassandra.threadPool.request.readRepair.pending.fix |
Количество задач в стадии ReadRepair, находящихся в ожидании. |
| ReadRepair stage active tasks | cassandra.threadPool.request.readRepair.active.fix |
Количество активных задач в стадии ReadRepair. |
| ReadRepair stage blocked tasks total | cassandra.threadPool.request.readRepair.totalBlocked.fix |
Общее количество заблокированных задач в стадии ReadRepair. |
| ReadRepair stage currently blocked tasks | cassandra.threadPool.request.readRepair.currentlyBlocked.fix |
Количество текущих заблокированных задач в стадии ReadRepair. |
| Mutation stage pending tasks | cassandra.threadPool.request.mutation.pending.fix |
Количество задач в стадии мутации, находящихся в ожидании. |
| Mutation stage active tasks | cassandra.threadPool.request.mutation.active.fix |
Количество активных задач в стадии мутации. |
| Mutation stage blocked tasks total | cassandra.threadPool.request.mutation.totalBlocked.fix |
Общее количество заблокированных задач в стадии мутации. |
| Mutation stage currently blocked tasks | cassandra.threadPool.request.mutation.currentlyBlocked.fix |
Количество текущих заблокированных задач в стадии мутации. |