<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Документация Proto Observability Platform – AMQP</title><link>/docs/tags/amqp/</link><description>Recent content in AMQP on Документация Proto Observability Platform</description><generator>Hugo -- gohugo.io</generator><language>ru</language><atom:link href="/docs/tags/amqp/index.xml" rel="self" type="application/rss+xml"/><item><title>Guides: Очереди сообщений (APM)</title><link>/docs/guides/message_queues/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/guides/message_queues/</guid><description>
&lt;p>На этой странице:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="#%d0%b2%d0%b2%d0%b5%d0%b4%d0%b5%d0%bd%d0%b8%d0%b5">Введение&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-mq-%d1%81%d0%b5%d1%80%d0%b2%d0%b8%d1%81">Что такое MQ-сервис&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%d0%ba%d0%b0%d0%ba-%d0%be%d1%82%d0%ba%d1%80%d1%8b%d1%82%d1%8c">Как открыть&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%d1%81%d0%bf%d0%b8%d1%81%d0%be%d0%ba-%d0%be%d1%87%d0%b5%d1%80%d0%b5%d0%b4%d0%b5%d0%b9-%d1%81%d0%be%d0%be%d0%b1%d1%89%d0%b5%d0%bd%d0%b8%d0%b9">Список очередей сообщений&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%d0%b4%d0%b5%d1%82%d0%b0%d0%bb%d1%8c%d0%bd%d1%8b%d0%b9-%d0%b4%d0%b0%d1%88%d0%b1%d0%be%d1%80%d0%b4-mq-%d1%81%d0%b5%d1%80%d0%b2%d0%b8%d1%81%d0%b0">Детальный дашборд MQ-сервиса&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%d0%b3%d1%80%d0%b0%d1%84-%d0%b7%d0%b0%d0%b2%d0%b8%d1%81%d0%b8%d0%bc%d0%be%d1%81%d1%82%d0%b5%d0%b9-%d0%b8-%d0%bf%d0%b5%d1%80%d0%b5%d1%85%d0%be%d0%b4%d1%8b-%d0%b8%d0%b7-%d1%81%d0%bf%d0%b0%d0%bd%d0%b0">Граф зависимостей и переходы из спана&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%d1%81%d0%be%d0%be%d1%82%d0%bd%d0%be%d1%88%d0%b5%d0%bd%d0%b8%d0%b5-%d1%81-%d0%b8%d0%bd%d1%84%d1%80%d0%b0%d1%81%d1%82%d1%80%d1%83%d0%ba%d1%82%d1%83%d1%80%d0%bd%d1%8b%d0%bc-%d0%bc%d0%be%d0%bd%d0%b8%d1%82%d0%be%d1%80%d0%b8%d0%bd%d0%b3%d0%be%d0%bc-mq">Соотношение с инфраструктурным мониторингом MQ&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%d0%be%d0%b3%d1%80%d0%b0%d0%bd%d0%b8%d1%87%d0%b5%d0%bd%d0%b8%d1%8f">Ограничения&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="введение">Введение&lt;/h2>
&lt;p>&lt;strong>Очереди сообщений&lt;/strong> — раздел модуля APM платформы Proto Observability, в котором очереди и топики систем обмена сообщениями (Kafka, JMS, AMQP, RabbitMQ и др.) представлены как самостоятельные сущности. Для каждой очереди доступен отдельный дашборд со статистикой операций, временем обработки, процентом ошибок и списком вызывающих и потребляющих сервисов.&lt;/p>
&lt;p>В отличие от инфраструктурного мониторинга брокера (см. &lt;a href="../../instrumentation/infra/mq/">Мониторинг очередей сообщений в инфраструктуре&lt;/a>), этот раздел показывает очередь с точки зрения &lt;strong>прикладной нагрузки&lt;/strong>: сколько и каких сообщений проходит через неё, как быстро они обрабатываются и какие сервисы являются продюсерами и консьюмерами.&lt;/p>
&lt;div class="alert alert-info" role="alert">
&lt;h4 class="alert-heading">Версия&lt;/h4>
Данный функционал доступен начиная с версии 200.
&lt;/div>
&lt;hr>
&lt;h2 id="что-такое-mq-сервис">Что такое MQ-сервис&lt;/h2>
&lt;p>MQ-сервис — это уникальная очередь или топик, через который инструментированные сервисы платформы обмениваются сообщениями. Платформа автоматически обнаруживает MQ-сервисы по спанам с атрибутами &lt;code>messaging.*&lt;/code>:&lt;/p>
&lt;ul>
&lt;li>&lt;code>messaging.system&lt;/code> — тип системы обмена сообщениями (&lt;code>kafka&lt;/code>, &lt;code>rabbitmq&lt;/code>, &lt;code>jms&lt;/code>, &lt;code>amqp&lt;/code> и т.п.);&lt;/li>
&lt;li>&lt;code>messaging.destination&lt;/code> / &lt;code>messaging.destination.name&lt;/code> — имя очереди или топика;&lt;/li>
&lt;li>&lt;code>messaging.operation&lt;/code> — вид операции (&lt;code>send&lt;/code>, &lt;code>receive&lt;/code>, &lt;code>process&lt;/code>);&lt;/li>
&lt;li>&lt;code>amqp.queue&lt;/code>, &lt;code>amqp.routing_key&lt;/code>, &lt;code>amqp.exchange&lt;/code> — атрибуты AMQP / RabbitMQ.&lt;/li>
&lt;/ul>
&lt;p>Каждое уникальное место назначения становится отдельным MQ-сервисом. В графе зависимостей такие сервисы помечаются иконкой очереди. Полный список поддерживаемых атрибутов см. в &lt;a href="../../instrumentation/tracing/tags_naming_convention/#%d1%81%d0%be%d0%be%d0%b1%d1%89%d0%b5%d0%bd%d0%b8%d1%8f">Соглашении об именовании тегов&lt;/a>.&lt;/p>
&lt;hr>
&lt;h2 id="как-открыть">Как открыть&lt;/h2>
&lt;p>Перейдите в раздел &lt;strong>Приложения&lt;/strong> &amp;gt; &lt;strong>Очереди сообщений&lt;/strong> в основном меню навигации платформы.&lt;/p>
&lt;p>Также детальный дашборд MQ-сервиса можно открыть:&lt;/p>
&lt;ul>
&lt;li>из вкладки &lt;strong>Связи&lt;/strong> любого инструментированного сервиса — кликнув на узел очереди в таблице или в графе;&lt;/li>
&lt;li>из контекстного меню узла очереди на графе сервисной топологии;&lt;/li>
&lt;li>из деталей спана — кликнув на значения &lt;code>messaging.destination&lt;/code>, &lt;code>messaging.destination.name&lt;/code> или &lt;code>amqp.queue&lt;/code>.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="список-очередей-сообщений">Список очередей сообщений&lt;/h2>
&lt;p>Страница списка показывает все обнаруженные в трейсах очереди и топики с агрегированными показателями.&lt;/p>
&lt;p>&lt;strong>Столбцы таблицы:&lt;/strong>&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Столбец&lt;/th>
&lt;th>Описание&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>Имя очереди&lt;/strong> (&lt;code>messaging.destination&lt;/code>)&lt;/td>
&lt;td>Имя очереди или топика&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Система&lt;/strong> (&lt;code>messaging.system&lt;/code>)&lt;/td>
&lt;td>Тип системы: Kafka, RabbitMQ, JMS, AMQP и т.п.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Вызовов в минуту&lt;/strong>&lt;/td>
&lt;td>Среднее количество операций над очередью&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Время обработки&lt;/strong>&lt;/td>
&lt;td>Среднее время операции (&lt;code>send&lt;/code> / &lt;code>process&lt;/code>)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Процент ошибок&lt;/strong>&lt;/td>
&lt;td>Доля операций, завершившихся ошибкой&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Зависимых сервисов&lt;/strong>&lt;/td>
&lt;td>Количество сервисов, работающих с этой очередью&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>&lt;strong>Возможности:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Поиск по имени очереди;&lt;/li>
&lt;li>Фильтрация по типу системы (Kafka, RabbitMQ, JMS, AMQP);&lt;/li>
&lt;li>Сортировка по любому из столбцов;&lt;/li>
&lt;li>Настройка временного диапазона через стандартный таймпиккер платформы.&lt;/li>
&lt;/ul>
&lt;p>Нажмите на строку, чтобы открыть детальный дашборд MQ-сервиса.&lt;/p>
&lt;hr>
&lt;h2 id="детальный-дашборд-mq-сервиса">Детальный дашборд MQ-сервиса&lt;/h2>
&lt;p>Детальный дашборд MQ-сервиса построен по общему шаблону дашбордов платформы и включает несколько секций. На вкладке &lt;strong>Обзор&lt;/strong> доступны KPI и графики, на вкладке &lt;strong>Связи&lt;/strong> — граф зависимостей, на вкладке &lt;strong>Трейсы&lt;/strong> — Traces Explorer с предустановленным фильтром по очереди.&lt;/p>
&lt;p>&lt;img src="../../release-notes/images/200-queue-dashboard.png" alt="Дашборд очереди сообщений">&lt;/p>
&lt;p>&lt;strong>Заголовок (KPI)&lt;/strong>&lt;/p>
&lt;p>В верхней части дашборда размещены ключевые показатели за выбранный период:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Вызовы&lt;/strong> — общее число операций над очередью;&lt;/li>
&lt;li>&lt;strong>95-й перцентиль&lt;/strong> времени обработки;&lt;/li>
&lt;li>&lt;strong>Процент ошибок&lt;/strong>.&lt;/li>
&lt;/ul>
&lt;p>Под каждым показателем выводится сравнение с предыдущим аналогичным периодом.&lt;/p>
&lt;p>&lt;strong>Пропускная способность (Вызовы)&lt;/strong>&lt;/p>
&lt;p>Линейный график количества операций во времени за выбранный диапазон. Позволяет выявить пики, провалы и аномальные всплески нагрузки.&lt;/p>
&lt;p>&lt;strong>Время исполнения (мс)&lt;/strong>&lt;/p>
&lt;p>График времени операций с перцентилями &lt;strong>P95&lt;/strong> и &lt;strong>P99&lt;/strong>. Позволяет отличить общую деградацию от выбросов (long tail).&lt;/p>
&lt;p>&lt;strong>Ошибки (%)&lt;/strong>&lt;/p>
&lt;p>График доли ошибочных операций во времени.&lt;/p>
&lt;p>&lt;strong>Длительность типов операций (мс)&lt;/strong>&lt;/p>
&lt;p>Таблица с разбивкой по &lt;code>messaging.operation&lt;/code> (&lt;code>send&lt;/code>, &lt;code>receive&lt;/code>, &lt;code>process&lt;/code>) с количеством вызовов, средней длительностью и процентом ошибок для каждого типа. Помогает понять, на стороне продюсера или консьюмера возникает деградация.&lt;/p>
&lt;p>&lt;strong>Топ операций по ошибкам и кол-ву&lt;/strong>&lt;/p>
&lt;p>Таблица операций (например, &lt;code>kafka.consume&lt;/code>, &lt;code>kafka.produce&lt;/code>, &lt;code>amqp.publish&lt;/code>, &lt;code>jms.send&lt;/code>), отсортированных по количеству вызовов и проценту ошибок. Для AMQP / RabbitMQ дополнительно отображается &lt;code>routing_key&lt;/code>.&lt;/p>
&lt;p>&lt;strong>Вкладка «Трейсы»&lt;/strong>&lt;/p>
&lt;p>Открывает Traces Explorer с предустановленным фильтром по выбранному MQ-сервису — для детального разбора отдельных сообщений и причин ошибок. В деталях спана в секции &lt;strong>Очередь&lt;/strong> отображаются все &lt;code>amqp.*&lt;/code> теги.&lt;/p>
&lt;hr>
&lt;h2 id="граф-зависимостей-и-переходы-из-спана">Граф зависимостей и переходы из спана&lt;/h2>
&lt;p>Очереди сообщений интегрированы с модулем анализа зависимостей платформы и &lt;a href="../resource_service_model/">Ресурсно-сервисной моделью&lt;/a>:&lt;/p>
&lt;ol>
&lt;li>Откройте дашборд любого инструментированного сервиса, перейдите на вкладку &lt;strong>Связи&lt;/strong> — очереди отображаются как отдельные узлы графа.&lt;/li>
&lt;li>На вкладке &lt;strong>Обзор&lt;/strong> MQ-сервиса доступен &lt;strong>граф направленных зависимостей&lt;/strong> между продюсерами, очередью и консьюмерами.&lt;/li>
&lt;li>В деталях любого спана с messaging-атрибутами клик на значениях &lt;code>messaging.destination&lt;/code>, &lt;code>messaging.destination.name&lt;/code> или &lt;code>amqp.queue&lt;/code> открывает соответствующий дашборд MQ-сервиса.&lt;/li>
&lt;li>Аналогичный переход доступен из контекстного меню узла очереди на графе сервисной топологии.&lt;/li>
&lt;/ol>
&lt;hr>
&lt;h2 id="соотношение-с-инфраструктурным-мониторингом-mq">Соотношение с инфраструктурным мониторингом MQ&lt;/h2>
&lt;p>Раздел &lt;strong>Очереди сообщений&lt;/strong> APM и раздел &lt;a href="../../instrumentation/infra/mq/">Мониторинг очередей сообщений в инфраструктуре&lt;/a> дополняют друг друга:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Аспект&lt;/th>
&lt;th>APM &amp;gt; Очереди сообщений&lt;/th>
&lt;th>Мониторинг инфраструктуры MQ&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Источник данных&lt;/td>
&lt;td>Трейсы инструментированных сервисов (&lt;code>messaging.*&lt;/code>-спаны)&lt;/td>
&lt;td>JMX, Admin API, Prometheus-экспортеры брокера&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Что видно&lt;/td>
&lt;td>Сколько сообщений отправляют/обрабатывают сервисы, время обработки, процент ошибок, какие сервисы участвуют&lt;/td>
&lt;td>Метрики самого брокера: состояние нод, реплики, лаг консьюмер-групп, дисковое потребление&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Ключ агрегации&lt;/td>
&lt;td>Имя очереди / топика&lt;/td>
&lt;td>Хост брокера, топик, группа консьюмеров&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Когда использовать&lt;/td>
&lt;td>Разбор инцидентов в прикладной обработке сообщений&lt;/td>
&lt;td>Мониторинг здоровья брокера и кластера&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>Для полной картины рекомендуется использовать оба раздела совместно.&lt;/p>
&lt;hr>
&lt;h2 id="ограничения">Ограничения&lt;/h2>
&lt;ul>
&lt;li>MQ-сервисы обнаруживаются только если инструментированные сервисы отправляют трейсы с messaging-спанами и проставленными атрибутами &lt;code>messaging.system&lt;/code>, &lt;code>messaging.destination&lt;/code> и &lt;code>messaging.operation&lt;/code>.&lt;/li>
&lt;li>Внутренние метрики брокера (длина очереди, лаг, статистика реплик) в этом разделе недоступны — для них используйте &lt;a href="../../instrumentation/infra/mq/">инфраструктурный мониторинг MQ&lt;/a>.&lt;/li>
&lt;li>JMS-спаны корректно определяют имя очереди начиная с версии 200 (атрибут &lt;code>peer.hostname&lt;/code> устанавливается из имени очереди).&lt;/li>
&lt;li>Применяются права доступа RBAC: пользователь увидит только те очереди, которые задействованы в разрешённых ему сервисах.&lt;/li>
&lt;/ul></description></item></channel></rss>