Jump to content

Наблюдаемость (программное обеспечение)

В разработке программного обеспечения , а точнее в распределенных вычислениях , наблюдаемость — это возможность собирать данные о выполнении программ, внутренних состояниях модулей и взаимодействии между компонентами. [1] [2] Чтобы улучшить наблюдаемость, инженеры-программисты используют широкий спектр методов регистрации и отслеживания для сбора телеметрической информации, а также инструменты для ее анализа и использования. Наблюдение имеет основополагающее значение для обеспечения надежности объекта , поскольку это первый шаг в выявлении сбоев в обслуживании.Одна из целей наблюдаемости — минимизировать объем предварительных знаний, необходимых для отладки проблемы.

Этимология, терминология и определение

[ редактировать ]

Этот термин заимствован из теории управления, где « наблюдаемость » системы измеряет, насколько хорошо ее состояние можно определить по ее выходным данным. Аналогичным образом, наблюдаемость программного обеспечения измеряет, насколько хорошо можно понять состояние системы на основе полученных телеметрических данных (метрики, журналы, трассировки, профилирование).

Определение наблюдаемости зависит от поставщика:

мера того, насколько хорошо вы можете понять и объяснить любое состояние, в которое может попасть ваша система, независимо от того, насколько оно новое или причудливое [...] без необходимости выпуска нового кода

программные инструменты и методы для агрегирования, корреляции и анализа постоянного потока данных о производительности распределенного приложения, а также оборудования и сети, на которых оно работает.

наблюдаемость начинается с отправки всех ваших необработанных данных в центральную службу до начала анализа.

возможность измерять текущее состояние системы на основе генерируемых ею данных, таких как журналы, метрики и трассировки.

Наблюдаемость — это инструмент или техническое решение, которое позволяет командам активно отлаживать свою систему. Наблюдаемость основана на изучении свойств и закономерностей, не определенных заранее.

упреждающий сбор, визуализация и применение аналитики ко всем вашим метрикам, событиям, журналам и трассировкам, чтобы вы могли понять поведение вашей сложной цифровой системы.

Этот термин часто называют нумеронимом o11y ( где 11 означает количество букв между первой и последней буквой слова). Это похоже на другие сокращения в области информатики, такие как i18n, l10n и k8s . [9]

Наблюдаемость против мониторинга

[ редактировать ]

Наблюдение и мониторинг иногда используются как взаимозаменяемые понятия. [10] По мере того, как инструменты, коммерческие предложения и практики становились все более сложными, «мониторинг» был переименован в наблюдаемость, чтобы отличать новые инструменты от старых.

Эти термины обычно противопоставляются тем, что системы контролируются с использованием заранее определенных наборов телеметрии . [7] и контролируемые системы могут быть наблюдаемыми . [11]

Мейджорс и др. предполагают, что инженерные команды, у которых есть только инструменты мониторинга, в конечном итоге полагаются на экспертное предвидение (старшинство), тогда как команды, у которых есть инструменты наблюдения, полагаются на исследовательский анализ (любопытство). [3]

Типы телеметрии

[ редактировать ]

Наблюдаемость опирается на три основных типа данных телеметрии: метрики, журналы и трассировки. [6] [7] [12] Их часто называют «столпами наблюдаемости». [13]

Метрика — это момент измерения ( скаляр ), который представляет некоторое состояние системы. Примеры общих показателей включают в себя:

  • количество HTTP-запросов в секунду;
  • общее количество неудачных запросов;
  • размер базы данных в байтах;
  • время в секундах с момента последней сборки мусора .

Инструменты мониторинга обычно настроены на отправку предупреждений, когда определенные значения метрик превышают установленные пороговые значения. Пороговые значения устанавливаются на основе знаний о нормальных условиях эксплуатации и опыта.

Метрики обычно помечаются тегами для облегчения группировки и поиска.

Разработчики приложений выбирают, какие показатели использовать в своем программном обеспечении еще до его выпуска. В результате при возникновении ранее неизвестной проблемы невозможно добавить новые метрики без отправки нового кода. Более того, их мощность может быстро сделать размер хранилища телеметрических данных непомерно дорогим. Поскольку метрики ограничены по количеству элементов, они часто используются для представления совокупных значений (например, среднее время загрузки страницы или среднее значение частоты запросов за 5 секунд). Без внешнего контекста невозможно сопоставить события (например, запросы пользователей) и отдельные значения метрик.

Журналы или строки журнала обычно представляют собой неструктурированные текстовые объекты произвольной формы. [ нужны разъяснения ] которые предназначены для чтения человеком. Современное ведение журнала структурировано так, чтобы обеспечить возможность машинного анализа. [3] Как и в случае с метриками, разработчик приложения должен заранее оснастить приложение и отправить новый код, если требуется другая информация для журналирования.

Журналы обычно содержат метку времени и уровень серьезности. Событие (например, запрос пользователя) может быть фрагментировано по нескольким строкам журнала и переплетаться с журналами параллельных событий.

Распределенные трассировки

[ редактировать ]

Облачное приложение обычно состоит из распределенных сервисов, которые вместе выполняют один запрос. Распределенная трассировка — это взаимосвязанная серия дискретных событий (также называемых интервалами), которые отслеживают ход выполнения одного пользовательского запроса. [3] Трассировка показывает причинно-следственные и временные связи между службами, которые взаимодействуют для выполнения запроса.

Оснащение приложения трассировкой означает отправку информации о диапазоне в серверную часть трассировки. Серверная часть трассировки сопоставляет полученные интервалы для создания презентабельных трассировок. Чтобы иметь возможность отслеживать запрос, когда он проходит через несколько сервисов, диапазоны помечаются уникальными идентификаторами , которые позволяют создавать отношения «родитель-потомок» между диапазонами. Информация о диапазоне обычно передается в HTTP-заголовках исходящих запросов. [3] [14] [15]

Непрерывное профилирование

[ редактировать ]

Непрерывное профилирование — это еще один тип телеметрии, используемый для точного определения того, как приложение потребляет ресурсы. [16]

Инструментарий

[ редактировать ]

Чтобы иметь возможность наблюдать за приложением, необходимо собирать или экспортировать телеметрию о поведении приложения. Инструментирование означает генерацию телеметрии наряду с нормальной работой приложения. [3] Затем телеметрия собирается независимым сервером для последующего анализа.

В быстро меняющихся системах приборы сами по себе часто являются наилучшей документацией, поскольку они сочетают в себе намерение (какие измерения назвал инженер и решил собрать?) с актуальной информацией о текущем состоянии в режиме реального времени. производство. [3]

Инструментарий может быть автоматическим или индивидуальным. Автоматические приборы обеспечивают полное покрытие и немедленную выгоду; Специальные инструменты приносят большую пользу, но требуют более тесного участия в инструментированном приложении.

Инструментирование может быть собственным — выполненным в коде (изменение кода инструментируемого приложения) — или вне кода (например, Sidecar, eBPF ).

Проверка новых функций в производстве путем их отправки вместе с пользовательским инструментарием — это практика, называемая «разработка на основе наблюдаемости». [3]

«Столпы наблюдаемости»

[ редактировать ]

Метрики, журналы и трассировки чаще всего считаются основой наблюдаемости. [13] Мейджорс и др. предполагают, что столпами наблюдаемости являются высокая кардинальность, многомерность и возможность исследования, утверждая, что runbook и информационные панели не имеют большой ценности, потому что «современные системы редко выходят из строя по одному и тому же дважды». [3]

Самоконтроль

[ редактировать ]

Самоконтроль — это практика, при которой стеки наблюдаемости контролируют друг друга, чтобы снизить риск незаметных сбоев. В дополнение к высокой доступности и резервированию можно внедрить самоконтроль, чтобы в дальнейшем избежать коррелирующих сбоев.

См. также

[ редактировать ]
[ редактировать ]

Библиография

