Apache Kafka. Потоковая обработка и анализ данных. Apache Kafka. Потоковая обработка и анализ данныхСерия Бестселлеры OReilly
Скачать 7.59 Mb.
|
Таблица 10.5. Подробная информация о показателе «суммарная по всем темам входящая скорость передачи данных» Показатель Входящая скорость, байт/с Управляемый.компонент. (MBean).JMX kafka.server:type=BrokerTopicMetrics,name=BytesInPerSec Диапазон.значений Скорость.—.число.с.двойной.точностью,.количество.—. целочисленное.значение Показатели брокеров Kafka 255 Поскольку.это.первый.из.обсуждаемых.нами.показателей.скорости/частоты.пере- дачи.данных,.имеет.смысл.кратко.остановиться.на.атрибутах.подобных.показате- лей..У.всех.них.есть.семь.атрибутов,.выбираемых.в.зависимости.от.того,.какой.тип. показателя.требуется..Благодаря.им.вы.можете.получить.отдельное.количество. событий,.а.также.среднее.количество.событий.за.разные.периоды.времени..Исполь- зуйте.эти.показатели.правильно,.иначе.ваше.представление.о.состоянии.брокера. может.оказаться.неточным. Первые.два.атрибута.не.показатели,.но.они.полезны.для.понимания: EventType .—.единица.измерения.для.всех.атрибутов,.в.данном.случае.байты; RateUnit .—.для.атрибутов.скорости/частоты.представляет.собой.период.време- ни,.за.которое.рассчитывается.скорость,.в.данном.случае.секунды. Эти.два.описательных.атрибута.сообщают,.что.скорость.вне.зависимости.от.про- межутка.времени,.за.который.производится.усреднение,.указывается.в.байтах. в.секунду..Существует.четыре.атрибута.скорости.с.различным.шагом.детализации: OneMinuteRate .—.среднее.значение.за.предыдущую.минуту; FiveMinuteRate .—.среднее.значение.за.предыдущие.5.минут; FifteenMinuteRate .—.среднее.значение.за.предыдущие.15.минут; MeanRate .—.среднее.значение.за.все.время,.прошедшее.с.момента.запуска.бро- кера. Атрибут. OneMinuteRate .быстро.меняется.и.дает.скорее.сиюминутное.представ- ление.о.показателе..Это.может.быть.полезно.для.отслеживания.кратковремен- ных.пиков.трафика.. MeanRate .практически.не.будет.меняться,.он.отображает. общие.тенденции..Хотя.у. MeanRate .есть.своя.область.применения,.вероятно,.это. не.тот.показатель,.о.котором.вы.хотели.бы.получать.уведомления.. FiveMinuteRate и. FifteenMinuteRate .представляют.собой.компромисс.между.двумя.предыдущими. показателями. Помимо.этих.атрибутов,.существует.также.атрибут. Count ..Он.представляет.собой. значение,.постоянно.нарастающее.с.момента.запуска.брокера..Для.данного.показа- теля.—.суммарной.входящей.скорости.передачи.данных.—.атрибут. Count .отражает. общее.число.байтов,.отправленных.брокеру.с.момента.запуска.процесса..Система. показателей,.поддерживающая.показатели-счетчики,.позволяет.получить.с.его. помощью.абсолютные.значения.вместо.усредненных. Суммарная исходящая скорость передачи данных Как.и.суммарная.входящая.скорость.передачи.данных,.суммарная.исходящая. скорость.передачи.данных.—.обобщенный.показатель.масштабирования..В.дан- ном.случае.он.отражает.исходящую.скорость.чтения.потребителями.данных.. 256 Глава 10 • Мониторинг Kafka Исходящая.скорость.передачи.может.масштабироваться.не.так,.как.входящая,. благодаря.способности.Kafka.с.легкостью.работать.с.несколькими.потребите- лями..Существует.множество.примеров.использования.платформы,.в.которых. исходящая.скорость.может.в.шесть.раз.превышать.входящую!.Именно.поэтому. так.важно.учитывать.и.отслеживать.исходящую.скорость.отдельно.(подробности. в.табл..10.6). Таблица 10.6. Подробная информация о показателе «суммарная по всем темам исходящая скорость передачи данных» Показатель Исходящая скорость, байт/с Управляемый.компонент. (MBean).JMX kafka.server:type=BrokerTopicMetrics,name=BytesOutPerSec Диапазон.значений Скорость.—.число.с.двойной.точностью,.количество.—. целочисленное.значение Учет потоков извлечения данных из реплик Исходящая скорость включает и трафик реплик. Это значит, что если коэффициент репликации всех тем в настройках равен 2, то при отсутствии клиентов-потреби- телей исходящая скорость передачи данных будет равна входящей. При чтении всех сообщений кластера одним клиентом-потребителем исходящая скорость будет вдвое превышать входящую. Это может озадачить наблюдателя, который не знает, что именно подсчитывается. Суммарное по всем темам число входящих сообщений Скорости.передачи.данных.отражают.трафик.брокера.в.абсолютных.показателях.—. в.байтах,.в.то.время.как.показатель.входящих.сообщений.отражает.количество. отдельных.сгенерированных.в.секунду.входящих.сообщений.вне.зависимости.от. их.размера..Он.полезен.в.качестве.дополнительного.показателя.трафика.произво- дителей..Можно.использовать.его.также.в.сочетании.с.числом.входящих.байтов. для.определения.среднего.размера.сообщения..Как.и.скорость.передачи.входящих. данных,.он.позволяет.заметить.дисбаланс.брокеров,.тем.самым.давая.вам.понять,. что.необходимо.техобслуживание.(подробности.в.табл..10.7). Таблица 10.7. Подробная информация о показателе «суммарное по всем темам число входящих сообщений» Показатель Сообщений в секунду Управляемый.компонент. (MBean).JMX kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec Диапазон.значений Скорость.—.число.с.двойной.точностью,.количество.—. целочисленное.значение Показатели брокеров Kafka 257 А почему не исходящих сообщений? Меня часто спрашивают: почему для брокеров Kafka нет показателя числа исходя- щих сообщений? Причина в том, что при потреблении сообщений брокер просто отправляет следующий пакет потребителю, не распаковывая его и не получая информацию о том, сколько сообщений в нем содержится. Следовательно, бро- кер фактически не знает, сколько было отправлено сообщений. Единственный возможный в такой ситуации показатель — количество извлечений в секунду — представляет собой частоту выполнения запросов, а не количество сообщений. Количество разделов Показатель.количества.разделов.для.брокера.обычно.незначительно.меняется. с.течением.времени,.ведь.он.представляет.собой.общее.количество.разделов,.назна- ченных.данному.брокеру..Он.включает.все.реплики.на.брокере,.неважно,.ведущие. или.ведомые..Мониторинг.этого.показателя.более.интересен.в.случае.кластера,.на. котором.включено.автоматическое.создание.тем,.поскольку.при.этом.владелец. кластера.не.всегда.контролирует.создание.тем.(подробности.в.табл..10.8). Таблица 10.8. Подробная информация о показателе «количество разделов» Показатель Количество разделов Управляемый.компонент.(MBean).JMX kafka.server:type=ReplicaManager,name=PartitionCount Диапазон.значений Целое.число,.равное.нулю.или.больше.него Количество ведущих реплик Количество.ведущих.реплик.отражает.количество.разделов,.для.которых.данный. брокер.в.настоящий.момент.является.ведущей.репликой..Как.и.большинство.дру- гих.показателей,.он.должен.быть.примерно.одинаков.для.всех.брокеров.кластера.. Чрезвычайно.важно.регулярно.проверять.количество.ведущих.реплик,.возможно,. даже.настроить.на.его.основе.уведомление,.поскольку.оно.отражает.несбаланси- рованность.кластера.даже.в.случае.идеального.баланса.реплик.по.числу.и.размеру.. Дело.в.том,.что.брокер.может.перестать.быть.ведущим.для.реплики.по.многим. причинам,.среди.которых,.например,.истечение.срока.сеанса.ZooKeeper,.и.после. восстановления.не.станет.снова.ведущим.автоматически.(разве.что.вы.задали. в.настройках.автоматическое.перераспределение.ведущих.реплик)..В.этом.случае. данный.показатель.покажет.меньшее.число.(или.даже.0).ведущих.реплик,.указывая. на.необходимость.запуска.выбора.предпочтительной.реплики.для.перераспреде- ления.ведущих.реплик.кластера.(подробности.в.табл..10.9). Таблица 10.9. Подробная информация о показателе «количество ведущих реплик» Показатель Количество ведущих реплик Управляемый.компонент.(MBean).JMX kafka.server:type=ReplicaManager,name=LeaderCount Диапазон.значений Целое.число,.равное.нулю.или.больше.него 258 Глава 10 • Мониторинг Kafka Удобно.использовать.этот.показатель.совместно.с.количеством.разделов.для.ото- бражения.процента.разделов,.для.которых.данный.брокер.является.ведущим.. В.хорошо.сбалансированном.кластере.с.коэффициентом.репликации.2.все.брокеры. должны.быть.ведущими.примерно.для.50.%.своих.разделов..Если.используется. коэффициент.репликации.3,.это.соотношение.снижается.до.33.%. Отключенные разделы Наряду.с.мониторингом.количества.недореплицированных.разделов,.мониторинг. количества.отключенных.разделов.критически.важен.(табл..10.10)..Этот.показатель. предоставляет.только.брокер.—.контроллер.кластера.(все.остальные.брокеры.будут. возвращать.0),.причем.он.показывает.количество.разделов.кластера,.у.которых. сейчас.нет.ведущей.реплики..Без.ведущей.реплики.раздел.может.возникнуть.по. двум.причинам. Останов.всех.брокеров,.на.которых.находятся.реплики.данного.раздела. Ни.одна.согласованная.реплика.не.может.стать.ведущей.из-за.расхождения. числа.сообщений.(в.случае,.когда.отключен.«нечистый».выбор.ведущей.ре- плики). Таблица 10.10. Показатель «число отключенных разделов» Показатель Число ведущих реплик Управляемый.компонент. (MBean).JMX kafka.controller:type=KafkaController,name=OfflinePartitionsCount Диапазон.значений Целое.число,.равное.нулю.или.больше.него При.промышленной.эксплуатации.кластера.Kafka.отключенные.разделы.могут. влиять.на.клиенты-производители,.приводя.к.потере.сообщений.или.отрицатель- ному.обратному.влиянию.в.приложении..Чаще.всего.это.заканчивается.тем,.что. сайт.становится.неработоспособным.и.требует.немедленного.вмешательства. Показатели запросов В.протоколе.Kafka,.описанном.в.главе.5,.есть.множество.различных.типов.запро- сов..С.помощью.определенных.показателей.контролируют.функционирование. следующих.типов.запросов: ApiVersions ; ControlledShutdown ; CreateTopics ; DeleteTopics ; DescribeGroups ; Показатели брокеров Kafka 259 Fetch ; FetchConsumer ; FetchFollower ; GroupCoordinator ; Heartbeat ; JoinGroup ; LeaderAndIsr ; LeaveGroup ; ListGroups ; Metadata ; OffsetCommit ; OffsetFetch ; Offsets ; Produce ; SaslHandshake ; StopReplica ; SyncGroup ; UpdateMetadata Для.каждого.из.них.существует.восемь.показателей,.позволяющих.отслеживать. обработку.каждой.из.фаз.запроса..Например,.показатели.для.запроса. Fetch .пере- числены.в.табл..10.11. Таблица 10.11. Показатели для запроса Fetch Название Управляемый компонент (MBean) JMX Общее.время kafka.network:type=RequestMetrics,name=TotalTimeMs,request=Fetch Время.нахождения. запроса.в.очереди kafka.network:type=RequestMetrics,name=. RequestQueueTimeMs,request=Fetch Локальное.время kafka.network:type=RequestMetrics,name=LocalTimeMs,request=Fetch Удаленное.время kafka.network:type=RequestMetrics,name=RemoteTimeMs,request=Fetch Длительность. притормаживания kafka.network:type=RequestMetrics,name=ThrottleTimeMs,request=Fetch Время.нахождения. ответа.в.очереди kafka.network:type=RequestMetrics,name=. ResponseQueueTimeMs,request=Fetch Длительность. отправки.запроса kafka.network:type=RequestMetrics,name=. ResponseSendTimeMs,request=Fetch Запросов.в.секунду kafka.network:type=RequestMetrics,name=RequestsPerSec,request=Fetch 260 Глава 10 • Мониторинг Kafka Число.запросов.в.секунду,.как.говорилось.ранее,.—.частотный.показатель,.отража- ющий.общее.количество.запросов.данного.типа,.полученных.и.обработанных.за. единицу.времени..Он.позволяет.узнать.частоту.выполнения.каждого.из.запросов,. хотя.следует.отметить,.что.многие.из.них,.например,. StopReplica .и. UpdateMetadata ,. выполняются.нерегулярно. Каждый.из.семи.временных.показателей.предоставляет.для.запросов.набор.про- центилей,.а.также.дискретный.атрибут. Count ,.аналогичный.показателям.частоты/ скорости..Показатели.подсчитываются.с.момента.запуска.брокера,.так.что.при. обнаружении.долго.не.изменяющихся.значений.имейте.в.виду,.что.чем.дольше. работает.брокер,.тем.меньше.будут.меняться.значения..Они.отражают.следующие. этапы.обработки.запроса. Общее время.—.оценка.общего.времени.обработки.запроса.брокером.от.полу- чения.до.отправки.ответа. Время нахождения запроса в очереди.—.длительность.времени,.проведенного. запросом.в.очереди.после.его.получения,.но.до.начала.обработки. Локальное время.—.количество.потраченного.ведущей.репликой.на.обработку. запроса.времени,.включая.отправку.его.на.диск.(но,.возможно,.не.учитывая. фактический.сброс.на.диск). Удаленное время.—.время,.которое.пришлось.потратить.на.ожидание.ведомых. реплик,.прежде.чем.стало.возможно.завершить.обработку.запроса. Длительность притормаживания.—.промежуток.времени,.на.который.необхо- димо.придержать.ответ,.чтобы.замедлить.запрашивающий.клиент.настолько,. что.будут.удовлетворены.настройки.квот.клиентов. Время нахождения ответа в очереди.—.количество.времени,.проводимого.за- просом.в.очереди.перед.отправкой.запрашивающему.клиенту. Длительность отправки запроса.—.количество.времени,.фактически.затрачен- ного.на.отправку.запроса. У.всех.показателей.имеются.следующие.атрибуты: процентили.—. 50thPercentile ,. 75thPercentile ,. 95thPercentile ,. 98thPercentile ,. 99thPercentile ,. 999thPercentile ; Count .—.фактическое.количество.запросов.с.момента.запуска.процесса; Min .—.минимальное.значение.по.всем.запросам; Max .—.максимальное.значение.по.всем.запросам; Mean .—.среднее.значение.по.всем.запросам; StdDev .—.стандартное.отклонение.показателей.хронометража.запросов.в.сово- купности. Показатели брокеров Kafka 261 Что такое процентиль Процентили — распространенный способ представления показателей хроно- метража. В частности, 99-й процентиль означает, что 99 % значений выборки (в данном случае значений хронометража запросов) меньше значения показателя. А 1 % — больше заданного значения. Чаще всего используют среднее значение, а также 99-й и 99,9-й процентили. При этом становится понятно, как происходит обработка среднестатистического запроса и как — аномальных запросов. Какие.же.из.этих.показателей.и.атрибутов.запросов.необходимо.отслеживать?. Как.минимум.следует.собирать.данные.о.среднем.значении.и.один.из.верхних.про- центилей.(99-й.или.99,9-й).для.показателя.общего.времени,.а.также.число.запросов. в.секунду.для.каждого.из.типов.запросов..Это.даст.вам.общее.представление.о.про- изводительности.выполнения.запросов.к.брокеру.Kafka..По.возможности.следует. также.собирать.сведения.и.об.остальных.шести.показателях.хронометража.для. каждого.из.типов.запросов,.что.позволит.сузить.область.поиска.проблем.с.произ- водительностью.до.конкретной.фазы.обработки.запроса. Задавать.пороговые.значения.для.оповещения.на.основе.показателей.хрономе- тража.—.непростая.задача..Временные.показатели.выполнения.запроса. Fetch ,. например,.очень.сильно.варьируются.в.зависимости.от.множества.факторов,. включая.настройки.длительности.ожидания.сообщений.на.стороне.клиента,. степень.загруженности.конкретной.темы,.а.также.скорость.сетевого.соединения. между.клиентом.и.брокером..Имеет.смысл,.однако,.выработать.эталонное.значение. 99-го.процентиля,.по.крайней.мере.для.показателя.общего.времени,.особенно.для. запросов.типа. Produce ,.и.настроить.по.нему.оповещение..Аналогично.показателю. числа.недореплицированных.разделов,.резкое.повышение.99-го.процентиля.для. запросов.типа. Produce .может.указывать.на.разнообразные.проблемы.с.произво- дительностью. Показатели тем и разделов Помимо.множества.доступных.на.брокерах.показателей,.описывающих.функ- ционирование.брокеров.Kafka.в.целом,.существуют.и.показатели.уровня.тем. и.разделов..В.больших.кластерах.их.может.быть.очень.много,.так.что.не.полу- чится.систематизировать.их.все.в.процессе.обычного.функционирования..Од- нако.они.очень.удобны.при.отладке.конкретных.проблем.с.клиентами..Напри- мер,.показатели.уровня.тем.можно.использовать.для.поиска.конкретной.темы,. которая.вызывает.большой.прирост.объема.трафика.кластера..Не.помешает. также.сделать.так,.чтобы.пользователи.Kafka.(клиенты-производители.и.кли- енты-потребители).имели.к.ним.доступ..Вне.зависимости.от.того,.есть.ли.у.вас. возможность.регулярно.собирать.эти.показатели,.следует.знать,.какую.пользу. они.могут.принести. 262 Глава 10 • Мониторинг Kafka Во.всех.примерах.из.табл..10.12.мы.используем.имя.темы. TOPICNAME .и.раздел.0.. При.обращении.к.описанным.показателям.не.забудьте.поменять.имя.темы.и.номер. раздела.на.соответствующие.значения.для.вашего.кластера. Таблица 10.12. Показатели уровня темы Название Управляемый компонент (MBean) JMX Скорость.входящей.передачи. данных,.байт/с. kafka.server:type=BrokerTopicMetrics,name=. BytesInPerSec,topic=TOPICNAME Скорость.исходящей. передачи.данных,.байт/с kafka.server:type=BrokerTopicMetrics,name=. BytesOutPerSec,topic=TOPICNAME Частота.неудачного. извлечения.данных kafka.server:type=BrokerTopicMetrics,name=. FailedFetchRequestsPerSec,topic=TOPICNAME Частота.неудачной.генерации. сообщений kafka.server:type=BrokerTopicMetrics,name=. FailedProduceRequestsPerSec,topic=TOPICNAME Частота.входящих.сообщений kafka.server:type=BrokerTopicMetrics,name=. MessagesInPerSec,topic=TOPICNAME Частота.запросов. на.извлечение.данных kafka.server:type=BrokerTopicMetrics,name=. TotalFetchRequestsPerSec,topic=TOPICNAME Частота.запросов. от.производителей kafka.server:type=BrokerTopicMetrics,name=. TotalProduceRequestsPerSec,topic=TOPICNAME Показатели уровня темы Показатели.уровня.темы.очень.схожи.с.описанными.ранее.показателями.брокеров.. Фактически.единственное.отличие.состоит.в.указании.названия.темы,.к.которой. будут.относиться.показатели..С.учетом.числа.доступных.показателей.и.в.зависи- мости.от.количества.тем.в.вашем.кластере.мониторинг.и.оповещение.по.ним.почти. наверняка.будут.излишними..Однако.они.могут.пригодиться.клиентам.для.оценки. и.настройки.использования.Kafka. Показатели уровня раздела Показатели.уровня.раздела.обычно.менее.полезны.в.текущей.работе,.чем.показате- ли.уровня.темы..Кроме.того,.они.слишком.многочисленны,.ведь.в.сотнях.тем.легко. могут.насчитываться.тысячи.разделов..Тем.не.менее.в.отдельных.ситуациях.они.мо- гут.оказаться.полезными..В.частности,.показатели.уровня.раздела.отражают.объем. данных.(в.байтах),.хранящийся.в.настоящий.момент.на.диске.для.определенного. раздела.(табл..10.13)..Если.их.суммировать,.можно.узнать.объем.хранимых.данных. отдельной.темы,.что.удобно.при.выделении.ресурсов.для.отдельных.клиентов.Kafka.. Расхождение.между.размерами.двух.разделов.одной.и.той.же.темы.может.указы- вать.на.проблему.с.неравномерным.распределением.сообщений.по.использовав- шемуся.при.генерации.ключу..Показатель.количества.сегментов.журнала.отражает. |