Мониторинг#
Введение#
Под мониторингом кластера DataGrid понимается мониторинг каждого узла топологии (как серверных, так и клиентских).
Основной задачей мониторинга является отслеживание критически важных атрибутов системы и оповещение администраторов при наличии проблем.
Помимо мониторинга кластера рекомендуется производить мониторинг JVM и ОС, в рамках которых происходит запуск DataGrid.
В DataGrid существует несколько механизмов мониторинга:
Legacy;
New Metrics System;
Системные представления (System Views).
Legacy#
Под Legacy понимают подход публикации метрик, который использовался до версии DataGrid 2.8.
Метрики при данном подходе публикуются преимущественно через JMX.
При данном подходе разработчик сам определяет:
формат имени метрики;
тип метрики;
способ публикации.
Доступ к метрикам осуществляется через JMX.
Архитектура legacy-системы#
Через JMX доступно следующее дерево групп метрик:
Имя группы |
Описание |
|---|---|
|
Метрики PDS (Persistent Data Store) |
|
Свойства Timeout для SQL |
|
Метрики системных потоков |
|
Свойства Baseline |
|
Информация об подключенных тонких клиентах |
|
Метрики кеш-групп |
|
Метрики региона данных (Data Region) |
|
Дополнительные свойства PDS |
|
Информация об ключах безопасности |
|
Информация об идентификации кластера |
|
Метрики локального узла DataGrid и кластера DataGrid |
|
Метрики различных подсистем (SPI) DataGrid |
|
Метрики транзакций |
|
Настройки свойств транзакций (Timeout/Threshold) |
|
Метрики плагина безопасности |
|
Метрики кеша |
New Metrics System#
Начиная с версии DataGrid 2.8, доступен новый механизм сбора метрик — New Metrics System. Он заменяет собой старую систему сбора метрик — Legacy. Данный механизм доступен и в DataGrid.
У каждой метрики в системе есть название и значение, которое она возвращает. Это значение может быть представлено в виде переменных типов long, String или double, либо в виде Java-объекта. Некоторые метрики представлены в виде гистограмм.
Благодаря появлению New Metrics System, стало возможным экспортировать метрики, используя различные технологии, например:
JMX;
SQL View;
Prometheus (HTTP);
OpenCensus.
Примечание
В New Metrics System предусмотрена возможность создания пользовательских экспортеров при помощи интерфейса MetricExporterSpi.
Архитектура New Metrics System#
В New Metrics System применены следующие решения относительно архитектуры:
В отличие от legacy-системы метрики в New Metrics System локальные. Они отражают состояние конкретного узла, на котором выполняется мониторинг.
Данный подход обусловлен тем, что при использовании глобальных метрик DataGrid занимался подсчетом метрики для всего кластера, и это было затратной операцией, так как кластер может состоять из множества узлов.
В New Metrics System используется иерархическая структура метрик.
Использование такой системы обусловлено наличием в DataGrid множества различных подсистем (SPI) на разных уровнях. Каждая из этих подсистем имеет определенный набор метрик. Среди этих подсистем есть те, которые обладают собственной иерархией, например, кеш. Метрики кеша собираются отдельно для каждого кеша, а не для всех сразу.
Был разработан стандарт названия метрик. Он основан на иерархической структуре метрик:
<registry_name>.<metric_name>.Пример
tx.LastCommitTimeгде:
tx— имя реeстра;LastCommitTime— имя метрики.
В New Metrics System доступно следующее дерево групп метрик:
Имя реeстра |
Описание |
|---|---|
|
Метрики кеш-процессора |
|
Метрики кеша |
|
Метрики кеш-группы |
|
Метрики коннектора тонкого клиента |
|
Метрики кластера |
|
Метрики Communication SPI |
|
Метрики вычислительных задач |
|
Метрики локального узла |
|
IO метрики Communication SPI |
|
IO метрики PDS |
|
IO метрики региона данных (Data Region) |
|
IO метрики Discovery |
|
IO метрики кеш-группы |
|
IO метрики сортированных индексов |
|
Метрики PME |
|
Метрики коннектора тонкого REST-клиента |
|
Метрики безопасности |
|
Метрики снепшотов |
|
Метрики восстановления из снепшота |
|
Системные метрики |
|
Метрики кеша SQL-парсера |
|
Метрики пользовательских SQL-запросов |
|
Метрики системных потоков |
|
Метрики транзакций |
Настройка#
Конфигурация экспортеров и включение метрик в New Metrics System#
Важно
При включенном плагине безопасности трафик оборачивается в SSL и включается двухфакторная аутентификация. Для сбора метрик необходимо настроить HTTPS-соединение с передачей учетных записей.
Подробнее о плагине безопасности написано в подразделе «Плагин безопасности для DataGrid» раздела «Безопасность и аудит».
Для включения возможности экспорта метрик укажите в конфигурации класса IgniteConfiguration конкретный экспортер (интерфейс metricExporterSpi), который должна использовать подсистема метрик:
<bean class="org.apache.ignite.configuration.IgniteConfiguration">
<property name="metricExporterSpi">
<list>
<bean class="org.apache.ignite.viewer.IgniteHttpMetricsExporterSpi"/>
<bean class="org.apache.ignite.spi.metric.jmx.JmxMetricExporterSpi"/>
<bean class="org.apache.ignite.spi.metric.log.LogExporterSpi"/>
<bean class="org.apache.ignite.spi.metric.opencensus.OpenCensusMetricExporterSpi"/>
</list>
</property>
</bean>
IgniteConfiguration cfg = new IgniteConfiguration();
cfg.setMetricExporterSpi(new JmxMetricExporterSpi());
Ignite ignite = Ignition.start(cfg);
Экспортер метрик ignite-http-metrics-exporter#
ignite-http-metrics-exporter — это библиотека, позволяющая публиковать метрики мониторинга DataGrid на HTTP-странице. Метрики публикуются в формате, совместимом с системой мониторинга Prometheus.
Примечание
Библиотека может быть использована в случаях, когда нет возможности использовать технологию JMX.
Установка#
Внимание
ignite-http-metrics-exporter имеет зависимость от библиотек ignite-rest-http. После развертывания и перед запуском DataGrid проверьте и убедитесь, что библиотеки ignite-rest-http установлены и запускаются вместе с DataGrid.
<DataGrid lib path> — путь к библиотекам DataGrid.
Для установки библиотеки ignite-http-metrics-exporter скопируйте или перенесите директорию ignite-http-metrics-exporter из директории с дополнительными библиотеками (<DataGrid lib path>/libs/optional) в директорию с библиотеками, используемыми для запуска DataGrid (<DataGrid lib path>/libs).
Пример
cp -r <DataGrid lib path>/libs/optional/ignite-http-metrics-exporter копируется в <DataGrid lib path>/libs/.
Настройка#
Настройка ignite-http-metrics-exporter позволяет предопределять HTTP-порт, на котором будут публиковаться метрики и ссылки (endpoint) с публикуемыми метриками.
Настройка HTTP-порта
Для настройки HTTP-порта объявите опцию port в классе org.apache.ignite.viewer.IgniteHttpMetricsExporterSpi:
<bean class="org.apache.ignite.configuration.IgniteConfiguration">
<property name="metricExporterSpi">
<bean class="org.apache.ignite.viewer.IgniteHttpMetricsExporterSpi">
<property name="port" value="8081"/>
</bean>
</property>
</bean>
Если порт не задан, будет использован порт по умолчанию: 8081.
Дополнительно порт можно задать в качестве JVM-опции или переменной окружения. Для этого укажите требуемый порт в переменной http_metrics_exporter.port. Если порт указан в нескольких местах, библиотека будет использовать порт по следующей схеме приоритетов:
0 — конфигурационный файл;
1 — JVM-опция;
2 — переменная окружения.
Где 0 — наивысший приоритет, а 2 — наименьший.
Настройка конечных точек (endpoints)
Для настройки конечных точек укажите требуемый реестр метрик и их конечный endpoint в конфигурации, как показано ниже. Категорию можно указывать как в виде списка, так и в виде регулярного выражения.
Для указания списка используется класс org.apache.ignite.viewer.config.NamesListGroup.
Для указания регулярного выражения используется класс org.apache.ignite.viewer.config.RegExpGroup.
Пример конфигурации
<property name="metricExporterSpi">
<list>
<bean class="org.apache.ignite.spi.metric.jmx.JmxMetricExporterSpi"/>
<bean class="org.apache.ignite.viewer.IgniteHttpMetricsExporterSpi">
<property name="port" value="8081"/>
<property name="globalLabels">
<list>
<bean class="org.apache.ignite.viewer.config.Label">
<constructor-arg index="0" value="globalLabel" />
<constructor-arg index="1" value="123"/>
</bean>
</list>
</property>
<property name="groups">
<list>
<bean class="org.apache.ignite.viewer.config.RegExpGroup">
<property name="context" value="/all"/>
<property name="regExp" value=".*"/>
<property name="labels">
<list>
<bean class="org.apache.ignite.viewer.config.Label">
<constructor-arg index="0" value="groupLabel" />
<constructor-arg index="1" value="value" />
</bean>
</list>
</property>
</bean>
<bean class="org.apache.ignite.viewer.config.RegExpGroup">
<property name="context" value="/threadPools"/>
<property name="regExp" value="threadPools\..*"/>
</bean>
<bean class="org.apache.ignite.viewer.config.NamesListGroup">
<property name="context" value="/pme"/>
<property name="names">
<value>pme</value>
</property>
</bean>
<bean class="org.apache.ignite.viewer.config.NamesListGroup">
<property name="context" value="/sql"/>
<property name="names">
<value>sql</value>
</property>
</bean>
</list>
</property>
</bean>
</list>
</property>
где context — произвольное имя, которое впоследствии будет указываться как часть URL для сбора метрик. Для выбора групп метрик используется одно из свойств — names или regExp:
names— точное имя реестра (подробная информация содержится в подразделе «Метрики New Metrics System»);regExp— имя реестра, которое можно найти через регулярное выражение.
Каждое свойство context описывает конечный endpoint публикуемых метрик, а свойства regExp и names описывают искомый реестр. Доступ к метрикам осуществляется по адресу: http://ip:port/context, где:
ip— IP-адрес узла DataGrid;port— порт дляignite-http-metrics-exporter;context— настроенныйcontextдля метрик.
Свойства labels и globalLabels
У классов org.apache.ignite.viewer.config.RegExpGroup и org.apache.ignite.viewer.config.NamesListGroup, указанных в конфигурации выше, есть свойство labels для генерации имен метрик с пользовательскими метками.
Пример конфигурации свойства labels
<bean class="org.apache.ignite.viewer.config.RegExpGroup">
<property name="context" value="/all"/>
<property name="regExp" value=".*"/>
<property name="labels">
<list>
<bean class="org.apache.ignite.viewer.config.Label">
<constructor-arg index="0" value="groupLabel" />
<constructor-arg index="1" value="value" />
</bean>
</list>
</property>
</bean>
При указании данного свойства в именах каждой метрики для данного context будет проставляться пользовательская метка.
У класса org.apache.ignite.viewer.IgniteHttpMetricsExporterSpi есть свойство globalLabels для генерации имен метрик с пользовательскими метками.
Пример конфигурации свойства globalLabels
<property name="metricExporterSpi">
<list>
<bean class="org.apache.ignite.spi.metric.jmx.JmxMetricExporterSpi"/>
<bean class="org.apache.ignite.viewer.IgniteHttpMetricsExporterSpi">
<property name="port" value="8081"/>
<property name="globalLabels">
<list>
<bean class="org.apache.ignite.viewer.config.Label">
<constructor-arg index="0" value="globalLabel" />
<constructor-arg index="1" value="123"/>
</bean>
</list>
</property>
</bean>
</list>
</property>
При указании данного свойства в именах каждой метрики для каждого context будет проставляться пользовательская метка.
Примеры метрик:
Со свойством
globalLabels:sys_ThreadCount{globalLabel="value"} 50.Со свойствами
globalLabelsиlabels:sys_ThreadCount{globalLabel="value", groupLabel="value"} 50.
Данные свойства не исключают, а дополняют друг друга.
Фильтр метрик#
С помощью свойства exportFilter можно задать фильтр регистров метрик, которые будут экспортироваться.
В поставку входит реализация фильтра на основе регулярного выражения — RegexpMetricFilter. Он позволяет экспортировать только те регистры метрик, которые удовлетворяют и соответствуют заданному регулярному выражению.
Для включения фильтрации добавьте в Spring XML конфигурацию экспортера метрик следующий блок:
<property name="exportFilter">
<bean class="org.apache.ignite.spi.metric.RegexpMetricFilter">
<constructor-arg name="regNameRegex" value="<reg-exp>"/>
</bean>
</property>
где <constructor-arg name="regNameRegex" value="<reg-exp>"/> — параметр задания регулярного выражения для фильтрации регистров метрик; регулярное выражение указывается вместо <reg-exp>.
Пример включения фильтрации метрик, начинающихся с other, для экспортера LogExporterSpi
<property name="metricExporterSpi">
<bean class="org.apache.ignite.spi.metric.log.LogExporterSpi">
<property name="exportFilter">
<bean class="org.apache.ignite.spi.metric.RegexpMetricFilter">
<constructor-arg name="regNameRegex" value="other.*"/>
</bean>
</property>
<property name="period">
<util:constant static-field="org.apache.ignite.internal.metric.AbstractExporterSpiTest.EXPORT_TIMEOUT"/>
</property>
</bean>
</property>
Плагин MetricsAggregationPluginProvider#
Для агрегации метрик с серверных узлов и толстых клиентских узлов кластера в DataGrid можно использовать плагин MetricsAggregationPluginProvider.
Конфигурация плагина MetricsAggregationPluginProvider
<bean class="com.sbt.ignite.metrics.MetricsAggregationPluginProvider">
<property name="configuration">
<bean class="com.sbt.ignite.metrics.MetricsAggregationPluginConfiguration">
<property name="metricsConfigurations">
<list>
<bean class="com.sbt.ignite.metrics.MetricsAggregationConfiguration">
<property name="aggregateName" value="txCommitsDEMO"/>
<property name="metricName" value="tx.txCommits"/>
</bean>
<bean class="com.sbt.ignite.metrics.MetricsAggregationConfiguration">
<property name="aggregateName" value="txRollbacksDEMO"/>
<property name="metricName" value="tx.txRollbacks"/>
</bean>
</list>
</property>
<property name="expireTime" value="30000"/>
</bean>
</property>
</bean>
В параметр pluginProviders добавляется новый плагин MetricsAggregationPluginProvider, в котором указываются:
метрики, которые нужно собирать;
публикуемые имена метрик;
expireTime— интервал сбора указанных метрик.
После настройки плагина метрики будут публиковаться с помощью MetricRegistry, то есть будут по умолчанию доступны через любой выбранный пользователем metricExporter.
Важно
Для сбора метрик на толстых клиентах нужно включить peerClassLoading или добавить в classpath приложения JAR-файл плагина ignite-metrics-agg-plugin-xx.x.x.jar (где xx.x.x — версия DataGrid).
Метрики#
Базовые задачи мониторинга в DataGrid включают в себя метрики. Для доступа к метрикам существует несколько подходов:
использование New Metrics System;
доступ к метрикам из кода;
использование Системных представлений.
Виды метрик в DataGrid#
Метрики в DataGrid бывают двух видов:
глобальные;
относящиеся к определенному узлу;
относящиеся к кешам.
Глобальные метрики#
Глобальные метрики предоставляют общую информацию о кластере, например о количестве узлов и состоянии кластера.
Данная информация доступна на любом из узлов кластера.
Метрики, относящиеся к определенному узлу#
Данный вид метрик предоставляет информацию о конкретном узле кластера, на котором администратор запрашивает метрики. К примеру, такие метрики предоставляют информацию, касающуюся:
потребления памяти;
региона данных;
размера WAL-журнала;
размера очереди и т. д.
Метрики, относящиеся к кешам#
Метрики, относящиеся к кешам, могут быть как глобальными, так и относиться к определенному узлу.
Пример
Общее количество записей — это глобальная метрика, и получить ее можно на любом узле.
Также можно получить количество записей в кеше определенного узла, но в этом случае метрика будет относиться к определенному узлу.
Включение метрик в DataGrid#
Внимание
Сбор метрик — затратная операция, которая может привести к снижению производительности приложения. По этой причине некоторые метрики по умолчанию отключены.
Для доступа к метрикам по JMX включите возможность использования удаленного подключения к JVM:
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=1098
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
Также рекомендуется отключать отображение CLASS LOADER ID в MBean-путях:
-DIGNITE_MBEAN_APPEND_CLASS_LOADER_ID=false`
Внимание
Если в рамках одной JVM происходит запуск нескольких экземпляров DataGrid, отключать отображение CLASS LOADER ID не рекомендуется.
Включение кеш-метрик#
Для включения кеш-метрик необходимо использовать любой из указанных ниже методов для каждого кеша, для которого необходим мониторинг:
<property name="cacheConfiguration">
<list>
<bean class="org.apache.ignite.configuration.CacheConfiguration">
<property name="name" value="mycache"/>
<!-- Включение статистики для кеша. -->
<property name="statisticsEnabled" value="true"/>
</bean>
</list>
</property>
IgniteConfiguration cfg = new IgniteConfiguration();
CacheConfiguration cacheCfg = new CacheConfiguration("test-cache");
// Включение статистики для кеша.
cacheCfg.setStatisticsEnabled(true);
cfg.setCacheConfiguration(cacheCfg);
// Запустите узел.
Ignite ignite = Ignition.start(cfg);
var cfg = new IgniteConfiguration
{
CacheConfiguration = new[]
{
new CacheConfiguration("my-cache")
{
EnableStatistics = true
}
}
};
var ignite = Ignition.Start(cfg);
Для каждого кеша на узле DataGrid создает два JMX Bean:
Bean, содержащий информацию о кеше на определенном узле.
Bean, содержащий общую информацию о кешах всех узлов кластера.
Включение метрик для регионов данных#
Метрики регионов данных отражают информацию о регионах данных и включают в себя информацию об объеме памяти и размере хранилища в регионе.
Для включения метрики региона измените конфигурацию региона данных. Пример включения метрик для одного региона данных по умолчанию и одного дополнительного региона данных:
<bean class="org.apache.ignite.configuration.IgniteConfiguration" id="ignite.cfg">
<property name="dataStorageConfiguration">
<bean class="org.apache.ignite.configuration.DataStorageConfiguration">
<property name="defaultDataRegionConfiguration">
<bean class="org.apache.ignite.configuration.DataRegionConfiguration">
<!-- Включение метрик для региона данных по умолчанию. -->
<property name="metricsEnabled" value="true"/>
<!-- Прочие свойства. -->
</bean>
</property>
<property name="dataRegionConfigurations">
<list>
<bean class="org.apache.ignite.configuration.DataRegionConfiguration">
<!-- Пользовательское название региона данных. -->
<property name="name" value="myDataRegion"/>
<!-- Включение метрик для конкретного региона данных. -->
<property name="metricsEnabled" value="true"/>
<property name="persistenceEnabled" value="true"/>
<!-- Прочие свойства. -->
</bean>
</list>
</property>
</bean>
</property>
</bean>
IgniteConfiguration cfg = new IgniteConfiguration();
DataStorageConfiguration storageCfg = new DataStorageConfiguration();
DataRegionConfiguration defaultRegion = new DataRegionConfiguration();
defaultRegion.setMetricsEnabled(true);
storageCfg.setDefaultDataRegionConfiguration(defaultRegion);
// Создание нового региона данных.
DataRegionConfiguration regionCfg = new DataRegionConfiguration();
// Имя региона данных.
regionCfg.setName("myDataRegion");
// Включение метрик для конкретного региона данных.
regionCfg.setMetricsEnabled(true);
// Конфигурация региона данных.
storageCfg.setDataRegionConfigurations(regionCfg);
// Прочие свойства.
// Применение новой конфигурации.
cfg.setDataStorageConfiguration(storageCfg);
Ignite ignite = Ignition.start(cfg);
var cfg = new IgniteConfiguration
{
DataStorageConfiguration = new DataStorageConfiguration
{
DefaultDataRegionConfiguration = new DataRegionConfiguration
{
Name = DataStorageConfiguration.DefaultDataRegionName,
MetricsEnabled = true
},
DataRegionConfigurations = new[]
{
new DataRegionConfiguration
{
Name = "myDataRegion",
MetricsEnabled = true
}
}
}
};
var ignite = Ignition.Start(cfg);
Включение метрик, относящихся к Native Persistence#
Метрики, относящиеся к Native Persistence, также можно включить или отключить двумя способами:
В конфигурации хранилища:
<bean class="org.apache.ignite.configuration.IgniteConfiguration" id="ignite.cfg"> <property name="dataStorageConfiguration"> <bean class="org.apache.ignite.configuration.DataStorageConfiguration"> <!-- Метрики Persistence-хранилища данных. --> <property name="metricsEnabled" value="true"/> <property name="defaultDataRegionConfiguration"> <bean class="org.apache.ignite.configuration.DataRegionConfiguration"> <property name="persistenceEnabled" value="true"/> <!-- Включение метрик для региона данных по умолчанию. --> <!-- property name="metricsEnabled" value="true"/ --> <!-- Прочие свойства. --> </bean> </property> </bean> </property> </bean>IgniteConfiguration cfg = new IgniteConfiguration(); DataStorageConfiguration storageCfg = new DataStorageConfiguration(); storageCfg.setMetricsEnabled(true); // Применение новой конфигурации. cfg.setDataStorageConfiguration(storageCfg); Ignite ignite = Ignition.start(cfg);var cfg = new IgniteConfiguration { DataStorageConfiguration = new DataStorageConfiguration { MetricsEnabled = true } }; var ignite = Ignition.Start(cfg);Используя следующий MXBean (во время работы приложения):
Java#org.apache:group="Persistent Store",name=DataStorageMetricsОперация
Описание
EnableMetricsВключение метрик Persistence-хранилища данных
DisableMetricsОтключить сбор метрик для конкретного региона данных
Метрики Legacy#
Использование оперативной памяти#
Название |
Тип |
Описание |
Покрытие |
|---|---|---|---|
|
float |
Средний размер данных в страницах в качестве множителя размера страницы. Когда режим Native Persistence включен, данная метрика применяется только для Persistence-хранилища (страниц, хранящихся на диске) |
Узел |
|
long |
Число используемых в текущий момент страниц с данными. Когда режим Native Persistence включен, данная метрика применяется только для Persistence-хранилища (страниц, хранящихся на диске) |
Узел |
|
long |
Число страниц, размещенных в ОЗУ |
Узел |
|
long |
Место, занятое в ОЗУ в байтах |
Узел |
Размер хранилища#
Когда включен режим Native Persistence, сохраняются все данные приложения на диске. Общее количество данных, которые каждый узел содержит на диске, состоит из Persistence-хранилища (данные приложений), файлов WAL-журнала, а также файлов архива WAL-журнала.
Размер Persistence-хранилища#
Название |
Тип |
Описание |
Покрытие |
|---|---|---|---|
|
long |
Место, занятое на диске для всего хранилища данных в байтах. Когда режим Native Persistence отключен, метрика показывает общий размер занятого пространства в ОЗУ |
Узел |
|
long |
Общий размер WAL-файлов в байтах, включая файлы архива WAL-журнала |
Узел |
|
int |
Число сегментов WAL-журнала в архиве |
Узел |
Размер региона данных#
Название |
Тип |
Описание |
Покрытие |
|---|---|---|---|
|
long |
Место, занятое для конкретного региона данных в байтах. Когда режим Native Persistence отключен, метрика показывает общий размер занятого пространства в ОЗУ |
Узел |
|
float |
Среднее количество данных в страницах в качестве множителя размера страницы |
Узел |
|
long |
Число используемых в настоящий момент страниц с данными |
Узел |
|
long |
Число страниц с данными в конкретном регионе данных, содержащееся в ОЗУ |
Узел |
|
long |
Занятое место в ОЗУ в байтах |
Узел |
Размер кеш-группы#
Название |
Тип |
Описание |
Покрытие |
|---|---|---|---|
|
long |
Место, занятое на конкретном узле для кеш-группы |
Узел |
Операции создания контрольных точек#
Название |
Тип |
Описание |
Покрытие |
|---|---|---|---|
|
long |
Число страниц в памяти, которые были изменены, но еще не были синхронизированы с диском. Такие страницы будут записаны на диск при создании следующей контрольной точки |
Узел |
|
long |
Время, за которое была создана последняя контрольная точка (в миллисекундах) |
Узел |
|
long |
Размер буфера контрольной точки |
Глобально |
Ребалансировка#
Название |
Тип |
Описание |
Покрытие |
|---|---|---|---|
|
long |
Показывает время начала ребалансировки локальных партиций для кеша. Если локальные партиции не участвуют в ребалансировке, данная метрика возвращает 0. Время возвращается в миллисекундах |
Узел |
|
long |
Ожидаемое время завершения процесса ребалансировки |
Узел |
|
long |
Число ключей на узле, которые необходимо ребалансировать. Данную метрику можно отслеживать, чтобы понимать, когда заканчивается процесс ребалансировки |
Узел |
Топология#
Название |
Тип |
Описание |
Покрытие |
|---|---|---|---|
|
long |
Число серверных узлов в кластере |
Глобально |
|
long |
Число клиентских узлов в кластере |
Глобально |
|
long |
Число узлов, зарегистрированных в базовой топологии. При отключении узла он остается зарегистрированным в базовой топологии, и удалять его необходимо вручную |
Глобально |
|
long |
Число активных узлов в базовой топологии |
Глобально |
Название |
Тип |
Описание |
Покрытие |
|---|---|---|---|
|
String |
ID текущего узла координатора |
Глобально |
|
String |
Подробная информация об узле-координаторе. Пример: |
Кеши#
Название |
Тип |
Описание |
Покрытие |
|---|---|---|---|
|
long |
Общее количество записей в кеше по всем узлам в кластере |
Глобально |
|
long |
Число записей кеша, сохраненных на локальном узле |
Узел |
Транзакции#
Название |
Тип |
Описание |
Покрытие |
|---|---|---|---|
|
long |
Число ключей, заблокированных на узле |
Узел |
|
long |
Число транзакций, зафиксированных на узле |
Узел |
|
long |
Число транзакций, которые «откатились» |
Узел |
|
long |
Число транзакций, инициированных в узле |
Узел |
|
long |
Число открытых транзакций, которые имеют блокировку как минимум на один ключ на узле |
Узел |
Клиентские подключения#
Название |
Тип |
Описание |
|---|---|---|
Connections |
|
Список строк. Каждая строка содержит информацию о подключении: |
Операция |
Описание |
|---|---|
|
Отключить определенного клиента |
|
Отключить всех клиентов |
Очереди сообщений#
Когда очереди в пулах потоков растут, это означает, что узел не справляется с нагрузкой либо что при обработке сообщений в очереди произошла ошибка. Постоянное увеличение очереди может привести к возникновению ошибки ООМ (OutOfMemoryError).
Очередь communication-сообщений#
Название |
Тип |
Описание |
Покрытие |
|---|---|---|---|
|
int |
Размер очереди исходящих communication-сообщений |
Узел |
Очередь discovery-сообщений#
Название |
Тип |
Описание |
Покрытие |
|---|---|---|---|
|
int |
Размер очереди discovery-сообщений, ожидающих отправки на другие узлы |
Узел |
|
long |
Среднее время обработки сообщений |
Узел |
Метрики New Metrics System#
Система#
Имя реестра: sys
Название |
Тип |
Описание |
|---|---|---|
|
double |
Нагрузка на процессор |
|
long |
|
|
long |
|
|
integer |
|
|
double |
Нагрузка на процессор при сборке мусора |
|
integer |
|
|
java.lang.Double |
|
|
integer |
|
|
long |
Общее количество выполненных задач |
|
long |
|
|
long |
|
|
long |
|
|
long |
|
|
long |
|
|
long |
|
|
long |
|
|
long |
|
|
long |
|
Кеши#
Имя реестра: cache.{cache_name}.{near}
Название |
Тип |
Описание |
|---|---|---|
|
long |
Общее число вытеснений из кеша |
|
long |
Общее число |
|
long |
Число выполненных кешем |
|
long |
«Промах» (miss) – это невыполненный |
|
long |
Общее число |
|
long |
Общее число удалений из кеша |
|
long |
Общее число фиксаций транзакций |
|
long |
Общее число откатов транзакций |
|
long |
Размер локального кеша |
|
histogram |
Время фиксирования в наносекундах |
|
long |
Общее время фиксирования в наносекундах |
|
long |
Количество записей, которые приняли в результате решения конфликта |
|
long |
Количество записей, которые отклонили в результате решения конфликта |
|
long |
Количество записей, которые объединили в результате решения конфликта |
|
long |
Общее количество вызовов ключей, существующих в кеше |
|
long |
Общее время вызова кеша в наносекундах |
|
long |
Максимальное время, требуемое для исполнения вызовов кеша |
|
long |
Минимальное время, требуемое для исполнения вызовов кеша |
|
long |
Общее количество вызовов на ключи, которых нет в кеше |
|
long |
Общее количество вызовов кеша, обусловленных обновлением |
|
long |
Общее количество вызовов кеша, обусловленных отсутствием обновлений |
|
long |
Общее количество вызовов кеша, обусловленных удалениями |
|
long |
Число ключей, которые необходимо ребалансировать |
|
long |
Количество партиций, запланированных для процедуры вымещения (ниспадающий счетчик) |
|
histogram |
Время выполнения |
|
histogram |
Время |
|
long |
Общее количество |
|
long |
Число записей в heap-памяти |
|
long |
Число ключей с rebuilt-индексами |
|
boolean |
|
|
long |
Число backup-записей в offheap-памяти |
|
long |
Количество записей в offheap-памяти |
|
long |
Общее количество вытеснений из offheap-памяти |
|
long |
Общее количество |
|
long |
Число |
|
long |
Пропуск (miss) – |
|
long |
Число первичных записей в offheap-памяти |
|
long |
Общее число |
|
long |
Общее количество удалений из offheap-памяти |
|
histogram |
Время выполнения |
|
histogram |
Время выполнения |
|
histogram |
Время |
|
long |
Общее время |
|
long |
Число завершенных запросов |
|
long |
Число выполненных запросов |
|
long |
Число запросов, незавершенных из-за сбоя |
|
long |
Максимальное время исполнения запроса |
|
long |
Минимальное время исполнения запроса |
|
long |
Суммарное время запроса |
|
long |
Число партиций, которые необходимо очистить перед началом ребалансировки |
|
long |
Время начала ребалансировки |
|
long |
Число уже ребалансированных ключей |
|
long |
Расчетная скорость ребалансировки в байтах |
|
long |
Расчетная скорость ребалансировки в ключах |
|
histogram |
Время выполнения |
|
histogram |
Время выполнения |
|
histogram |
Время |
|
long |
Общее время |
|
histogram |
Время отката в наносекундах |
|
long |
Общее время отката в наносекундах |
|
long |
Число уже ребалансированных байт |
|
String |
Ключи и размер очереди коллизий. Из-за транзакционной нагрузки некоторые ключи становятся «горячими». К таким ключам идут частые и параллельные обращения, из-за чего и появляются коллизии |
Группы кешей#
Имя реестра: cacheGroups.{group_name}
Название |
Тип |
Описание |
|---|---|---|
|
java.util.Map |
Карта назначения аффинити-партиций |
|
java.util.ArrayList |
Список кешей |
|
long |
Число обработанных партиций, необходимое для завершения создания индексов или их создания, или их реорганизации |
|
long |
Число локальных партиций, инициализированных на текущем узле |
|
long |
Число индексных страниц, загруженных в память |
|
integer |
Число партиций в состоянии |
|
integer |
Число партиций в состоянии |
|
long |
Число записей, которые осталось выместить в |
|
integer |
Число партиций в состоянии |
|
integer |
Максимальное число копий всех партиций конкретной кеш-группы |
|
integer |
Минимальное число копий всех для партиций конкретной кеш-группы |
|
java.util.Map |
Карта распределения партиций со статусом |
|
java.util.Map |
Карта распределения партиций со статусом |
|
java.util.ArrayList |
ID локальных партиций |
|
long |
Время окончания ребалансировки для данной группы кешей |
|
java.util.Map |
Число байт, полученных для полной ребалансировки |
|
long |
Время начала ребалансировки для данной группы кешей |
|
java.util.Map |
Количество полученных ключей, необходимых для исторической ребалансировки |
|
long |
Количество отребалансированных байт для данной группы кешей |
|
int |
Общее количество партиций, подлежащих ребалансировке для данной группы кешей |
|
long |
Текущее количество отребалансированных ключей для данной группы кешей |
|
long |
Время отмены ребалансировки или ее завершения с ошибкой |
|
java.util.Map |
Количество полученных ключей для полной ребалансировки группы кешей |
|
long |
Пространство в хранилище, настроенное на возможную низкую плотность данных в байтах |
|
long |
Пространство в хранилище, предназначенное для группы кешей в байтах |
|
long |
Общее количество страниц, размещенных в кеш-группе |
|
long |
Общий размер памяти, выделенной для кеш-группы в байтах |
|
long |
Число байт, которые осталось перешифровать |
|
boolean |
Имя, обозначающее окончание перешифрования |
Транзакции#
Имя реестра: tx
Название |
Тип |
Описание |
|---|---|---|
|
java.util.HashMap |
Карта транзакций в статусе |
|
long |
Число ключей, заблокированных на узле |
|
long |
Число активных транзакций, для которых узел является инициатором |
|
long |
Число активных транзакций как минимум с одной блокировкой по ключу |
|
long |
Время последнего коммита |
|
histogram |
Системное время транзакций на узле в виде гистограммы |
|
histogram |
Пользовательское время транзакций в виде гистограммы |
|
long |
Время последнего отката |
|
long |
Общее системное время транзакций на узле |
|
long |
Общее пользовательское время транзакций на узле |
|
integer |
Число фиксаций транзакций |
|
integer |
Число откатов транзакций |
Обмен картами партиций (Partition Map Exchange (PME))#
Имя реестра: pme
Название |
Тип |
Описание |
|---|---|---|
|
long |
Продолжительность заблокированных текущих операций PME на кешах в миллисекундах |
|
histogram |
Гистограмма продолжительности операций PME на кешах в миллисекундах |
|
long |
Продолжительность текущего PME в миллисекундах |
|
histogram |
Гистограмма продолжительности PME в миллисекундах |
Compute Jobs#
Имя реестра: compute.jobs
Название |
Тип |
Описание |
|---|---|---|
|
long |
Число активных подзадач, исполняемых в настоящий момент |
|
long |
Число отмененных подзадач, которые все еще запущены |
|
long |
Общее время исполнения подзадач |
|
long |
Число завершенных подзадач |
|
long |
Число подзадач, отклоненных после самой свежей операции по устранению конфликтов |
|
long |
Число запущенных подзадач |
|
long |
Число подзадач в очереди на исполнение |
|
long |
Общее время, в течение которого подзадачи находились в очереди |
Пулы потоков#
Имя реестра: threadPools.{thread_pool_name}
Название |
Тип |
Описание |
|---|---|---|
|
long |
Приблизительное число потоков, активно исполняющих задачи |
|
long |
Приблизительное общее количество выполненных задач |
|
long |
Базовое число потоков |
|
long |
Keep-alive-время потока. Это время, в течение которого потоки, выходящие за рамки базового размера пула потоков, могут находиться в состоянии ожидания до завершения их работы |
LargestPoolSize |
long |
Самое большое число потоков, одновременно присутствовавших в пуле |
|
long |
Максимально допустимое число потоков |
|
long |
Текущее число потоков в пуле |
|
long |
Текущий размер очереди на исполнение |
|
string |
Имя класса для текущего обработчика отклонения выполнения |
|
boolean |
Верно, если текущий исполнитель отключен |
|
long |
Примерное общее число задач на исполнение |
|
histogram |
Время исполнения задачи в миллисекундах |
|
boolean |
Верно, если все задачи завершены с последующим отключением |
|
long |
Верно, если завершается, но еще не завершено |
|
string |
Имя класса для фабрики потоков, используемой для создания новых потоков |
I/O группы кешей#
Имя реестра: io.statistics.cacheGroups.{group_name}
Название |
Тип |
Описание |
|---|---|---|
|
long |
Количество логических операций |
|
long |
Число физических операций |
|
integer |
ID группы Group id |
|
string |
Имя индекса |
|
long |
Время начала сбора статистики |
I/O-статистика по отсортированным индексам#
Имя реестра: io.statistics.sortedIndexes.{cache_name}.{index_name}
Название |
Тип |
Описание |
|---|---|---|
|
long |
Число логических |
|
long |
Число логических |
|
long |
Число физических |
|
long |
Число физических |
|
string |
Имя индекса |
|
string |
Имя кеша |
|
long |
Время начала сбора статистики |
Операции с отсортированными индексами#
Содержит метрики низкоуровневых операций (таких как Insert, Search и так далее) на страницах отсортированных вторичных индексов.
Имя регистра: index.{schema_name}.{table_name}.{index_name}
Название |
Тип |
Описание |
|---|---|---|
|
long |
Количество операций |
|
long |
Общая продолжительность операций |
I/O-статистика по хеш-индексам#
Имя реестра: io.statistics.hashIndexes.{cache_name}.{index_name}
Название |
Тип |
Описание |
|---|---|---|
|
long |
Число логических |
|
long |
Число логических |
|
long |
Число физических |
|
long |
Число физических |
|
string |
Имя индекса |
|
string |
Имя кеша |
|
long |
Время начала сбора статистики |
Communication I/O#
Имя реестра: io.communication
Название |
Тип |
Описание |
|---|---|---|
|
integer |
Число активных TCP-сессий |
|
integer |
Размер очереди исходящих сообщений |
|
integer |
Число отправленных сообщений |
|
long |
Число отправленных байт |
|
long |
Число полученных байт |
|
integer |
Число полученных сообщений |
|
integer |
Число TCP-сессий, отклоненных из-за ошибок SSL (метрика экспортируется только при включенном SSL) |
|
boolean |
Метрика показывает, включен ли SSL |
|
histogram |
Гистограмма продолжительности SSL handshake в миллисекундах (метрика экспортируется только при включенном SSL) |
Коннектор тонкого клиента DataGrid#
Имя реестра: client.connector
Название |
Тип |
Описание |
|---|---|---|
|
integer |
Число активных TCP-сессий |
|
integer |
Количество успешно установленных сессий (соединений) |
|
integer |
Количество активных сессий на данный момент |
|
integer |
Количество успешно установленных сессий (соединений) |
|
integer |
Количество активных сессий на данный момент |
|
integer |
Количество сообщений, ожидающих отправки |
|
long |
Число полученных байт |
|
integer |
Число TCP-сессий, отклоненных из-за ошибок SSL (метрика экспортируется только при включенном SSL) |
|
integer |
Число TCP-сессий, отклоненных из-за тайм-аута handshake |
|
integer |
Число TCP-сессий, отклоненных из-за неудачной аутентификации |
|
integer |
Общее число отклоненных TCP-соединений |
|
integer |
Количество успешно установленных соединений для клиента |
|
integer |
Число активных сессий для клиента |
|
long |
Число отправленных байт |
|
boolean |
Метрика, показывающая, включен ли SSL |
|
histogram |
Гистограмма продолжительности SSL handshake в миллисекундах (метрика экспортируется только при включенном SSL) |
Коннектор REST-клиента DataGrid#
Имя реестра: rest.client
Название |
Тип |
Описание |
|---|---|---|
|
integer |
Число активных TCP-сессий |
|
long |
Количество сообщений, ожидающих отправки |
|
long |
Число полученных байт |
|
integer |
Число TCP-сессий, отклоненных из-за ошибок SSL (метрика экспортируется только при включенном SSL) |
|
long |
Число отправленных байт |
|
boolean |
Метрика, показывающая, включен ли SSL |
|
histogram |
Гистограмма продолжительности SSL handshake в миллисекундах (метрика экспортируется только при включенном SSL) |
Discovery I/O#
Имя реестра: io.discovery
Название |
Тип |
Описание |
|---|---|---|
|
long |
Временная отметка, после которой локальный узел стал узлом-координатором (метрика экспортируется только с серверных узлов) |
|
UUID |
ID координатора (метрика экспортируется только с серверных узлов) |
|
long |
Текущая версия топологии |
|
integer |
Количество узлов, вышедших из топологии в результате какой-либо ошибки |
|
integer |
Число присоединившихся к топологии узлов |
|
integer |
Число покинувших топологию узлов |
|
integer |
Текущий размер очереди обработчика сообщений |
|
integer |
Число ожидающих зарегистрированных сообщений |
|
integer |
Число соединений TCP discovery, отклоненных из-за ошибок SSL |
|
boolean |
Метрика, показывающая, включен ли SSL |
|
integer |
Общее число обработанных сообщений |
|
integer |
Общее число полученных сообщений |
I/O региона данных#
Имя реестра: io.dataregion.{data_region_name}
Название |
Тип |
Описание |
|---|---|---|
|
hitrate |
Соотношение распределения (страниц в секунду) в среднем по |
|
long |
Размер буфера контрольных точек в байтах |
|
long |
Число страниц в памяти, которые еще не были синхронизированы с Persistence-хранилищем |
|
long |
Метрика, подсчитывающая число пустых страниц с данными для конкретного региона данных. Метрика подсчитывает только свободные страницы, которые могут быть использованы повторно (например, страницы, содержащиеся в хранилище страниц для повторного использования) |
|
hitrate |
Уровень замещений (страниц в секунду) |
|
long |
Изначальный размер региона данных в байтах |
|
long |
Количество индексных страниц, загруженных в память |
|
long |
Количество страниц, занятых большими записями, размер которых превышает размер страницы |
|
long |
Максимальный размер региона данных в байтах |
|
long |
Размер offheap-памяти в байтах |
|
long |
Размер использованной offheap-памяти в байтах |
|
double |
Процент использованного пространства |
|
long |
Число страниц, прочитанных с момента последнего перезапуска |
|
long |
Общее время чтения страниц в наносекундах с момента последнего перезапуска |
|
hitrate |
Средний возраст страниц в памяти, по наступлении которого они замещаются страницами из Persistence-хранилища (в миллисекундах) |
|
hitrate |
Норма, при которой страницы в памяти замещаются страницами из Persistence-хранилища (страниц в секунду) |
|
long |
Число страниц, замещенных с момента последнего перезапуска |
|
long |
Общее время на замещение страниц с момента последнего перезапуска |
|
long |
Число страниц, записанных после последнего перезапуска |
|
long |
Число страниц, находящихся в физической оперативной памяти |
|
long |
Собирает общий размер страниц, загруженных в ОЗУ в байтах |
|
long |
Общее число размещенных страниц |
|
long |
Собирает общий размер памяти в регионе данных в байтах |
|
long |
Общее время зависания потоков в миллисекундах. Ignite тормозит потоки, создающие «грязные» страницы в ходе процесса создания контрольной точки |
|
long |
Собирает размер использованного пространства в буфере контрольной точки в байтах |
Хранилище данных#
Имя реестра: io.datastorage
Название |
Тип |
Описание |
|---|---|---|
|
histogram |
Гистограмма действия по созданию контрольной точки до получения блокировки на запись в миллисекундах |
|
histogram |
Гистограмма продолжительности |
|
histogram |
Гистограмма продолжительности создания контрольной точки в миллисекундах |
|
histogram |
Гистограмма продолжительности работы слушателей исполнения контрольной точки в миллисекундах |
|
histogram |
Гистограмма длительности удержания блокировки контрольной точки в миллисекундах |
|
histogram |
Гистограмма длительности ожидания блокировки контрольной точки в миллисекундах |
|
histogram |
Гистограмма продолжительности маркирования контрольной точки в миллисекундах |
|
histogram |
Гистограмма продолжительности |
|
histogram |
Гистограмма продолжительности разделения и сортировки страниц контрольной точки в миллисекундах |
|
long |
Общая продолжительность контрольной точки |
|
histogram |
Гистограмма продолжительности |
|
histogram |
Гистограмма продолжительности записи в файл входного буфера в миллисекундах |
|
long |
Индекс последнего заархивированного сегмента |
|
long |
Продолжительность действия контрольной точки до получения блокировки на запись в миллисекундах |
|
long |
Количество страниц, скопированных во временный буфер контрольной точки во время создания последней контрольной точки |
|
long |
Общее число страниц с данными, записанных во время создания последней контрольной точки |
|
long |
Продолжительность создания последней контрольной точки в миллисекундах |
|
long |
Продолжительность фазы синхронизации последней контрольной точки в миллисекундах |
|
long |
Продолжительность работы слушателей исполнения контрольной точки при блокировке на запись в миллисекундах |
|
long |
Продолжительность удержания блокировки контрольной точки в миллисекундах |
|
long |
Продолжительность ожидания блокировки контрольной точки в миллисекундах |
|
long |
Продолжительность маркировки контрольной точки в миллисекундах |
|
long |
Продолжительность |
|
long |
Общее число страниц, записанных во время создания последней контрольной точки |
|
long |
Продолжительность разделения и сортировки страниц последней контрольной точки в миллисекундах |
|
long |
Временная метка начала последней контрольной точки |
|
long |
Продолжительность |
|
long |
Продолжительность записи входного буфера в файл последней контрольной точки в миллисекундах |
|
long |
Пространство в хранилище, настроенное под возможную низкую плотность данных в байтах |
|
long |
Пространство в хранилище в байтах |
|
integer |
Текущее число сегментов WAL-журнала в архиве WAL-журнала |
|
hitrate |
Число повторов опроса буфера WAL-журнала за последний временной интервал |
|
hitrate |
Общая продолжительность |
|
hitrate |
Общее число операций |
|
long |
Время последней выгрузки сегмента WAL-журнала |
|
hitrate |
Среднее число записей WAL-журнале в секунду, созданных за последний временной интервал |
|
long |
Общий размер пространства для хранения файлов WAL-журнала в байтах |
|
hitrate |
Средняя скорость записи за последний временной интервал (байт/сек) |
Кластер#
Имя реестра: cluster
Название |
Тип |
Описание |
|---|---|---|
|
integer |
Количество активных узлов в базовой топологии (baseline) |
|
boolean |
Верно, если кластер полностью ребалансирован. Если кластер неактивен, данная метрика всегда имеет значение |
|
integer |
Общее количество узлов в базовой топологии (baseline) |
|
integer |
Число клиентских узлов |
|
integer |
Количество серверных узлов |
Кеш-процессор#
Имя реестра: cache
Название |
Тип |
Описание |
|---|---|---|
|
long |
Последняя версия данных на узле |
|
integer |
ID кластера версии данных |
Безопасность#
Имя реестра: security
Название |
Тип |
Описание |
|---|---|---|
|
String |
DName, содержащийся в сертификате (DN записи) |
|
String |
Дата окончания жизненного цикла сертификата в человекочитаемом формате |
|
long |
Дата окончания жизненного цикла сертификата в UNIX-формате |
|
String |
Fingerprint сертификата |
Кеш SQL-парсера#
Имя реестра: sql."parser.cache"
| hits | long | Количество SQL-запросов, которые были найдены в кеше парсера (не требуют разбора и планирования перед выполнением) |
| misses | long | Количество SQL-запросов, которые были разобраны и спланированы |
Пользовательские SQL-запросы#
Имя реестра: sql."queries.user"
Название |
Тип |
Описание |
|---|---|---|
|
long |
Число успешно выполненных запросов, запущенных на узле |
|
long |
Число отмененных запросов, запущенных на узле. Число, отображаемое данной метрикой, включено в общую метрику |
|
long |
Общее число запросов, запущенных на узле и невыполненных по какой-либо причине (например, по причине отмены) |
Снепшоты#
Имя реестра: snapshot
Название |
Тип |
Описание |
|---|---|---|
|
java.lang.String |
Имя последнего запущенного на данном узле запроса на создание снепшота кластера |
|
java.lang.String |
Сообщение об ошибке последнего запущенного на данном узле запроса на создание снепшота кластера, завершившегося ошибкой. Значение будет пустым, если последний запрос на создание снепшота завершился успешно |
|
java.lang.Long |
Размер обработанного снепшота текущей версии кластера на данном узле в байтах |
|
java.util.List |
Список имен всех снепшотов, сохраненных на данный момент на локальном узле с привязкой к рабочему пути снепшота, сконфигурированному при помощи класса |
|
java.lang.Long |
Рассчитанный размер снепшота текущей версии кластера на данном узле в байтах. Значение может увеличиваться во время создания снепшота |
|
java.lang.Long |
Системное время окончания последнего запроса на создание снепшота кластера |
|
java.lang.Long |
Системное время начала последнего запроса на создание снепшота кластера |
Восстановление из снепшота#
Имя реестра: snapshot-restore
Название |
Тип |
Описание |
|---|---|---|
|
java.lang.Integer |
Число партиций, обработанных на данном узле |
|
java.lang.String |
ID запроса последней запущенной операции по восстановлению из снепшота на данном узле |
|
java.lang.Integer |
Общее количество партиций, подлежащих восстановлению на данном узле |
|
java.lang.String |
Имя снепшота последней запущенной операции восстановления из снепшота на данном узле |
|
java.lang.Long |
Системное время начала операции восстановления кластера из снепшота на данном узле |
|
java.lang.Long |
Системное время окончания операции восстановления кластера из снепшота на данном узле |
|
java.lang.String |
Сообщение об ошибке последней запущенной операции восстановления кластера из снепшота на данном узле |
Метрики утилизации и очередей к connectionsPerNode#
Имя реестра: communication.tcp
Название |
Тип |
Описание |
Покрытие |
|---|---|---|---|
|
int |
Размер пула соединений |
Глобально |
|
boolean |
Показывает, асинхронные ли соединения |
Глобально |
|
boolean |
Показывает, парные ли соединения |
Глобально |
|
int |
Количество открытых соединений (без учета соединений |
Узел |
|
int |
Размер очереди сообщений |
Узел |
|
AtomicLong |
Общее количество закрытых соединений. Закрытие соедиения может быть следствием тайм-аута или ошибки отправки сообщения. Для открытия новых соединений присутствует параллелизм (concurrency) |
Узел |
|
AtomicInteger |
Количество потоков, которые запрашивают/удерживают соединение |
Узел |
|
long |
Максимальное время простоя соединения в пуле данного узла |
Узел |
|
long |
Среднее время жизни соединения с узлом |
Узел |
|
String |
Согласованный идентификатор (consistent ID) узла — нужен для удобства идентификации проблемного узла |
Узел |
Конфигурирование метрик#
С помощью команды metrics можно конфигурировать:
интервалы (buckets) для метрик-гистограмм;
временной интервал для метрик типа hitrate.
Пример команды
control.(sh|bat) --metric --configure-histogram <histogram-metric-name> 1,2,3
control.(sh|bat) --metric --configure-hitrate <hitrate-metric-name> 1000
где:
<histogram-metric-name>— имя метрики-гистограммы;1,2,3— интервалы (buckets) гистограммы;<hitrate-metric-name>— имя метрики типа hitrate;1000— время в мс, за которое будут представлены данные в hitrate-метрике.
Внимание
При использовании команды metric к имени метрики необходимо в качестве префикса добавить имя реестра в формате: <register-name>.<metric-name>. Например, для метрики WalLoggingRate необходимо указать имя io.datastorage.WalLoggingRate.
Пользовательские метрики#
Важно
Это экспериментальная функциональность. Она может измениться в будущих версиях.
DataGrid предоставляет различные внутренние метрики, но их может оказаться недостаточно. Пользователи могут разрабатывать и публиковать собственные метрики, которые основаны на New Metrics System.
Примечание
Пользовательские метрики являются локальными и привязаны исключительно к локальному узлу.
Создание пользовательских метрик#
Перед регистрацией пользовательской метрики нужно добавить новый реестр. После этого в него можно будет добавить новые метрики.
Реестр пользовательских метрик#
Реестры пользовательских метрик можно создавать с помощью интерфейса IgniteMetrics, который доступен через метод Ignite.metrics(). Методы интерфейса IgniteMetrics:
MetricRegistry getOrCreate(String registryName)возвращает существующий или создает новый реестр пользовательских метрик.void remove(String registryName)удаляет весь реестр пользовательских метрик.
Создание пользовательской метрики#
Для регистрации новой пользовательской метрики используйте интерфейс MetricRegistry, который получен с помощью метода IgniteMetrics.getOrCreate(...). Интерфейс MetricRegistry включает несколько методов для добавления или удаления метрик, например:
void register(String metricName, IntSupplier valueSupplier, @Nullable String description);регистрирует целочисленную метрику (тип integer).void register(String metricName, DoubleSupplier valueSupplier, @Nullable String description);регистрирует метрику типа double.void remove(String name);удаляет метрику.
Имена пользовательских метрик#
Имена пользовательских метрик (и их реестров) аналогичны именам внутренних метрик. Имя может состоять из нескольких частей, которые разделены точкой, например: process.status.suspended.
Префикс custom. автоматически добавляется перед именем пользовательского реестра в интерфейсе IgniteMetrics. Например, если передано имя реестра process.status.suspended, оно автоматически расширяется до custom.process.status.suspended.
Ограничения пользовательских метрик#
Список ограничений:
Пользовательские метрики не влияют на работу внутренних метрик DataGrid.
Пользовательские метрики регистрируются по требованию и не являются персистентными. После каждого перезапуска узла их необходимо регистрировать заново.
Конфигурирование пользовательских метрик (например, изменение границ гистограмм) не поддерживается.
Имена пользовательских метрик не могут быть пустыми, содержать пробелы или пустые части, которые разделены точками.
Системные представления#
DataGrid имеет ряд встроенных SQL-представлений, которые содержат информацию о процессах, протекающих внутри DataGrid. Доступ к метрикам осуществляется через SYS-схему.
Примечание
Для доступа к данным можно воспользоваться утилитой SQLLine:
./sqlline.sh -u jdbc:ignite:thin://xxx.x.x.x/SYS
Пример запроса данных по узлам
`select * from NODES;`
В системных представлениях доступно следующее дерево групп метрик:
Имя представления |
Описание |
|---|---|
|
Информация по кешам |
|
Информация по кеш-группам |
|
Информация о вычислительных задачах ( |
|
Информация о вычислительных подзадачах( |
|
Информация о сервисах |
|
Информация о транзакциях |
|
Информация об узлах |
|
Информация об атрибутах узла |
|
Информация о базовой топологии (baseline) |
|
Информация об атрибутах узла, исправленных на момент установки текущей версии базовой топологии (baseline) |
|
Информация о подключенных тонких клиентах |
|
Информация о задачах в рамках распределенного пула потоков ( |
|
Информация о задачах в рамках распределенных потоков ( |
|
Информация о запущенных запросах сканирования |
|
Информация о выполняемых в данный момент непрерывных запросах |
|
Информация о запущенных SQL-запросах |
|
Информация об истории выполнения SQL-запросов |
|
Информация об SQL–схемах |
|
Информация о метриках узла |
|
Информация об SQL–таблицах |
|
Информация о столбцах SQL–таблицы |
|
Информация об SQL–представлениях |
|
Информация о столбцах SQL–представлений |
|
Информация об SQL–индексах |
|
Информация о |
|
Информация о |
|
Информация о состоянии партиций |
|
Информация о существующих бинарных типах |
|
Информация о хранилище метаданных ( |
|
Список |
|
Список |
|
Список |
|
Список |
|
Список |
|
Список |
|
Список |
|
Список |
|
Содержание |
|
Список планов ранее выполненных SQL-запросов |
|
Информация о конфигурации SQL-статистики |
|
SQL-статистика для данных, хранящихся или управляемых локально. Это отображение специфично для узла, поэтому на каждом узле содержится экземпляр отображения, содержащий информацию о статистике локальных данных |
|
Информация об SQL-статистике в каждой партиции данных, хранящейся на локальном узле |
|
Информация о локальных снепшотах |
Описание системных представлений#
CACHES#
Системное представление содержит информацию о кешах.
Название |
Тип |
Описание |
|---|---|---|
|
string |
|
|
string |
|
|
string |
Атомарный режим |
|
int |
Число резервных копий |
|
int |
ID группы кешей |
|
string |
Имя группы кешей |
|
int |
ID кеша |
|
string |
|
|
string |
Режим работы кеша |
|
string |
Имя кеша |
|
string |
|
|
string |
Тип кеша |
|
string |
|
|
string |
|
|
string |
Имя региона данных |
|
long |
тайм-аут блокировки в миллисекундах |
|
string |
|
|
string |
|
|
string |
|
|
string |
Указывает, есть ли записи с истекающим временем жизни. Если определить невозможно, принимает значение |
|
string |
|
|
boolean |
Атрибут, который обозначает сохранение значения в on-heap-кеше |
|
boolean |
Атрибут, который обозначает немедленное удаление записей из кеша |
|
boolean |
Верно, если данные в кеше зашифрованы |
|
boolean |
Верно, если события для данного кеша отключены |
|
boolean |
Верно, если значения станут недействительными при фиксации в near-кеше |
|
boolean |
Верно, если значение загружается из хранилища и не находится в кеше |
|
boolean |
Верно, если управление в кеше включено |
|
boolean |
Верно, если кеш включен |
|
boolean |
Верно, если heap-кеш включен |
|
boolean |
Верно, если чтение должно производиться из резервного узла |
|
boolean |
Верно, если включено чтение из стороннего хранилища |
|
boolean |
Если верно, то все имена SQL-таблиц и полей будут экранироваться двойными кавычками |
|
boolean |
Верно, когда включен SQL on-heap-кеш. Когда он включен, DataGrid будет кешировать SQL-строки по мере доступа к ним системы обработки запросов. Строки обнуляются и вытесняются из кеша при изменении или вытеснении из кеша соответствующей записи |
|
boolean |
Верно, если включена статистика по кешам |
|
boolean |
Атрибут, который указывает на то, что реализация |
|
boolean |
Атрибут, указывающий на то, что DataGrid должен использовать для хранилища кешей стратегию |
|
boolean |
Верно, если включена запись в стороннее хранилище |
|
int |
Максимальное число разрешенных параллельных асинхронных операций. Если возвращаемое значение равно «0», то число таких операций неограниченно |
|
int |
Максимальное число сохраняемых итераторов запроса. Итераторы сохраняются для поддержки разбиения запроса на страницы, когда каждая страница данных отправляется на узел пользователя только при необходимости |
|
string |
|
|
int |
Изначальный размер near-кеша, который будет использоваться для создания черновика внутренней хеш-таблицы после запуска |
|
string |
|
|
string |
|
|
int |
Размер подробных метрик запросов, которые сохраняются в памяти для целей мониторинга. Если значение равно «0», статистика собираться не будет |
|
int |
Указание на систему исполнения запросов при необходимой степени параллелизма внутри одного узла |
|
int |
Размер данных, загружаемых внутри одного сообщения ребалансировки (в байтах) |
|
int |
Число пакетов, созданных питающим узлом при начале процесса ребалансировки |
|
long |
Задержка ребалансировки в миллисекундах |
|
string |
Режим ребалансировки |
|
int |
Порядок ребалансировки |
|
long |
Время ожидания между сообщениями ребалансировки для избежания перегрузки процессора или сети |
|
long |
тайм-аут ребалансировки в миллисекундах |
|
int |
Размер подстановки индекса в байтах |
|
int |
Максимальный размер SQL on-heap-кеша, измеряется в количестве строк. При достижении максимального числа строк самые старые из них вымещаются из кеша |
|
string |
Имя схемы |
|
string |
|
|
int |
Максимальный размер пакета для write-behind-операций хранилища кешей |
|
boolean |
Объединяющий атрибут записи для write-behind-операций хранилища кешей. Операции хранения ( |
|
long |
Частота, с которой write-behind-кеш перемещается в хранилище кешей (в миллисекундах) |
|
int |
Максимальный размер write-behind-кеша. Если размер кеша превышает значение этой метрики, все содержимое кеша перемещается в хранилище кешей, а кеш записи очищается |
|
int |
Количество потоков, которые будут производить перемещение кеша |
|
string |
Получает данные о режиме синхронизации write-операций |
CACHE_GROUPS#
Системное представление содержит информацию о группах кеша.
Название |
Тип |
Описание |
|---|---|---|
|
VARCHAR |
Строковая репрезентация (возвращаемая методом |
|
VARCHAR |
Атомарный режим работы кеш-группы |
|
INT |
Число резервных партиций, сконфигурированных для группы кешей |
|
INT |
Количество кешей в группе |
|
INT |
ID группы кешей |
|
VARCHAR |
Имя кеш-группы |
|
VARCHAR |
Режим работы кеша |
|
VARCHAR |
Имя региона данных |
|
BOOLEAN |
Если конкретная группа кешей содержит больше одного кеша |
|
VARCHAR |
Строковая репрезентация (возвращаемая методом |
|
VARCHAR |
Политика потери партиций |
|
INT |
Число партиций |
|
LONG |
Задержка ребалансировки |
|
VARCHAR |
Режим ребалансировки |
|
INT |
Порядок ребалансировки |
|
VARCHAR |
Строковая репрезентация (возвращаемая методом |
TASKS#
Системное представление отражает информацию о запущенных на узле вычислительных задачах (compute task), выполняемых в данный момент времени. В качестве примера рассмотрим ситуацию, когда приложение запустило вычислительную задачу с использованием толстого клиента, и эта задача была выполнена на одном из серверных узлов. В этом случае толстый клиент будет сообщать статистику по задаче с помощью представления TASKS, в то время как серверный узел будет передавать на толстый клиент подробности выполнения задачи.
Название |
Тип |
Описание |
|---|---|---|
|
UUID |
ID задачи |
|
UUID |
ID сессии |
|
UUID |
ID узла, происходящий от задачи |
|
string |
Имя задачи |
|
string |
Имя класса задачи |
|
int |
ID партиции кеша |
|
string |
Имя кеша |
|
long |
Время начала |
|
long |
Время окончания |
|
string |
Имя пула потоков, исполняющего задачу |
|
boolean |
Верно, если задача является внутренней |
|
string |
Версия пользователя задачи |
JOBS#
Системное представление отражает список вычислительных заданий (compute jobs), начатых узлом как часть вычислительной задачи (compute task). Для просмотра статуса задачи необходимо обратиться к представлению TASKS.
Имя |
Тип |
Описание |
|---|---|---|
|
UUID |
Идентификатор подзадачи |
|
UUID |
Идентификатор сессии подзадачи. Для подзадач, которые принадлежат определенной задаче, метрика |
|
UUID |
Идентификатор узла, который начал подзадачу |
|
string |
Название задачи |
|
string |
Название класса задачи |
|
string |
Идентификатор одного или нескольких кешей, если подзадача исполняется посредством одного из методов |
|
int |
Идентификатор одной или нескольких партиций, если подзадача исполняется посредством одного из методов |
|
long |
Время создания подзадачи |
|
long |
Время начала подзадачи |
|
long |
Время окончания подзадачи |
|
string |
Имя исполнителя задачи |
|
boolean |
Верно, если подзадача завершается |
|
boolean |
Верно, если подзадача является внутренней |
|
boolean |
Верно, если подзадача началась |
|
boolean |
Верно, если время на выполнение подзадачи вышло до ее завершения |
|
string |
Возможные значения:
|
SERVICES#
Системное представление содержит информацию о сервисах.
Название |
Тип |
Описание |
|---|---|---|
|
string |
Значение аффинити-ключа для сервиса |
|
string |
Имя кеша |
|
int |
Максимальное количество экземпляров сервиса на один узел |
|
string |
Имя сервиса |
|
string |
|
|
UUID |
ID начального узла |
|
string |
Имя класса сервиса |
|
UUID |
ID сервиса |
|
boolean |
Верно, если сервис сконфигурирован статически |
|
int |
Общее число экземпляров сервиса |
TRANSACTIONS#
Системное представление содержит информацию о текущих транзакциях.
Название |
Тип |
Описание |
|---|---|---|
|
UUID |
|
|
string |
|
|
UUID |
|
|
string |
|
|
long |
|
|
string |
|
|
string |
|
|
int |
|
|
string |
|
|
boolean |
|
|
boolean |
|
|
long |
|
|
boolean |
|
|
boolean |
|
|
boolean |
|
|
boolean |
|
|
UUID |
|
|
boolean |
|
|
boolean |
|
|
UUID |
|
|
UUID |
|
|
boolean |
|
|
long |
|
|
long |
|
|
string |
NODES#
Системное представление содержит информацию об узлах кластера.
Название |
Тип |
Описание |
|---|---|---|
|
BOOLEAN |
Показывает тип узла — локальный или удаленный |
|
VARCHAR |
Отображает адреса узла |
|
VARCHAR |
Согласованный идентификатор (consistent ID) узла |
|
VARCHAR |
Имена хостов узла |
|
BOOLEAN |
Показывает, является ли узел клиентом |
|
BOOLEAN |
Показывает, работает ли узел в |
|
UUID |
ID узла |
|
INT |
Порядок расположения узлов в топологии |
|
VARCHAR |
Версия узла |
NODE_ATTRIBUTES#
Системное представление содержит атрибуты всех узлов.
Название |
Тип |
Описание |
|---|---|---|
|
UUID |
ID узла |
|
VARCHAR |
Имя атрибута |
CONFIGURATION#
Системное представление содержит свойства конфигурации узла.
Название |
Тип |
Описание |
|---|---|---|
|
VARCHAR |
Имя свойства конфигурации |
|
VARCHAR |
Значение свойства конфигурации |
BASELINE_NODES#
Системное представление содержит информацию об узлах, которые являются частью текущей базовой топологии.
Название |
Тип |
Описание |
|---|---|---|
|
VARCHAR |
Согласованный идентификатор (consistent ID) узла |
|
BOOLEAN |
Показывает доступность и активность узла |
BASELINE_NODE_ATTRIBUTES#
Системное представление отображает атрибуты узла, зафиксированные в момент установки текущей базовой топологии.
Название |
Тип |
Описание |
|---|---|---|
|
VARCHAR |
Согласованный идентификатор узла |
|
VARCHAR |
Имя атрибута узла |
|
VARCHAR |
Значение атрибута |
CLIENT_CONNECTIONS#
Системное представление содержит информацию об открытых в данный момент клиентских подключениях: JDBC, ODBC, тонких клиентах.
Название |
Тип |
Описание |
|---|---|---|
|
long |
ID соединения |
|
IP |
IP-адрес локального узла |
|
IP |
IP-адрес удаленного узла |
|
string |
Тип соединения |
|
string |
Имя пользователя |
|
string |
Версия протокола |
STRIPED_THREADPOOL_QUEUE#
Системное представление содержит информацию о задачах, ожидающих выполнения в системном пуле разделенных потоков (striped thread pool).
Название |
Тип |
Описание |
|---|---|---|
|
string |
|
|
int |
Индекс части потока |
|
string |
Имя класса задачи |
|
string |
Имя части потока |
DATASTREAM_THREADPOOL_QUEUE#
Системное представление содержит информацию о задачах, ожидающих выполнения в пуле распределенных потоков data streamer (data streamer stripped thread pool).
Название |
Тип |
Описание |
|---|---|---|
|
string |
|
|
int |
Индекс части потока |
|
string |
Имя класса задачи |
|
string |
Имя части потока |
SCAN_QUERIES#
Системное представление содержит информацию о выполняемых в данный момент запросах сканирования.
Название |
Тип |
Описание |
|---|---|---|
|
int |
ID группы кешей |
|
string |
Имя группы кешей |
|
int |
ID кеша |
|
string |
Имя кеша |
|
boolean |
Верно, если запрос отменен |
|
long |
Продолжительность запроса |
|
string |
|
|
boolean |
Верно при включенном |
|
boolean |
Верно, если запрос только локальный |
|
UUID |
ID узла, инициировавшего запрос |
|
int |
Размер страницы |
|
int |
ID партиции запроса |
|
long |
ID запроса |
|
long |
Время начала запроса |
|
UUID |
ID пользователя, инициировавшего запрос |
|
string |
Имя класса задачи |
|
string |
Версия топологии |
|
string |
|
CONTINUOUS_QUERIES#
Системное представление содержит информацию о выполняемых в данный момент непрерывных запросах.
Название |
Тип |
Описание |
|---|---|---|
|
boolean |
Верно, если запрос должен быть прекращен при отключении узла или выходе из топологии узла, инициировавшего запрос |
|
int |
Размер буфера пакета события |
|
string |
Имя кеша |
|
boolean |
Верно, если запрос инициируется при запуске соответствующего кеша |
|
long |
Интервал уведомлений |
|
boolean |
Верно, если используется для подписки на удаленные события |
|
boolean |
Верно, если используется для подписки на сообщения |
|
boolean |
Верно, если пользователь инициировал продолжительный запрос (continuous query) |
|
boolean |
Верно при включенном |
|
long |
Показывает, когда в последний раз пакет события отсылался на узел, инициировавший запрос |
|
string |
|
|
string |
|
|
UUID |
ID узла, инициировавшего запрос |
|
boolean |
Верно, если слушателя необходимо уведомить о существующих записях |
|
boolean |
Верно, если старое значение записи должно быть включено в событие |
|
string |
|
|
string |
|
|
UUID |
ID запроса |
|
string |
Имя топика запроса |
SQL_QUERIES#
Системное представление содержит информацию о выполняемых в данный момент SQL-запросах.
Название |
Тип |
Описание |
|---|---|---|
|
UUID |
ID запроса |
|
string |
Текст запроса |
|
UUID |
Узел, инициировавший запрос |
|
date |
Время начала запроса |
|
long |
Продолжительность исполнения запроса |
|
string |
Определяемый пользователем ID инициатора запроса |
|
boolean |
Верно, если запрос только локальный |
|
string |
Имя запроса |
|
UUID |
ID субъекта, инициировавшего запрос |
SQL_QUERIES_HISTORY#
Системное представление содержит информацию об истории SQL-запросов.
Название |
Тип |
Описание |
|---|---|---|
|
string |
Имя схемы |
|
string |
Текст запроса |
|
boolean |
Верно, если запрос только локальный |
|
long |
Количество исполнений запроса |
|
long |
Число сбоев |
|
long |
Минимальная продолжительность исполнения запроса |
|
long |
Максимальная продолжительность исполнения запроса |
|
date |
Дата последнего исполнения запроса |
SCHEMAS#
Системное представление содержит информацию об SQL-схемах.
Название |
Тип |
Описание |
|---|---|---|
|
string |
Имя схемы |
|
boolean |
Если верно, то схема определена заранее |
NODE_METRICS#
Системное представление содержит различные показатели о состоянии узлов и потреблении ресурсов.
Название |
Тип |
Описание |
|---|---|---|
|
UUID |
ID узла |
|
TIMESTAMP |
Последнее обновление метрик |
|
INT |
Максимальное число одновременно выполняющихся подзадач за все время работы узла |
|
INT |
Количество активных в настоящий момент подзадач на узле |
|
FLOAT |
Среднее число активных подзадач, параллельно исполняющихся на узле |
|
INT |
Максимальное количество подзадач, находящихся в ожидании, когда-либо существовали на конкретном узле в один момент времени |
|
INT |
Количество подзадач в очереди на выполнение на данный момент |
|
FLOAT |
Среднее число подзадач, находившихся в очереди за все время работы узла |
|
INT |
Максимальное количество подзадач во время выполнения отдельной операции по разрешению конфликтов |
|
INT |
Количество подзадач, которые были отклонены в результате выполнения последней операции по разрешению конфликтов |
|
FLOAT |
Среднее количество подзадач, отклоненных текущим узлом в результате выполнения операций по разрешению конфликтов |
|
INT |
Общее количество подзадач, отклоненных текущим узлом в результате выполнения операций по разрешению конфликтов с момента запуска узла |
|
INT |
Максимальное количество отмененных подзадач, когда-либо выполнявшихся на узле параллельно |
|
INT |
Количество отмененных, но все еще запущенных подзадач |
|
FLOAT |
Среднее количество отмененных подзадач, когда-либо выполнявшихся на текущем узле параллельно |
|
INT |
Общее количество подзадач, отмененных с момента запуска узла |
|
TIME |
Максимальное время, в течение которого подзадача находилась в очереди на исполнение |
|
TIME |
Самое продолжительное время ожидания среди подзадач, в данный момент находящихся в очереди на исполнение |
|
TIME |
Среднее время, в течение которого подзадачи находятся в очереди на исполнение |
|
TIME |
Максимальное время исполнения подзадачи |
|
TIME |
Самое продолжительное время, в течение которого исполняется текущая подзадача |
|
TIME |
Среднее время исполнения подзадачи на текущем узле |
|
TIME |
Общее время исполнения завершенных подзадач на текущем узле с момента его запуска |
|
INT |
Общее число подзадач, обработанных узлом с момента его запуска |
|
INT |
Общее количество задач, обработанных узлом |
|
TIME |
Общее время, в течение которого узел занимался выполнением задач |
|
TIME |
Общее время простоя текущего узла (без выполнения подзадач) |
|
TIME |
Время, в течение которого узел простаивал после выполнения последней подзадачи |
|
FLOAT |
Процентное соотношение времени выполнения подзадачи ко времени простоя |
|
FLOAT |
Процентное соотношение времени простоя ко времени выполнения задачи |
|
INT |
Количество ядер процессора, доступных для JVM |
|
DOUBLE |
Процентное соотношение использования процессора, выраженное фракцией в диапазоне [0, 1] |
|
DOUBLE |
Среднее соотношение использование процессора, выраженное фракцией в диапазоне [0, 1] |
|
DOUBLE |
Среднее время, потраченное на сборку мусора с момента последнего обновления метрик. По умолчанию метрики обновляются каждые 2 секунды |
|
LONG |
Размер изначально запрашиваемой JVM у ОС heap-памяти для управления памятью. Если изначальный объем памяти не определен, значение метрики будет равно «–1» |
|
LONG |
Текущий размер heap-памяти, используемый для размещения объекта. |
|
LONG |
Количество heap-памяти в байтах, выделенное для использования JVM. Heap состоит из одного или нескольких пулов памяти. Это значение является суммой значений выделенной heap-памяти во всех пулах heap-памяти |
|
LONG |
Максимальный объем heap-памяти в байтах, используемый для управления памятью. Метрика отображает «–1», если максимальный объем памяти не задан |
|
LONG |
Общий объем heap-памяти в байтах. Если общий объем памяти не задан, метрика отображает «–1» |
|
LONG |
Объем изначально запрашиваемой JVM у ОС off-heap-памяти в байтах для управления памятью. Метрика отображает «–1», если изначальный объем памяти не задан |
|
LONG |
Текущий объем off-heap-памяти, используемый JVM. Off-heap-память состоит из одного или нескольких пулов памяти. Это значение является суммой значений использованной off-heap-памяти всех пулах памяти |
|
LONG |
Объем off-heap-памяти, выделенной JVM для использования. Off-heap-память состоит из одного или нескольких пулов памяти. Это значение является суммой значений выделенного объема off-heap-памяти всех пулах памяти |
|
LONG |
Возвращает максимальный объем off-heap-памяти, которая может использоваться для управления памятью в байтах. Метрика отображает «–1», если максимальный объем памяти не задан |
|
LONG |
Общее количество off-heap-памяти, которая может быть использована для управления памятью. Метрика отображает «–1», если общий объем памяти не задан |
|
TIME |
Время работы JVM |
|
TIMESTAMP |
Время запуска JVM |
|
TIMESTAMP |
Время запуска узла |
|
LONG |
IMDG присваивает всем кеш-операциям инкрементные версии. Эта метрика отображает последнюю версию данных на узле |
|
INT |
Число «живых» потоков, включая |
|
INT |
Максимальное количество «живых» потоков с момента запуска JVM или сброса пиковой нагрузки |
|
LONG |
Общее количество потоков, запущенных с момента запуска JVM |
|
INT |
Количество «живых» |
|
INT |
Число communication-сообщений, отправленных узлом |
|
LONG |
Число отправленных байт |
|
INT |
Число полученных узлом communication-сообщений |
|
LONG |
Число полученных байт |
|
INT |
Размер очереди исходящих сообщений |
TABLES#
Системное представление содержит информацию об SQL-таблицах.
Название |
Тип |
Описание |
|---|---|---|
|
string |
Имя колонки affinity–ключа |
|
int |
ID кеша для таблицы |
|
string |
Имя кеша для таблицы |
|
boolean |
Верно, если производится перестройка индекса для конкретной таблицы |
|
string |
Псевдоним ключа |
|
string |
Имя типа ключа |
|
string |
Имя схемы таблицы |
|
string |
Имя таблицы |
|
string |
Псевдоним значения |
|
string |
Имя типа значения |
TABLE_COLUMNS#
Системное представление содержит информацию о столбцах SQL–таблицы.
Название |
Тип |
Описание |
|---|---|---|
|
boolean |
Верно, если это колонка аффинити–ключа |
|
boolean |
Верно, если значение увеличивается автоматически |
|
string |
Имя колонки |
|
string |
Значение колонки по умолчанию |
|
boolean |
Верно, если допустимо пустое значение |
|
boolean |
Верно в случае первичного ключа (primary key) |
|
int |
Точность колонки |
|
int |
Масштаб колонки |
|
string |
Имя схемы |
|
string |
Имя таблицы |
|
string |
Тип таблицы |
VIEWS#
Системное представление содержит информацию об SQL–представлениях.
Название |
Тип |
Описание |
|---|---|---|
|
string |
Название |
|
string |
Схема |
|
string |
Описание |
VIEWS_COLUMNS#
Системное представление содержит информацию о колонках SQL–представлений.
Название |
Тип |
Описание |
|---|---|---|
|
string |
Имя колонки |
|
string |
Значение колонки по умолчанию |
|
boolean |
Верно, если значение колонки может быть пустым |
|
int |
Точность колонки |
|
int |
Масштаб колонки |
|
string |
Имя схемы |
|
string |
Тип колонки |
|
string |
Имя представления |
INDEXES#
Системное представление содержит информацию об SQL индексах.
Название |
Тип |
Описание |
|---|---|---|
|
string |
Имя индекса |
|
string |
Тип индекса |
|
string |
Колонки, включенные в индекс |
|
string |
Имя схемы |
|
string |
Имя таблицы |
|
string |
Имя кеша |
|
int |
ID кеша |
|
int |
Объем подстановки в байтах |
|
boolean |
Верно, если это индекс первичного ключа (primary key) |
|
boolean |
Верно, если индекс уникален |
PAGE_LISTS#
Список страниц — это структура данных, использующаяся для хранения частично свободных страниц с данными (свободные списки) и полностью свободных выделенных страниц (списки страниц для повторного использования). Целью таких списков является быстрый поиск и локализация страницы с достаточным количеством места в ней для сохранения определенной записи, а также определение того, что такой страницы не существует и необходимо разместить в кеше новую. Списки страниц организуются в пакеты. Каждый такой пакет ссылается на страницы с примерно тем же объемом свободного места.
При включенном режиме Native Persistence списки страниц создаются для каждой партиции каждой группы кешей. Для просмотра таких списков необходимо использовать метрику CACHE_GROUP_PAGE_LISTS.
При отключенном режиме Native Persistence списки страниц создаются для каждого региона данных. В данном случае, необходимо использовать метрику DATA_REGION_PAGE_LISTS.
Системное представление содержит в себе информацию о каждом пакете каждого списка страниц. PAGE_LISTS полезно для понимания того, какой объем данных можно внести в кеш без размещения новых страниц. Также это системное представление помогает определить искажения в использовании списков страниц.
CACHE_GROUP_PAGE_LISTS#
Системное представление содержит информацию о PAGE LISTS кеш-групп.
Название |
Тип |
Описание |
|---|---|---|
|
int |
ID группы кешей |
|
int |
ID партиции |
|
string |
Имя списка страниц |
|
int |
Номер контейнера |
|
long |
Число страниц в контейнере |
|
int |
Число дорожек, используемых контейнером. Дорожки используются для предотвращения возникновения конфликтов |
|
int |
Число страниц в on-heap-кеше списка страниц конкретного контейнера |
|
int |
Свободное пространство (в байтах), доступное для использования для каждой страницы в этом контейнере |
DATA_REGION_PAGE_LISTS#
Системное представление содержит информацию о PAGE LISTS в регионе данных (Data Region).
Название |
Тип |
Описание |
|---|---|---|
|
string |
Имя списка страниц |
|
int |
Номер контейнера |
|
long |
Число страниц в контейнере |
|
int |
Число дорожек, используемых контейнером. Дорожки используются для предотвращения возникновения конфликтов |
|
int |
Число страниц в on-heap-кеше списка страниц конкретного контейнера |
|
int |
Свободное пространство (в байтах), доступное для использования для каждой страницы в этом контейнере |
PARTITION_STATES#
Системное представление содержит информацию о распределении партиций группы кеша по узлам кластера.
Имя |
Тип данных |
Описание |
|---|---|---|
|
int |
Идентификатор группы кешей |
|
int |
Идентификатор партиции |
|
UUID |
Идентификатор узла |
|
string |
Состояние (статус) партиций. Партиция может иметь следующие состояния:
|
|
boolean |
Метка основной партиции |
BINARY_METADATA#
Системное представление содержит информацию обо всех доступных бинарных типах.
Название |
Тип |
Описание |
|---|---|---|
|
int |
ID типа |
|
string |
Имя типа |
|
string |
Имя поля аффинити-ключа |
|
int |
Число полей |
|
string |
Записанные поля объектов |
|
string |
ID схем, зарегистрированные для конкретного типа |
|
boolean |
Метрика показывает, является ли тип перечисляемым (enum) |
METASTORAGE#
Системное представление дает доступ к кешу хранилища метаданных (metastorage cache).
Название |
Тип |
Описание |
|---|---|---|
|
string |
Название |
|
string |
Строковое или простое бинарное (в случае невозможности десериализации данных) представление элемента |
DISTRIBUTED_METASTORAGE#
Системное представление дает доступ к кешу распределенного хранилища метаданных (distributed metastorage cache).
Название |
Тип |
Описание |
|---|---|---|
|
string |
Название |
|
string |
Строковое или простое бинарное (в случае невозможности десериализации данных) представление элемента |
DS_QUEUES#
Системное представление отображает список IgniteQueue. Обратите внимание: очередь будет отображаться не на родительском узле только после первоначального использования на данном узле.
Название |
Тип |
Описание |
|---|---|---|
|
UUID |
ID |
|
string |
Имя структуры данных |
|
int |
Пропускная способность |
|
int |
Текущий размер |
|
boolean |
|
|
boolean |
|
|
string |
Имя группы кешей для сохранения структуры данных |
|
int |
ID группы кешей для сохранения структуры данных |
|
boolean |
|
DS_SETS#
Системное представление отображает список Ignite Set. Обратите внимание: данные будут показаны не на родительском узле только после первоначального использования на текущем узле.
Название |
Тип |
Описание |
|---|---|---|
|
UUID |
ID |
|
string |
Имя структуры данных |
|
int |
Текущий размер |
|
boolean |
|
|
string |
Имя группы кешей для хранения структуры данных |
|
int |
ID группы кешей для хранения структуры данных |
|
boolean |
|
DS_ATOMICSEQUENCES#
Системное представление отображает список IgniteAtomicSequence. Обратите внимание: IgniteAtomicSequence будет показан не на родительском узле только после первоначального использования на данном узле.
Название |
Тип |
Описание |
|---|---|---|
|
string |
Имя структуры данных |
|
long |
Текущее значение последовательности |
|
long |
Размер локального пакета |
|
string |
Имя группы кешей для хранения структуры данных |
|
int |
ID группы кешей, используемой для сохранения структуры данных |
|
boolean |
|
DS_ATOMICLONGS#
Системное представление отображает список IgniteAtomicLong. Обратите внимание: IgniteAtomicLong будет показан не на родительском узле только после первоначального использования на данном узле.
Название |
Тип |
Описание |
|---|---|---|
|
string |
Имя структуры данных |
|
long |
Текущее значение последовательности |
|
string |
Имя группы кешей для хранения структуры данных |
|
int |
ID группы кешей, используемой для сохранения структуры данных |
|
boolean |
|
DS_ATOMICREFERENCES#
Системное представление отображает список IgniteAtomicReference. Обратите внимание: IgniteAtomicReference будет отображаться не на родительском узле только после первоначального использования на данном узле.
Название |
Тип |
Описание |
|---|---|---|
|
string |
Имя структуры данных |
|
long |
Текущее значение последовательности |
|
string |
Имя группы кешей для хранения структуры данных |
|
int |
ID группы кешей, используемой для сохранения структуры данных |
|
boolean |
|
DS_ATOMICSTAMPED#
Системное представление отображает список IgniteAtomicStamped. Обратите внимание: IgniteAtomicStamped будет показан не на родительском узле только после первоначального использования на данном узле.
Название |
Тип |
Описание |
|---|---|---|
|
string |
Имя структуры данных |
|
long |
Текущее значение последовательности |
|
string |
Текущее значение метки |
|
string |
Имя группы кешей для хранения структуры данных |
|
int |
ID группы кешей, используемой для сохранения структуры данных |
|
boolean |
|
DS_COUNTDOWNLATCHES#
Системное представление отображает список IgniteCountDownLatch. Обратите внимание: IgniteCountDownLatch будет показан не на родительском узле только после первоначального использования на данном узле.
Название |
Тип |
Описание |
|---|---|---|
|
string |
Имя структуры данных |
|
int |
Текущее число |
|
int |
Изначальное число |
|
boolean |
Для автоматического снятия блокировки с кеша, когда счетчик близится к нулю, должно быть установлено значение |
|
string |
Имя группы кешей для сохранения структуры данных |
|
int |
ID группы кешей для сохранения структуры данных |
|
boolean |
|
DS_SEMAPHORES#
Системное представление отображает список IgniteSemaphore. Обратите внимание: IgniteSemaphore будет отображаться не на родительских узлах только после первоначального использования на данном узле.
Название |
Тип |
Описание |
|---|---|---|
|
string |
Имя структуры данных |
|
long |
Количество доступных разрешений |
|
boolean |
|
|
int |
Определенное число узлов, ожидающих блокировки |
|
boolean |
|
|
boolean |
|
|
string |
Имя группы кешей для сохранения структуры данных |
|
int |
ID группы кешей для сохранения структуры данных |
|
boolean |
|
DS_REENTRANTLOCKS#
Системное представление отображает содержимое IgniteLock. Обратите внимание: блокировка будет отображаться не на родительском узле только после первоначального использования на данном узле.
Название |
Тип |
Описание |
|---|---|---|
|
string |
Имя структуры данных |
|
boolean |
|
|
boolean |
|
|
boolean |
|
|
boolean |
|
|
boolean |
|
|
string |
Имя группы кешей для сохранения структуры данных |
|
int |
ID группы кешей для сохранения структуры данных |
|
boolean |
|
SQL_PLANS_HISTORY#
Системное представление содержит список планов ранее выполненных SQL-запросов.
Название |
Тип |
Описание |
|---|---|---|
|
string |
Название схемы |
|
string |
Текст запроса |
|
string |
Текст плана SQL-запроса |
|
boolean |
Флаг локального выполнения запроса. Если запрос выполняется локально, флаг принимает значение |
|
string |
SQL-движок |
|
date |
Дата последнего выполнения |
Вопросы производительности#
При использовании SQL-движка, который основан на H2, сбор планов выполненных SQL-запросов может привести к дополнительной нагрузке на производительность (при условии высокой интенсивности запросов). Дополнительная нагрузка влияет на задержку и пропускную способность. По этой причине сбор планов выполненных SQL-запросов по умолчанию отключен для движка, который основан на H2.
Чтобы включить сбор планов выполненных SQL-запросов, настройте размер истории планов выполненных SQL-запросов:
<bean id="grid.cfg" class="org.apache.ignite.configuration.IgniteConfiguration">
<property name="sqlConfiguration">
<bean class="org.apache.ignite.configuration.SqlConfiguration">
<property name="sqlPlanHistorySize" value="1000"/>
</bean>
</property>
</bean>
IgniteConfiguration cfg = new IgniteConfiguration();
cfg.setSqlConfiguration(new SqlConfiguration().setSqlPlanHistorySize(1000));
При использовании SQL-движка, который основан на Apache Calcite, сбор планов выполненных SQL-запросов не влияет на производительность, поэтому он включен по умолчанию. Размер истории планов выполненных SQL-запросов по умолчанию — 1000 записей.
STATISTICS_CONFIGURATION#
Системное представление содержит информацию о конфигурации SQL–статистики.
Название |
Тип |
Описание |
|---|---|---|
|
VARCHAR |
Имя схемы |
|
VARCHAR |
Тип объекта |
|
VARCHAR |
Имя объекта |
|
VARCHAR |
Имя колонки |
|
TINYINT |
Максимальный процент устаревающих строк в статистике |
|
BIGINT |
Если не |
|
BIGINT |
Если не |
|
BIGINT |
Если не |
|
INT |
Если не |
|
BIGINT |
Версия конфигурации |
STATISTICS_LOCAL_DATA#
Системное представление содержит SQL–статистику для локально управляемых (или сохраненных) данных. STATISTICS_LOCAL_DATA специфична для каждого конкретного узла, поэтому у каждого узла есть пример метрики, содержащий информацию со статистикой его локальных данных.
Название |
Тип |
Описание |
|---|---|---|
|
VARCHAR |
Имя схемы |
|
VARCHAR |
Тип объекта |
|
VARCHAR |
Имя объекта |
|
VARCHAR |
Имя колонки |
|
BIGINT |
Число строк в колонке |
|
BIGINT |
Число уникальных не |
|
BIGINT |
Число |
|
BIGINT |
Общее число значений в колонке |
|
INTEGER |
Средний размер значения в байтах |
|
BIGINT |
Версия статистики |
|
VARCHAR |
Максимальное время, в течение которого вся статистика по партициям использовалась для создания локальной статистики |
STATISTICS_PARTITION_DATA#
Системное представление содержит информацию об SQL–статистике по каждой партиции данных, хранящейся на локальном узле.
Название |
Тип |
Описание |
|---|---|---|
|
VARCHAR |
Имя схемы |
|
VARCHAR |
Тип объекта |
|
VARCHAR |
Имя объекта |
|
VARCHAR |
Имя колонки |
|
INTEGER |
Номер партиции |
|
BIGINT |
Число строк в колонке |
|
BIGINT |
Обновление счетчика партиций после сбора статистики |
|
BIGINT |
Число уникальных не |
|
BIGINT |
Число |
|
BIGINT |
Общее число значений в колонке |
|
INTEGER |
Средний размер значения в байтах |
|
BIGINT |
Версия статистики |
|
VARCHAR |
Максимальное время, в течение которого вся статистика по партициям использовалась для создания локальной статистики |
SNAPSHOT#
Системное представление содержит информацию о локальных снепшотах.
Название |
Тип |
Описание |
|---|---|---|
|
VARCHAR |
Имя снепшота |
|
VARCHAR |
Последовательный идентификатор узла, к которому относятся данные снепшота |
|
VARCHAR |
Базовые узлы, на которые влияет снепшот |
|
VARCHAR |
Имена групп кеша, включенных в снепшот |
|
BIGINT |
Индекс сегмента WAL, содержащий записи WAL-снепшотов |
|
INTEGER |
Индекс инкрементального снепшота |
|
VARCHAR |
Тип снепшота — полный или инкрементальный |