[ редактировать ]
  • Ботен, Алекс; Майорс, Благотворительность (2022). Облачная наблюдаемость с помощью OpenTelemetry . Пакт Паблишинг. ISBN  978-1-80107-190-1 . OCLC   1314053525 .
  • Специальности, Благотворительность; Фонг-Джонс, Лиз; Миранда, Джордж (2022). Инженерия наблюдаемости: достижение совершенства производства (1-е изд.). Севастополь, Калифорния: ISBN O'Reilly Media, Inc.  9781492076445 . OCLC   1315555871 .
  • Шридхаран, Синди (2018). Наблюдаемость распределенных систем: руководство по созданию надежных систем (1-е изд.). Севастополь, Калифорния: ISBN O'Reilly Media, Inc.  978-1-4920-3342-4 . OCLC   1044741317 .
  • Хаузенблас, Майкл (2023). Облачная наблюдаемость в действии . Мэннинг. ISBN  9781633439597 . OCLC   1359045370 .
  1. ^ Товарищи, Джефф (1998). «Высокопроизводительный клиент/сервер: руководство по созданию и управлению надежными распределенными системами». Интернет-исследования . 8 (5). doi : 10.1108/intr.1998.17208eaf.007 . ISSN   1066-2243 .
  2. ^ Кантрилл, Брайан (2006). «Скрыто на виду: улучшения в наблюдаемости программного обеспечения могут помочь вам диагностировать самые серьезные проблемы с производительностью» . Очередь . 4 (1): 26–36. дои : 10.1145/1117389.1117401 . ISSN   1542-7730 . S2CID   14505819 .
  3. ^ Перейти обратно: а б с д и ж г час я Специальности, Благотворительность; Фонг-Джонс, Лиз; Миранда, Джордж (2022). Инженерия наблюдаемости: достижение совершенства производства (1-е изд.). Севастополь, Калифорния: ISBN O'Reilly Media, Inc.  9781492076445 . OCLC   1315555871 .
  4. ^ «Что такое наблюдаемость» . ИБМ . 15 октября 2021 г. Проверено 9 марта 2023 г.
  5. ^ «Как начать наблюдение в источнике данных» . Циско . 26 октября 2023 г. Проверено 26 октября 2023 г.
  6. ^ Перейти обратно: а б Ливенс, Джей (октябрь 2021 г.). «Что такое наблюдаемость?» . Дайнатрейс . Проверено 9 марта 2023 г.
  7. ^ Перейти обратно: а б с «Измерение DevOps: мониторинг и наблюдаемость» . Гугл облако . Проверено 9 марта 2023 г.
  8. ^ Рейнхолдс, Эми (30 ноября 2021 г.). «Что такое наблюдаемость?» . Новая Реликвия . Проверено 9 марта 2023 г.
  9. ^ «Чем структурированные журналы отличаются от событий?» . 26 июня 2018 г.
  10. ^ Хэдфилд, Элли (29 июня 2022 г.). «Наблюдаемость против мониторинга: в чем разница в DevOps?» . Инстана . Проверено 15 марта 2023 г.
  11. ^ Кидд, Крисси. «Мониторинг, наблюдаемость и телеметрия: все, что вам нужно знать для наблюдаемой работы» . Проверено 15 марта 2023 г.
  12. ^ «Что такое наблюдаемость? Руководство для начинающих» . Спланк . Проверено 9 марта 2023 г.
  13. ^ Перейти обратно: а б Шридхаран, Синди (2018). «Глава 4. Три столпа наблюдаемости» . Наблюдаемость распределенных систем: руководство по созданию надежных систем (1-е изд.). Севастополь, Калифорния: ISBN O'Reilly Media, Inc.  978-1-4920-3342-4 . OCLC   1044741317 .
  14. ^ «Контекст трассировки» . W3C. 2021-11-23 . Проверено 27 сентября 2023 г.
  15. ^ «b3-распространение» . опензипкин . Проверено 27 сентября 2023 г.
  16. ^ «Что такое непрерывное профилирование?» . Фонд облачных вычислений . 31 мая 2022 г. Проверено 9 марта 2023 г.


Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 5c618169360e42d0b4a4798be1b088e7__1716650100
URL1:https://arc.ask3.ru/arc/aa/5c/e7/5c618169360e42d0b4a4798be1b088e7.html
Заголовок, (Title) документа по адресу, URL1:
Observability (software) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)