Слияние кода завершено, страница обновится автоматически
.node_name | String | Имя узла |
.node_status | String | Статус узла |
.uptime | String | Время работы RMQTT Broker, в формате «D дней, H часов, m минут, s секунд» |
.version | String | Версия RMQTT Broker |
Примеры:
Получить статус всех узлов:
$ curl -i -X GET "http://localhost:6060/api/v1/nodes"
[{"boottime":"2022-06-30 05:20:24 UTC","connections":1,"disk_free":77382381568,"disk_total":88692346880,"load1":0.0224609375,"load15":0.0,"load5":0.0263671875,"memory_free":1457954816,"memory_total":2084057088,"memory_used":626102272,"node_id":1,"node_name":"1@127.0.0.1","node_status":"Running","uptime":"5 дней 23 часа, 33 минуты, 0 секунд","version":"rmqtt/0.2.3-20220724094535"}]
Получить статус указанного узла:
$ curl -i -X GET "http://localhost:6060/api/v1/nodes/1"
{"boottime":"2022-06-30 05:20:24 UTC","connections":1,"disk_free":77382381568,"disk_total":88692346880,"load1":0.0224609375,"load15":0.0,"load5":0.0263671875,"memory_free":1457954816,"memory_total":2084057088,"memory_used":626102272,"node_id":1,"node_name":"1@127.0.0.1","node_status":"Running","uptime":"5 дней 23 часа, 33 минуты, 0 секунд","version":"rmqtt/0.2.3-20220724094535"}
Возвращает информацию обо всех клиентах в кластере.
Параметры строки запроса:
Имя | Тип | Требуется | По умолчанию | Описание |
---|---|---|---|---|
_limit | Integer | Нет | 10000 | Максимальное количество элементов данных, возвращаемых за один раз. Если не указано, определяется конфигурационным элементом max_row_limit плагина rmqtt-http-api.toml |
Имя | Тип | Требуется | Описание |
---|---|---|---|
clientid | String | Нет | Идентификатор клиента |
username | String | Нет | Имя пользователя клиента |
ip_address | String | Нет | IP-адрес клиента |
connected | Bool | Нет | Текущий статус подключения клиента |
clean_start | Bool | Нет | Использует ли клиент новый сеанс |
session_present | Bool | Нет | Подключён ли клиент к существующему сеансу |
proto_ver | Integer | Нет | Версия протокола клиента |
_like_clientid | String | Нет | Нечёткий поиск идентификатора клиента по методу подстроки |
_like_username | String | Нет | Клиентское имя пользователя, нечёткий поиск по подстроке |
_gte_created_at | Integer | Нет | Поиск времени создания сеанса клиента методом больше или равно |
_lte_created_at | Integer | Нет | Поиск времени создания сеанса клиента методом меньше или равно |
_gte_connected_at | Integer | Нет | Поиск времени подключения клиента методом больше или равно |
_lte_connected_at | Integer | Нет | Поиск времени подключения клиента методом меньше или равно |
_gte_mqueue_len | Integer | Нет | Текущая длина очереди сообщений методом больше или равно |
_lte_mqueue_len | — | Нет | — |
Имя | Тип | Описание | |
----------------------- | ------------------ | ---------------------------------------------------------------------------------------------- | |
[] | Массив объектов | Информация для всех клиентов | |
[0].node_id | Целое число | Идентификатор узла, к которому подключён клиент | |
[0].clientid | Строка | Идентификатор клиента | |
[0].username | Строка | Имя пользователя при подключении | |
[0].proto_ver | Целое число | Версия протокола, используемая клиентом | |
[0].ip_address | Строка | IP-адрес клиента | |
[0].port | Целое число | Порт клиента | |
[0].connected_at | Строка | Время подключения клиента в формате «ГГГГ-ММ-ДД ЧЧ:мм:сс» | |
[0].disconnected_at | Строка | Время отключения клиента от сети в формате «ГГГГ-ММ-ДД ЧЧ:мм:сс», это поле действительно и возвращается только тогда, когда connected равно false
|
|
[0].disconnected_reason | Строка | Причина отключения клиента | |
[0].connected | Логическое значение | Указывает, подключён ли клиент | |
[0].keepalive | Целое число | время keepalive с единицей измерения секунда | |
[0].clean_start | Логическое значение | Указывает, использует ли клиент новый сеанс | |
[0].expiry_interval | Целое число | интервал истечения срока действия сеанса с единицей измерения секунда | |
[0].created_at | Строка | время создания сеанса в формате «ГГГГ-ММ-ДД ЧЧ:мм:сс» | |
[0].subscriptions_cnt | Целое число | количество подписок, установленных этим клиентом | |
[0].max_subscriptions | Целое число | максимальное количество подписок, разрешённых этому клиенту | |
[0].inflight | Целое число | текущая длина inflight | |
[0].max_inflight | Целое число | максимальная длина inflight | |
[0].mqueue_len | Целое число | текущая длина очереди сообщений | |
[0].max_mqueue | Целое число | Имя | Тип |
--- | --- | --- | |
[0].plugins.descr | Строка | Описание плагина | |
[0].plugins.active | Логическое значение | Активен ли плагин | |
[0].plugins.inited | Логическое значение | Инициализирован ли плагин | |
[0].plugins.immutable | Логическое значение | Является ли плагин неизменяемым, неизменяемые плагины не могут быть остановлены, конфигурация изменена, перезапущены и т. д. | |
[0].plugins.attrs | JSON | Другие дополнительные свойства плагина | Успешный ответ (JSON): |
Имя | Тип | Описание |
---|---|---|
[] | Массив объектов | Список данных о состоянии каждого узла |
[0].node | Объект JSON | Узел |
Примеры:
$ curl -i -X GET "http://localhost:6060/api/v1/stats"
[
{
"node": 1
}
]
``` | | Тип данных | Описание |
| :-- |:--: |:--:|
| client.publish.error | Integer | Publish, количество ошибок |
| client.subscribe.auth.error | Integer | Subscribe, количество сбоев при проверке правил ACL |
| client.subscribe.error | Integer | Subscribe, количество ошибок |
| client.subscribe.check.acl | Integer | Количество проверок правил ACL |
| client.subscribe | Integer | Количество клиентских подписок |
| client.unsubscribe | Integer | Количество отмен клиентских подписок |
| messages.publish | Integer | Получено пакетов PUBLISH |
| messages.publish.admin | Integer | Получено сообщений PUBLISH через HTTP API |
| messages.publish.custom | Integer | Получено сообщений PUBLISH от клиентов MQTT |
| messages.publish.lastwill | Integer | Получено сообщений PUBLISH с последним сообщением воли |
| messages.publish.retain | Integer | Получено сообщений PUBLISH с сохранённым пересылаемым сообщением |
| messages.publish.system | Integer | Получено системных сообщений PUBLISH ($SYS/#) |
| messages.delivered | Integer | Отправленных сообщений клиенту |
| messages.delivered.admin | Integer | Отправленных клиенту сообщений через HTTP API |
| messages.delivered.custom | Integer | Отправленных клиенту сообщений от клиентов MQTT |
| messages.delivered.lastwill | Integer | Отправленных последнему клиенту сообщений воли |
| messages.delivered.retain | Integer | Отправленных сохранённых пересылаемых сообщений клиенту |
| messages.delivered.system | Integer | Отправленных системных сообщений клиенту ($SYS/#) |
| messages.acked | Integer | Полученных пакетов PUBACK и PUBREC |
| messages.acked.admin | Integer | Полученных PUBACK и PUBREC для сообщений через HTTP API |
| messages.acked.custom | Integer | Полученных PUBACK и PUBREC от клиентов MQTT |
| messages.acked.lastwill | Integer | Полученных PUBACK и PUBREC с последним сообщением воли |
| messages.acked.retain | Integer | Полученных PUBACK и PUBREC сохранённых пересылаемых сообщений |
| messages.acked.system | Integer | Полученных PUBACK и PUBREC системных сообщений ($SYS/#) |
| messages.nonsubscribed | Integer | PUBLISH сообщений без найденной подписки |
| messages.nonsubscribed.admin | Integer | PUBLISH сообщений без подписки, опубликованных через HTTP API |
| messages.nonsubscribed.custom | Integer | PUBLISH сообщений без подписки, опубликованных клиентами MQTT |
| messages.nonsubscribed.lastwill | Integer | PUBLISH сообщений без подписки с последним сообщением воли |
| messages.nonsubscribed.system | Integer | PUBLISH системных сообщений без подписки ($SYS/#) | ### GET /api/v1/metrics/prometheus
Return the status data and statistical metrics of all nodes in the cluster in *prometheus* format.
**Path Parameters:** None
**Success Response Body (TEXT):**
В запросе представлен список метрик с числовыми значениями.
Метрики представляют собой пары ключ-значение, где ключ — это элемент статистики, а значение — количество случаев, соответствующих этому элементу. Например:
* rmqtt_metrics{item="client.auth.anonymous",node="1"} 0
Здесь «client.auth.anonymous» — это ключ, а «0» — значение, которое показывает, что на узле с идентификатором «1» не было анонимных попыток аутентификации.
Примеры запросов к API показывают, как можно использовать эти метрики для анализа работы системы.
Пример запроса:
```bash
$ curl -i -X GET "http://localhost:6060/api/v1/metrics/prometheus"
``` rmqtt_metrics{item="messages.dropped",node="all"} 0
rmqtt_metrics{item="messages.nonsubscribed",node="1"} 0
rmqтт_metrics{item="messages.nonsubscribed",node="2"} 0
rmqtt_metrics{item="messages.nonsubscribed",node="3"} 0
rmqtt_metrics{item="messages.nonsubscribed",node="all"} 0
rmqtt_metrics{item="messages.nonsubscribed.admin",node="1"} 0
rmqtt_metrics{item="messages.nonsubscribed.admin",node="2"} 0
rmqtt_metrics{item="messages.nonsubscribed.admin",node="3"} 0
rmqtt_metrics{item="messages.nonsubscribed.admin",node="all"} 0
rmqtt_metrics{item="messages.nonsubscribed.bridge",node="1"} 0
rmqtt_metrics{item="messages.nonsubscribed.bridge",node="2"} 0
rmqtt_metrics{item="messages.nonsubscribed.bridge",node="3"} 0
rmqtt_metrics{item="messages.nonsubscribed.bridge",node="all"} 0
rmqtt_metrics{item="messages.nonsubscribed.custom",node="1"} 0
rmqtt_metrics{item="messages.nonsubscribed.custom",node="2"} 0
rmqtt_metrics{item="messages.nonsubscribed.custom",node="3"} 0
rmqtt_metrics{item="messages.nonsubscribed.custom",node="all"} 0
rmqtt_metrics{item="messages.nonsubscribed.lastwill",node="1"} 0
rmqtt_metrics{item="messages.nonsubscribed.lastwill",node="2"} 0
rmqtt_metrics{item="messages.nonsubscribed.lastwill",node="3"} 0
rmqtt_metrics{item="messages.nonsubscribed.lastwill",node="all"} 0
rmqtt_metrics{item="messages.nonsubscribed.system",node="1"} 0
rmqtt_metrics{item="messages.nonsubscribed.system",node="2"} 0
rmqtt_metrics{item="messages.nonsubscribed.system",node="3"} 0
rmqtt_metrics{item="messages.nonsubscribed.system",node="all"} 0
rmqtt_metrics{item="messages.publish",node="1"} 0
rmqtt_metrics{item="messages.publish",node="2"} 0
rmqtt_metrics{item="messages.publish",node="3"} 0
rmqtt_metrics{item="messages.publish",node="all"} 0
rmqtt_metrics{item="messages.publish.admin",node="1"} 0
rmqtt_metrics{item="messages.publish.admin",node="2"} 0
rmqtt_metrics{item="messages.publish.admin",node="3"} 0
rmqtt_metrics{item="messages.publish.admin",node="all"} 0
rmqtt_metrics{item="messages.publish.bridge",node="1"} 0
rmqtt_metrics{item="messages.publish.bridge",node="2"} 0
rmqtt_metrics{item="messages.publish.bridge",node="3"} 0
rmqtt_metrics{item="messages.publish.bridge",node="all"} 0
rmqtt_metrics{item="messages.publish.custom",node="1"} 0
rmqtt_metrics{item="messages.publish.custom",node="2"} 0
rmqtt_metrics{item="messages.publish.custom",node="3"} 0
rmqtt_metrics{item="messages.publish.custom",node="all"} 0
rmqtt_metrics{item="messages.publish.lastwill",node="1"} 0
rmqtt_metrics{item="messages.publish.lastwill",node="2"} 0
rmqtt_metrics{item="messages.publish.lastwill",node="3"} 0
rmqtt_metrics{item="messages.publish.lastwill",node="all"} 0
rmqtt_metrics{item="messages.publish.system",node="1"} 0
rmqtt_metrics{item="messages.publish.system",node="2"} 0
rmqtt_metrics{item="messages.publish.system",node="3"} 0
rmqtt_metrics{item="messages.publish.system",node="all"} 0
rmqtt_metrics{item="session.created",node="1"} 1
rmqtt_metrics{item="session.created",node="2"} 2
rmqtt_metrics{item="session.created",node="3"} 1
rmqtt_metrics{item="session.created",node="all"} 4
rmqtt_metrics{item="session.resumed",node="1"} 0
rmqtt_metrics{item="session.resumed",node="2"} 0
rmqtt_metrics{item="session.resumed",node="3"} 0
rmqtt_metrics{item="session.resumed",node="all"} 0
rmqtt_metrics{item="session.subscribed",node="1"} 0
rmqtt_metrics{item="session.subscribed",node="2"} 0
rmqtt_metrics{item="session.subscribed",node="3"} 0
rmqtt_metrics{item="session.subscribed",node="all"} 0
rmqtt_metrics{item="session.terminated",node="1"} 0
rmqtt_metrics{item="session.terminated",node="2"} 0
rmqtt_metrics{item="session.terminated",node="3"} 0
rmqtt_metrics{item="session.terminated",node="all"} 0
rmqtt_metrics{item="session.unsubscribed",node="1"} 0
rmqtt_metrics{item="session.unsubscribed",node="2"} 0
rmqtt_metrics{item="session.unsubscribed",node="3"} 0
rmqtt_metrics{item="session.unsubscribed",node="all"} 0
# HELP rmqtt_nodes All nodes status
# TYPE rmqtt_nodes gauge
rmqtt_nodes{item="disk_free",node="1"} 46307106816
rmqtt_nodes{item="disk_free",node="2"} **rmqtt_nodes**
* item="disk_free",node="3": 1000896192512.
* item="disk_total",node="1": 1000896192512.
* item="load1",node="all": 0.
* item="memory_free",node="2": 34070585344.
* item="running",node="all": 3.
**rmqtt_stats**
* item="connections.count",node="2": 2.
* item="handshakings.max",node="all": 0. ```
rmqtt_stats{item="in_inflights.max",node="1"} 0
rmqtt_stats{item="in_inflights.max",node="2"} 0
rmqтт_stats{item="in_inflights.max",node="3"} 0
rmqtt_stats{item="in_inflights.max",node="all"} 0
rmqtt_stats{item="message_queues.count",node="1"} 0
rmqtt_stats{item="message_queues.count",node="2"} 0
rmqtt_stats{item="message_queues.count",node="3"} 0
rmqtt_stats{item="message_queues.count",node="all"} 0
rmqtt_stats{item="message_queues.max",node="1"} 0
rmqtt_stats{item="message_queues.max",node="2"} 0
rmqtt_stats{item="message_queues.max",node="3"} 0
rmqtt_stats{item="message_queues.max",node="all"} 0
rmqtt_stats{item="message_storages.count",node="1"} -1
rmqtt_stats{item="message_storages.count",node="2"} -1
rmqtt_stats{item="message_storages.count",node="3"} -1
rmqtt_stats{item="message_storages.count",node="all"} -3
rmqtt_stats{item="message_storages.max",node="1"} 0
rmqtt_stats{item="message_storages.max",node="2"} 0
rmqtt_stats{item="message_storages.max",node="3"} 0
rmqtt_stats{item="message_storages.max",node="all"} 0
rmqtt_stats{item="out_inflights.count",node="1"} 0
rmqtt_stats{item="out_inflights.count",node="2"} 0
rmqtt_stats{item="out_inflights.count",node="3"} 0
rmqtt_stats{item="out_inflights.count",node="all"} 0
rmqtt_stats{item="out_inflights.max",node="1"} 0
rmqtt_stats{item="out_inflights.max",node="2"} 0
rmqtt_stats{item="out_inflights.max",node="3"} 0
rmqtt_stats{item="out_inflights.max",node="all"} 0
rmqtt_stats{item="retaineds.count",node="1"} 0
rmqtt_stats{item="retaineds.count",node="2"} 0
rmqtt_stats{item="retaineds.count",node="3"} 0
rmqtt_stats{item="retaineds.count",node="all"} 0
rmqtt_stats{item="retaineds.max",node="1"} 0
rmqtt_stats{item="retaineds.max",node="2"} 0
rmqtt_stats{item="retaineds.max",node="3"} 0
rmqtt_stats{item="retaineds.max",node="all"} 0
rmqtt_stats{item="routes.count",node="1"} 0
rmqtt_stats{item="routes.count",node="2"} 0
rmqtt_stats{item="routes.count",node="3"} 0
rmqtt_stats{item="routes.count",node="all"} 0
rmqtt_stats{item="routes.max",node="1"} 0
rmqtt_stats{item="routes.max",node="2"} 0
rmqtt_stats{item="routes.max",node="3"} 0
rmqtt_stats{item="routes.max",node="all"} 0
rmqtt_stats{item="sessions.count",node="1"} 1
rmqtt_stats{item="sessions.count",node="2"} 2
rmqtt_stats{item="sessions.count",node="3"} 1
rmqtt_stats{item="sessions.count",node="all"} 4
rmqtt_stats{item="sessions.max",node="1"} 1
rmqtt_stats{item="sessions.max",node="2"} 2
rmqtt_stats{item="sessions.max",node="3"} 1
rmqtt_stats{item="sessions.max",node="all"} 4
rmqtt_stats{item="subscriptions.count",node="1"} 0
rmqtt_stats{item="subscriptions.count",node="2"} 0
rmqtt_stats{item="subscriptions.count",node="3"} 0
rmqtt_stats{item="subscriptions.count",node="all"} 0
rmqtt_stats{item="subscriptions.max",node="1"} 0
rmqtt_stats{item="subscriptions.max",node="2"} 0
rmqtt_stats{item="subscriptions.max",node="3"} 0
rmqtt_stats{item="subscriptions.max",node="all"} 0
rmqtt_stats{item="subscriptions_shared.count",node="1"} 0
rmqtt_stats{item="subscriptions_shared.count",node="2"} 0
rmqtt_stats{item="subscriptions_shared.count",node="3"} 0
rmqtt_stats{item="subscriptions_shared.count",node="all"} 0
rmqtt_stats{item="subscriptions_shared.max",node="1"} 0
rmqtt_stats{item="subscriptions_shared.max",node="2"} 0
rmqtt_stats{item="subscriptions_shared.max",node="3"} 0
rmqtt_stats{item="subscriptions_shared.max",node="all"} 0
rmqtt_stats{item="topics.count",node="1"} 0
rmqtt_stats{item="topics.count",node="2"} 0
rmqtt_stats{item="topics.count",node="3"} 0
rmqtt_stats{item="topics.count",node="all"} 0
rmqtt_stats{item="topics.max",node="1"} 0
rmqtt_stats{item="topics.max",node="2"} 0
rmqtt_stats{item="topics.max",node="3"} 0
rmqtt_stats{item="topics.max",node="all"} 0
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )