Главная страница
Навигация по странице:

  • Таблица 10.16.

  • Постойте-ка! Никакого отставания

  • Apache Kafka. Потоковая обработка и анализ данных. Apache Kafka. Потоковая обработка и анализ данныхСерия Бестселлеры OReilly


    Скачать 7.59 Mb.
    НазваниеApache Kafka. Потоковая обработка и анализ данныхСерия Бестселлеры OReilly
    Дата21.06.2022
    Размер7.59 Mb.
    Формат файлаpdf
    Имя файлаApache Kafka. Потоковая обработка и анализ данных.pdf
    ТипДокументы
    #609074
    страница34 из 39
    1   ...   31   32   33   34   35   36   37   38   39
    270 Глава 10 • Мониторинг Kafka которое.отдельному.сообщению.приходится.ожидать.в.производителе.после.от- правки.его.приложением.и.до.фактической.генерации.его.для.Kafka..После.того.
    как.приложение.посредством.метода.
    send
    .вызовет.клиент-производитель.для.от- правки.сообщения,.производитель.будет.ждать,.пока.не.произойдет.одно.из.двух.
    событий:
    ‰
    ‰
    наберется.такое.количество.сообщений,.которого.будет.достаточно.для.напол- нения.пакета,.в.соответствии.с.параметром.конфигурации.
    batch.size
    ;
    ‰
    ‰
    с.момента.отправки.прошлого.пакета.пройдет.достаточный.промежуток.време- ни,.соответствующий.параметру.конфигурации.
    linger.ms
    Любое.из.этих.двух.событий.приведет.к.закрытию.клиентом-производителем.фор- мируемого.в.текущий.момент.пакета.и.отправке.его.брокерам..Проще.всего.сформу- лировать.это.можно.следующим.образом:.для.загруженных.тем.будет.применяться.
    первое.условие,.а.для.медленных.тем.—.второе..Показатель.
    record-queue-time-avg показывает,.сколько.времени.занимает.генерация.сообщений,.а.следовательно,.
    будет.полезен.при.настройке.этих.двух.параметров.конфигурации.с.целью.удов- летворения.требований.вашего.приложения.к.времени.задержки.
    Показатели уровня брокера и темы
    Помимо.общих.показателей.производителей.существуют.компоненты.показате- лей.с.ограниченным.набором.атрибутов.для.подключения.к.отдельным.брокерам.
    Kafka,.а.также.для.каждой.темы,.для.которой.генерируется.сообщение..Эти.по- казатели.в.некоторых.случаях.удобно.использовать.при.отладке,.но.вряд.ли.их.
    следует.отслеживать.постоянно..Все.атрибуты.этих.компонентов.аналогичны.
    описанным.ранее.атрибутам.компонентов.общих.показателей.производителей,.
    и.смысл.их.точно.такой.же,.за.исключением.того,.что.они.относятся.к.отдельному.
    брокеру.или.теме.
    Наиболее.полезный.из.показателей.производителей,.относящихся.к.отдельным.
    брокерам,.—.
    request-latency-avg
    ..Дело.в.том,.что.значение.этого.показателя.прак- тически.всегда.постоянно.(при.стабильной.работе.пакетной.отправки.сообщений),.
    параметр.может.отражать.проблемы.с.подключением.к.конкретным.брокерам..
    Остальные.атрибуты,.например,.
    outgoing-byte-rate
    .и.
    request-latency-avg
    ,.меня- ются.в.зависимости.от.разделов,.для.которых.данный.брокер.является.ведущим..
    Это.значит,.что.«должное».значение.настоящих.показателей.в.каждый.момент.
    времени.может.быть.различным.в.зависимости.от.состояния.кластера.Kafka.
    Показатели.тем.интереснее,.чем.показатели.брокеров,.но.они.могут.принести.
    пользу.только.при.использовании.производителей,.работающих.с.более.чем.одной.
    темой..Кроме.того,.применять.их.на.постоянной.основе.можно,.только.если.произ- водитель.не.работает.с.большим.числом.тем..Например,.MirrorMaker.может.гене- рировать.сотни,.если.не.тысячи.тем..Отслеживать.все.их.показатели.очень.трудно,.
    а.задать.для.каждого.разумное.пороговое.значение.для.оповещения.практически.

    Мониторинг клиентов 271
    нереально..Как.и.показатели.для.отдельных.брокеров,.показатели.для.отдельных.
    тем.лучше.всего.задействовать.при.поиске.причин.конкретной.проблемы..Атри- буты.
    record-send-rate
    .и.
    record-error-rate
    ,.например,.можно.использовать.для.
    выяснения.того,.к.какой.теме.относятся.отмененные.сообщения.(или.подтверж- дения.того,.что.они.имеются.во.всех.темах)..Кроме.того,.существует.показатель.
    byte-rate
    .—.общая.частота.сообщений.темы.(в.байтах.в.секунду).
    Показатели потребителей
    Аналогично.новому.клиенту-производителю.новый.клиент-потребитель.в.Kafka.
    объединяет.множество.показателей.в.атрибуты.всего.лишь.нескольких.компо- нентов.показателей..Из.этих.показателей,.как.и.для.клиента-производителя,.ис- ключены.процентные.показатели.для.задержки.и.скользящие.средние.скорости/
    частоты..В.потребителе.в.силу.того,.что.логика.потребления.сообщений.сложнее.
    простой.отправки.сообщений.брокерам.Kafka,.есть.несколько.дополнительных.
    показателей.(табл..10.16).
    Таблица 10.16. Управляемые компоненты показателей потребителя Kafka
    Название
    Управляемый компонент (MBean) JMX
    В.целом.
    по.потребителю kafka.consumer:type=consumer-metrics,client-id=CLIENTID
    Диспетчер.
    извлечения kafka.consumer:type=consumer-fetch-manager-metrics,client-id=CLIENTID
    Для.отдельной.
    темы kafka.consumer:type=consumer-fetch-manager-metrics,client- id=CLIENTID,topic=TOPICNAME
    Для.отдельного.
    брокера kafka.consumer:type=consumer-node-metrics,client-id=CLIENTID,node- id=node-BROKERID
    Координатор kafka.consumer:type=consumer-coordinator-metrics,client-id=CLIENTID
    Показатели диспетчера извлечения
    В.клиенте-потребителе.компонент.показателя.по.потребителю.в.целом.приносит.
    меньше.пользы,.поскольку.интересующие.нас.данные.расположены.не.там,.а.в.ком- понентах.диспетчера.извлечения..В.нем.есть.показатели,.относящиеся.к.низко- уровневым.операциям.сети,.а.в.компоненте.диспетчера.извлечения.—.показатели.
    скоростей.в.байтах,.а.также.частот.запросов.и.записей..В.отличие.от.показателей.
    клиента-производителя,.предоставляемые.потребителем.показатели.полезны.для.
    изучения,.но.по.ним.не.имеет.смысла.устанавливать.оповещения.
    Один.из.атрибутов.показателей.диспетчера.извлечения,.по.которому.имеет.смысл.
    настроить.мониторинг.и.оповещение,.—.
    fetch-latency-avg
    ..Как.и.с.помощью.
    аналогичного.
    request-latency-avg
    .в.клиенте-производителе,.с.его.помощью.

    272 Глава 10 • Мониторинг Kafka можно.выяснить,.сколько.времени.занимает.выполнение.запросов.на.извлече- ние.к.брокерам..Проблема.с.оповещением.на.основе.этого.показателя.состоит.
    в.том,.что.длительность.задержки.определяется.параметрами.
    fetch.min.bytes и.
    fetch.max.wait.ms
    .конфигурации.потребителя..У.медленной.темы.время.задерж- ки.будет.хаотически.меняться,.так.как.иногда.брокер.будет.отвечать.быстро.(когда.
    сообщения.доступны),.а.иногда.не.будет.отвечать.в.течение.
    fetch.max.wait.ms
    .(ко- гда.доступных.сообщений.нет)..При.потреблении.тем.с.более.постоянным.и.на- сыщенным.трафиком.сообщений.может.оказаться.полезно.отслеживать.этот.
    показатель.
    Постойте-ка! Никакого отставания?
    Лучший совет по поводу потребителей — отслеживать их отставание. Так поче- му же мы не рекомендуем мониторинг атрибута records-lag-max компонента диспетчера извлечения? Этот показатель отражает текущее отставание в виде числа сообщений для наиболее отстающего раздела.
    Здесь наблюдается двойная проблема: указанный атрибут показывает отставание только для одного раздела и зависит от правильного функционирования потре- бителя. Если другого выхода нет, можно воспользоваться им для отслеживания отставания и настроить на его основе оповещение. Но рекомендуется исполь- зовать внешние средства мониторинга отставания, как описывается в разделе
    «Мониторинг отставания» далее в этой главе.
    Чтобы.узнать.объемы.обрабатываемого.клиентом-потребителем.трафика.сообще- ний,.необходимо.отслеживать.показатели.
    bytes-consumed-rate
    .или.
    records- consumed-rate
    ,.а.лучше.и.тот.и.другой..Они.описывают.потребляемый.данным.
    экземпляром.клиента.трафик.сообщений.в.байтах.в.секунду.и.сообщениях.в.секун- ду.соответственно..Некоторые.пользователи.задают.оповещение.при.минимальных.
    пороговых.значениях.этих.показателей,.чтобы.получать.уведомление.о.выполне- нии.потребителем.недостаточного.объема.работ..Однако.делать.это.следует.
    осторожно..Kafka.нацелена.на.разделение.клиентов-потребителей.и.клиентов- производителей.и.предоставляет.им.возможность.работать.независимо.друг.от.
    друга..Скорость.чтения.сообщений.потребителем.зачастую.зависит.от.того,.рабо- тает.ли.производитель.должным.образом,.так.что.отслеживание.их.на.потребителе.
    означает.определенные.допущения.относительно.состояния.потребителя..Это.мо- жет.привести.к.ложным.оповещениям.в.клиентах-потребителях.
    Не.помешает.также.хорошо.представлять.себе.соотношения.байтов.сообщений.
    и.запросов,.и.диспетчер.извлечения.предоставляет.данные.для.этого..Показатель.
    fetch-rate
    .сообщает.число.выполняемых.потребителем.запросов.на.извлечение.
    в.секунду..Показатель.
    fetch-size-avg
    .—.средний.размер.этих.запросов.на.из- влечение.в.байтах..Наконец,.показатель.
    records-per-request-avg
    .дает.среднее.
    число.сообщений.в.каждом.запросе.на.извлечение..Обратите.внимание.на.то,.что.
    у.потребителя.нет.аналога.показателя.
    record-size-avg
    .производителя,.с.помо-

    Мониторинг клиентов 273
    щью.которого.можно.узнать.средний.размер.сообщения..Если.для.вас.это.важно,.
    его.можно.вычислить.на.основе.других.доступных.показателей.или.перехватить.
    в.вашем.приложении.после.получения.сообщений.от.клиентской.библиотеки.по- требителя.
    Показатели уровня брокера и темы
    Показатели,.предоставляемые.клиентом-потребителем.по.каждому.из.соединений.
    брокера.и.каждому.из.потребляемых.тем,.как.и.в.случае.с.клиентом-производите- лем,.удобны.для.отладки.проблем.с.потреблением,.но.отслеживать.их.регулярно,.
    вероятно,.смысла.нет..Как.и.в.случае.с.диспетчером.извлечения,.атрибут.
    request- latency-avg
    .компонентов.для.показателей.уровня.брокера.пригоден.лишь.в.не- которых.ситуациях.в.зависимости.от.объема.трафика.сообщений.потребляемых.
    тем..Показатели.
    incoming-byte-rate
    .и.
    request-rate
    .представляют.собой.разбиение.
    показателей.диспетчера.извлечения,.относящихся.к.потребленным.сообщениям,.на.
    показатели,.выраженные.в.байтах.в.секунду.и.запросах.в.секунду.соответственно..
    Их.можно.использовать.для.поиска.причин.проблем.соединения.потребителя.
    с.конкретным.брокером.
    Предоставляемые.клиентом-потребителем.показатели.уровня.темы.оказывают- ся.полезны.при.чтении.более.чем.одной.темы..В.противном.случае.они.ничем.
    не.будут.отличаться.от.показателей.диспетчера.извлечения.и.окажутся.просто.
    избыточными..В.то.же.время,.если.клиент.потребляет.очень.много.тем.(Kafka.
    MirrorMaker,.например),.изучать.данные.этих.показателей.будет.непросто..Если.
    вы.решите.их.собирать,.то.наиболее.важные.из.них.—.
    bytes-consumed-rate
    ,.
    records-consumed-rate
    .и.
    fetch-size-avg
    ..Показатель.
    bytes-consumed-rate
    .от- ражает.объемы.прочитанных.из.конкретной.темы.сообщений.в.байтах.в.секунду,.
    а.
    records-consumed-rate
    .—.ту.же.информацию.в.виде.количества.сообщений..По- казатель.
    fetch-size-avg
    .представляет.собой.средний.размер.запроса.на.извлечение.
    для.данной.темы.в.байтах.
    Показатели координатора потребителя
    Как.описывалось.в.главе.4,.клиенты-потребители.обычно.работают.в.составе.
    группы.потребителей..Эта.группа.выполняет.определенные.координационные.
    действия,.например,.присоединение.новых.участников.и.отправку.брокерам.кон- трольных.сигналов.для.поддержания.состояния.членства.в.группе..Координатор.
    потребителя.представляет.собой.часть.клиента-потребителя,.отвечающую.за.эти.
    действия,.и.у.него.есть.свои.показатели..Как.и.других.показателей,.их.очень.много,.
    но.отслеживать.на.постоянной.основе.имеет.смысл.лишь.несколько.ключевых.
    Главная.проблема,.с.которой.сталкиваются.потребители.в.результате.выполнения.
    действий.по.координации,.—.приостановка.потребления.на.время.синхронизации.
    группы.потребителей..Так.происходит,.когда.экземпляры.потребителей.группы.

    274 Глава 10 • Мониторинг Kafka договариваются.о.том,.кто.какие.разделы.будет.потреблять..Время,.которое.это.мо- жет.занять,.зависит.от.числа.потребляемых.разделов..Координатор.предоставляет.
    атрибут.показателя.
    sync-time-avg
    .—.среднее.время.согласования.в.миллисекундах..
    Не.помешает.также.информация.из.атрибута.
    sync-rate
    ,.представляющего.собой.
    число.операций.согласования.группы.в.секунду..При.постоянном.составе.группы.
    потребителей.он.практически.всегда.будет.равен.нулю.
    Потребителю.для.записи.данных.о.ходе.потребления.сообщений.в.контрольных.
    точках.приходится.фиксировать.смещения.автоматически.через.равные.промежут- ки.времени.или.вручную,.инициируя.создание.контрольных.точек.из.кода.прило- жения..По.сути,.такая.фиксация.представляет.собой.запросы.на.генерацию.(хотя.
    тип.запроса.у.них.свой),.поскольку.фиксация.смещения.—.это.просто.сообщение,.
    генерируемое.в.специальную.тему..У.координатора.потребителя.имеется.атрибут.
    commit-latency-avg
    .—.показатель.среднего.времени,.расходуемого.на.фиксацию.
    смещения..Рекомендуется.отслеживать.это.значение.так.же,.как.отслеживается.
    время.задержки.запроса.в.производителе..При.желании.можно.выработать.для.
    себя.эталонное.ожидаемое.значение.этих.показателей.и.задать.разумные.пороговые.
    значения,.чтобы.получить.уведомление.при.их.превышении.
    Еще.один.полезный.показатель.координатора.—.
    assigned-partitions
    ..Он.пред- ставляет.собой.число.разделов,.назначенных.для.потребления.клиенту-потре- бителю.как.отдельному.участнику.группы.потребителей..Сравнение.значений.
    этого.показателя.от.различных.клиентов-потребителей.данной.группы.позволяет.
    оценить.распределение.нагрузки.по.всей.группе..Его.можно.применить.для.поиска.
    перекосов,.вызванных.проблемами.в.алгоритме,.используемом.координатором.для.
    распределения.разделов.по.участникам.группы.
    Квоты
    Apache.Kafka.умеет.притормаживать.запросы.клиентов.ради.предотвращения.ситу- ации,.когда.один.клиент.перегружает.весь.кластер..Эту.возможность,.выражаемую.
    в.терминах.объема.трафика,.который.клиент.с.конкретным.идентификатором.
    может.отправлять.конкретному.брокеру.(в.байтах.в.секунду),.можно.настроить.
    как.для.клиентов-потребителей,.так.и.для.клиентов-производителей..Существу- ют.параметр.конфигурации.брокера,.задающий.значение.по.умолчанию.для.всех.
    клиентов,.а.также.возможность.динамического.переопределения.его.на.уровне.
    клиентов..Когда.брокер.решает,.что.клиент.превысил.квоту,.он.замедляет.его.по- средством.задержки.ответа.ему.на.достаточное.время.
    Брокеры.Kafka.не.используют.в.ответах.коды.ошибок.для.индикации.того,.что.
    клиент.притормаживается..Это.значит,.что.суть.происходящего.не.будет.понятна.
    приложению,.если.оно.не.отслеживает.длительности.притормаживания.клиентов..
    Список.показателей,.которые.необходимо.отслеживать,.приведен.в.табл..10.17.

    Мониторинг отставания 275
    Таблица 10.17. Показатели, требующие отслеживания
    Клиент
    Название компонента
    Потребитель bean.kafka.consumer:type=consumer-fetch-manager-metrics,client-id=.
    CLIENTID,attribute.fetch-throttle-time-avg
    Производитель bean.kafka.producer:type=producer-metrics,client-id=CLIENTID,.attribute.
    produce-throttle-time-avg
    По.умолчанию.квоты.на.брокерах.Kafka.отключены,.но.мониторинг.указанных.
    показателей.вполне.допустим.независимо.от.того,.используете.вы.сейчас.квоты.
    или.нет..Их.мониторинг.—.рекомендуемая.практика,.поскольку.в.какой-то.момент.
    в.будущем.они.могут.оказаться.включены.и.легче.сразу.начать.с.их.мониторинга,.
    а.не.добавлять.показатели.потом.
    Мониторинг отставания
    Самое.важное,.что.требуется.отслеживать.потребителям.Kafka,.—.это.отставание.
    потребителя..Оно.измеряется.количеством.сообщений.и.представляет.собой.
    разницу.между.последним.сгенерированным.в.конкретный.раздел.сообщением.
    и.последним.сообщением,.обработанным.потребителем..Обычно.оно.оценивается.
    на.предыдущем.этапе,.при.мониторинге.клиента-потребителя,.но.это.один.из.тех.
    случаев,.когда.возможности.внешнего.мониторинга.намного.превышают.возмож- ности.самого.клиента..Как.упоминалось.ранее,.в.клиенте-потребителе.существует.
    показатель.отставания,.но.использовать.его.неудобно..Он.отражает.данные.только.
    по.одному.разделу.—.тому,.который.отстает.больше.всего,.так.что.не.дает.инфор- мации.о.том,.насколько.на.самом.деле.отстает.потребитель..Кроме.того,.он.требует.
    нормального.функционирования.потребителя,.поскольку.тот.сам.вычисляет.его.
    при.каждом.запросе.на.извлечение..Если.потребитель.работает.некорректно.или.
    отключен,.показатель.будет.или.неточен,.или.вообще.недоступен.
    Предпочтительный.метод.мониторинга.отставания.потребителя.—.использование.
    внешнего.процесса,.который.может.отслеживать.состояние.как.раздела.на.брокере.
    (путем.наблюдения.за.последним.сгенерированным.сообщением),.так.и.потреби- теля.(путем.наблюдения.за.последним.смещением,.зафиксированным.группой.
    потребителей.для.данного.раздела)..Это.дает.объективную.картину,.своевременно.
    обновляемую.вне.зависимости.от.состояния.самого.потребителя..Подобная.про- верка.должна.проводиться.для.всех.разделов,.которые.читает.группа.потребителей..
    Если.потребители.большие,.например.MirrorMaker,.это.может.означать.десятки.
    тысяч.разделов.
    В.главе.9.приводилась.информация.по.использованию.утилит.командной.строки.
    для.получения.информации.о.группах,.включая.зафиксированные.смещения.и.от- ставание..Подобный.мониторинг.отставания,.однако,.связан.с.рядом.проблем..

    276 Глава 10 • Мониторинг Kafka
    Во-первых,.необходимо.знать,.каков.допустимый.уровень.отставания.для.каждого.
    раздела..Для.темы,.получающей.100.сообщений.в.час,.необходимо.иное.пороговое.
    значение,.чем.для.темы,.получающей.10.000.сообщений.в.секунду..Во-вторых,.вы.
    должны.иметь.возможность.считывать.все.показатели.отставания.в.систему.мо- ниторинга.и.устанавливать.по.ним.оповещения..Если.ваша.группа.потребителей.
    потребляет.100.000.разделов.из.1500.тем,.задача.будет.не.из.легких.
    Один.из.способов.снижения.сложности.мониторинга.групп.потребителей.—.ис- пользование.Burrow..Это.приложение.с.открытым.исходным.кодом,.разработанное.
    компанией.LinkedIn,.обеспечивает.мониторинг.состояния.потребителей.путем.
    сбора.информации.об.отставании.для.всех.групп.потребителей.кластера.и.подсче- та.единого.показателя.состояния.для.каждой.группы,.информирующего,.функци- онирует.ли.она.должным.образом,.отстает.или.вообще.остановила.работу..Для.это- го.ему.не.требуются.пороговые.значения,.полученные.при.мониторинге.хода.
    обработки.сообщений.группой.потребителей,.хотя.можно.получить.отставание.по.
    сообщениям.в.виде.конкретного.числа..В.технологическом.блоге.LinkedIn.(
    http://
    www.bit.ly/2sanKZb
    ).приводится.обстоятельное.обсуждение.обоснований.и.методо- логии.работы.Burrow..Развертывание.Burrow.—.простой.способ.обеспечения.мо- ниторинга.всех.потребителей.кластера.или.нескольких.кластеров,.его.можно.легко.
    интегрировать.с.уже.имеющимися.у.вас.системами.мониторинга.и.оповещения.
    Если.же.других.вариантов.нет,.показатель.
    records-lag-max
    .позволит.получить.
    хотя.бы.неполную.картину.состояния.потребителя..Однако.мы.настоятельно.ре- комендуем.использовать.внешнюю.систему.мониторинга,.например,.Burrow.
    Сквозной мониторинг
    Еще.одна.рекомендуемая.для.использования.разновидность.мониторинга,.по- могающая.выяснить,.нормально.ли.функционирует.кластер.Kafka,.—.сквозной.
    мониторинг..Он.позволяет.взглянуть.на.состояние.кластера.Kafka.с.точки.зрения.
    клиента..У.клиентов-производителей.и.клиентов-потребителей.есть.показатели,.
    говорящие.о.наличии.проблем.с.кластером.Kafka,.но.можно.только.догадываться,.
    из-за.чего.увеличилась.задержка.—.из-за.проблем.с.клиентом,.сетью.или.самой.
    Kafka..Кроме.того,.если.вы.отвечаете.за.работу.только.кластера.Kafka,.а.не.кли- ентов,.вам.придется.отслеживать.и.функционирование.клиентов.тоже..На.самом.
    деле.вам.нужно.знать:
    ‰
    ‰
    можно.ли.генерировать.сообщения.для.кластера.Kafka;
    ‰
    ‰
    можно.ли.потреблять.сообщения.из.кластера.Kafka.
    В.идеальном.мире.можно.было.бы.отслеживать.все.это.для.каждой.темы.отдельно..
    Однако.в.большинстве.случаев.неразумно.раздувать.трафик.тем.за.счет.искус- ственной.добавки..Можно,.однако,.по.крайней.мере.получить.ответы.на.данные.
    вопросы.для.каждого.из.брокеров.кластера,.и.именно.это.делает.Kafka.Monitor.

    Резюме
    1   ...   31   32   33   34   35   36   37   38   39


    написать администратору сайта