Перейти к содержимому
Мониторинг внешней страницы статуса

Мониторинг внешней страницы статуса

Открыть в Markdown

Монитор внешней страницы статуса следит за публичной страницей статуса сервиса, от которого вы зависите, — AWS, GCP, Azure, GitHub, OpenAI, Anthropic и многих других — и оповещает вас, когда провайдер сообщает о сбое или снижении производительности. Используйте его, чтобы узнавать о проблемах у поставщиков сразу, как только они о них сообщают, и отличать их от собственных.

Он читает и страницы статуса, созданные в Status200, ресурс за ресурсом, и отличает плановые работы от сбоя: следите за проектом другой команды или за поставщиком, чья страница статуса работает на Status200.

Как это работает

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

flowchart TB fetch["Загрузить страницу статуса"] --> detect["Определить формат"] detect --> parse["Прочитать статус, компоненты, инциденты"] parse --> scope["Оставить группу или компонент"] scope --> criteria{"Активный инцидент или сбой?"} criteria -->|Да| down["Офлайн, инцидент объявлен"] criteria -->|Нет| up["Онлайн"]

Одна проверка внешней страницы статуса

С его помощью можно:

  • Отслеживать доступность сторонних сервисов, от которых зависит ваше приложение
  • Получать оповещения, когда у поставщиков случаются сбои
  • Отслеживать статусы отдельных компонентов
  • Ограничивать мониторинг одной группой компонентов (например, только "APIs" у OpenAI), чтобы посторонние инциденты в других частях страницы не срабатывали в вашем мониторе
  • Замечать снижение производительности до того, как оно затронет ваших пользователей
  • Сопоставлять собственные инциденты с проблемами поставщиков

Поддерживаемые провайдеры

ПровайдерОписание
Auto (по умолчанию)Автоматически определяет формат страницы статуса
Atlassian StatuspageСтраницы статуса на Atlassian Statuspage (JSON API)
incident.ioСтраницы статуса на incident.io (например, https://status.openai.com)
Status200 Status PageСтраницы статуса, созданные в Status200: статус каждого ресурса и то, что сейчас на обслуживании
RSSСтраницы статуса с лентой RSS
AtomСтраницы статуса с лентой Atom

Автоопределение

Когда выбран Auto, Status200 автоматически определяет формат страницы статуса в таком порядке:

  1. Сначала пробует API страниц статуса incident.io (/proxy/<host>).
  2. Затем пробует JSON API Atlassian Statuspage (/api/v2/status.json, /api/v2/components.json и /api/v2/incidents/unresolved.json).
  3. Затем запрашивает сводку страницы статуса Status200 (/status-page-api/summary/<page>).
  4. Если не получилось, пытается разобрать страницу как ленту RSS или Atom.
  5. В крайнем случае выполняет простую проверку доступности по HTTP.
Примечание

incident.io проверяется первым, потому что некоторые страницы статуса incident.io (например, https://status.openai.com) также предоставляют ограниченный совместимый с Atlassian эндпоинт без групп компонентов и активных инцидентов. Проверка incident.io в первую очередь гарантирует, что используются более полные данные с группами.

Проверка доступности — это также запасной вариант, когда явно выбранный вами провайдер не срабатывает. Она сообщает только, отвечает ли страница (онлайн при ответе 2xx или 3xx), и не сообщает ни компонентов, ни инцидентов.

Создание монитора внешней страницы статуса

  1. Начните новый монитор

    Откройте Мониторы и нажмите Создать монитор. В разделе Тип монитора нажмите Другие типы мониторов и выберите External Status Page в группе Basic Monitoring или введите statuspage в поле поиска. Укажите Имя и нажмите Далее.

  2. Введите URL страницы статуса

    Введите URL страницы статуса. Оставьте Провайдер в значении Auto, если не знаете формат.

  3. При необходимости сузьте область

    Откройте Дополнительные поля, чтобы ввести Component Group Filter, например APIs, и Фильтр по имени компонента, чтобы следить за одним компонентом (внутри группы, если она задана).

  4. Протестируйте его

    Нажмите Протестировать монитор, чтобы один раз загрузить страницу, и проверьте найденные провайдер, компоненты и инциденты.

  5. Проверьте критерии

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

  6. Выберите зонды и создайте монитор

    Выберите Зонды и Интервал мониторинга (по умолчанию Каждые 5 минут), затем нажмите Создать монитор.

Параметры конфигурации

ПараметрЧто ввестиПо умолчанию
URL страницы статусаURL страницы статуса. Для сайтов на Atlassian Statuspage и incident.io это обычно корневой URL (например, https://status.example.com). Для лент RSS/Atom введите URL самой ленты.—
ПровайдерAuto, чтобы определить формат автоматически, или Atlassian Statuspage, incident.io, Status200 Status Page, RSS либо Atom, если он известен.Auto
Component Group FilterГруппа, которой ограничивается монитор. В Дополнительные поля.Все группы
Фильтр по имени компонентаКомпонент, за которым нужно следить. В Дополнительные поля.Все компоненты в пределах области
Тайм-аут (ms)Максимальное время ожидания страницы статуса. В Дополнительные поля.10000 (10 секунд)
Повторные попыткиСколько раз повторять с интервалом в секунду после неудачной первой попытки; 0 означает одну попытку. В Дополнительные поля.3 (до 4 попыток)

Component Group Filter

Если страница статуса распределяет компоненты по группам, монитор можно ограничить одной группой. Например, на https://status.openai.com значение APIs ограничивает монитор сервисами API OpenAI.

Когда задана группа компонентов, число активных инцидентов и общий статус вычисляются только по компонентам этой группы: инцидент в посторонней группе (например, ChatGPT) не сработает в мониторе, ограниченном группой "APIs".

Фильтрация по группе компонентов поддерживается для провайдеров Atlassian Statuspage, incident.io и Status200 Status Page. Ленты RSS и Atom групп компонентов не предоставляют.

Фильтр по имени компонента

Если страница статуса сообщает о нескольких компонентах, можно указать имя компонента, чтобы отслеживать только его. Фильтр совпадает с любым компонентом, имя которого содержит введённый текст, без учёта регистра: actions совпадает с компонентом "Actions".

Если задана и группа компонентов, фильтр по имени компонента применяется внутри этой группы, что позволяет выбрать один компонент в большой группе. Если ни один фильтр не задан, отслеживаются все компоненты в пределах области. Для ленты RSS или Atom фильтр по имени сравнивается с заголовками элементов ленты.

Предупреждение

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

Критерии мониторинга

Вы можете настроить критерии, которые решают, когда внешний сервис считается онлайн или офлайн, на основе:

Тип фильтраЧто он проверяетУсловия фильтра
External Status Page Is OnlineДоступна ли страница статуса и возвращает ли она данные о статусеИстина или Ложь
External Status Page Overall StatusОбщий статус, о котором сообщает страницаРавно, Не равно, Содержит, Не содержит, Начинается с, Заканчивается на
External Status Page Component StatusСтатус компонентов в пределах области (с учётом фильтров группы компонентов / имени компонента): Работает, Under Maintenance, Degraded Performance, Partial Outage, Major Outage или Full OutageРавно, Не равно, Содержит, Не содержит, Начинается с, Заканчивается на
External Status Page Active IncidentsЧисло активных сейчас инцидентов на странице статуса (в пределах группы компонентов / компонента, если задан фильтр)Равно, Не равно и числовые сравнения
External Status Page Response Time (in ms)Сколько времени занимает загрузка данных страницы статусаБольше, Меньше, Больше или равно, Меньше или равно

Общий статус — это то, что пишет сама страница, поэтому его значения зависят от провайдера: Atlassian Statuspage сообщает собственное описание, например All Systems Operational; страница статуса Status200 — худший статус среди своих компонентов в охвате, например under_maintenance; лента сообщает operational или degraded_performance; проверка доступности сообщает reachable или unreachable. Эти сравнения учитывают регистр. Для оповещений о сбоях обычно надёжнее External Status Page Active Incidents и External Status Page Component Status.

В ленте RSS или Atom активными инцидентами считаются элементы за последние 24 часа: элемент RSS — по дате публикации, запись Atom — по дате обновления. Элемент с датой в будущем не учитывается до этой даты.

Критерии по умолчанию

По умолчанию Status200 создаёт критерии на основе того, что действительно важно для страницы статуса, — её активных инцидентов и состояния компонентов, а не просто доступности:

КритерийФильтрыДействие
OfflineЛюбой из: страница не в сети; в пределах области есть хотя бы один активный инцидент; компонент в пределах области сообщает Degraded Performance, Partial Outage, Major Outage или Full OutageПомечает монитор как офлайн и объявляет инцидент, который закрывается сам, когда критерий перестаёт совпадать
OnlineВсе из: страница в сети; в пределах области нет активных инцидентовПомечает монитор как онлайн

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

Страницы статуса Status200

Выберите провайдер Status200 Status Page или оставьте Auto, чтобы следить за страницей статуса, созданной в Status200: проектом другой команды или страницей поставщика в Status200 Cloud или в самостоятельно развёрнутом Status200. Введите собственный адрес страницы в URL страницы статуса: её домен, например https://status.example.com, или https://status200.ru/status-page/<status-page-id> для страницы без своего домена.

Монитор читает сводку страницы, /status-page-api/summary/<page> (см. Чтение сводки): только то, что страница показывает посетителям, и ничего больше из другого проекта. Каждый ресурс страницы, монитор или группа мониторов, — это компонент с тем именем, которое ему даёт страница, в группе страницы; группа внутри другой группы называется Core / Databases. Следите за одним ресурсом с помощью Фильтр по имени компонента или за одной группой с помощью Component Group Filter.

Статус компонента — это значение, которое означает его статус на странице, поэтому критерии статуса компонента работают как на любой странице статуса:

На страницеСтатус компонента
Рабочий статус проектаoperational
Статус с именем Degradeddegraded_performance
Статус с именем Offline, Down или Major Outagemajor_outage
Статус с именем Partial Outagepartial_outage
Статус с именем Full Outagefull_outage
Статус с именем Maintenanceunder_maintenance
Любой другой статусdegraded_performance
Статус, который страница скрывает, когда Show current status выключенunknown

Пока идущее событие плановых работ затрагивает ресурс, потому что называет один из его мониторов или монитор в его группе мониторов, компонент находится в under_maintenance, каким бы ни был статус его мониторов: монитор не проверяется, пока событие его удерживает. Событие, которое ещё не началось или уже закончилось, ничего не меняет. Активные инциденты страницы учитываются для ресурсов, которые они затрагивают.

Критерии по умолчанию никогда не принимают плановые работы за сбой: монитор остаётся в сети во время плановых работ другого проекта.

Показать плановые работы другого проекта на своём мониторе

  1. Добавьте критерий

    В критериях монитора нажмите Добавить критерии. Задайте ему фильтр External Status Page Component Status, Равно, Under Maintenance и выберите свой статус обслуживания в Изменить статус монитора на.

  2. Перетащите его наверх

    Перетащите новый критерий выше остальных: срабатывает первый подходящий критерий.

  3. Проверьте через Протестировать монитор

    Нажмите Протестировать монитор, пока у другого проекта идут плановые работы: затронутый компонент показывает Under Maintenance.

Что страница статуса Status200 позволяет прочитать монитору

Страница, которую может открыть любой, читается так, как её видят посетители. Частную страницу, которая требует входа, SSO или пароля, прочитать нельзя: при выбранном Status200 Status Page проверка завершается ошибкой и называет причину. Страница со списком разрешённых IP-адресов должна пропускать адрес зонда: следите за ней с зонда внутри этой сети.

Переменные шаблона

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

ПеременнаяОписание
{{isOnline}}Доступна ли страница статуса (true/false)
{{responseTimeInMs}}Время ответа в миллисекундах
{{failureCause}}Причина сбоя, если есть
{{overallStatus}}Значение индикатора общего статуса
{{activeIncidentCount}}Число активных инцидентов (в пределах фильтра, если он задан)
{{componentStatuses}}Массив JSON со статусами компонентов (name, status, description, groupName)
{{provider}}Определённый провайдер (Atlassian Statuspage, incident.io, Status200 Status Page, RSS, Atom); пусто после проверки доступности
{{componentGroup}}Группа компонентов, которой ограничен монитор, если задана
{{componentName}}Компонент, которым ограничен монитор, если задан

URL популярных страниц статуса

Вот список страниц статуса популярных сервисов. Многие из них используют Atlassian Statuspage или incident.io, поэтому провайдер Auto определяет их автоматически. Страница, построенная ни на том, ни на другом и не являющаяся лентой, получает только проверку доступности; для таких страниц лучше отслеживать ленту RSS или Atom провайдера, если он её публикует.

СервисURL страницы статуса
AWShttps://health.aws.amazon.com/health/status
Google Cloud Platformhttps://status.cloud.google.com
Microsoft Azurehttps://status.azure.com
GitHubhttps://www.githubstatus.com
OpenAIhttps://status.openai.com
Anthropichttps://status.anthropic.com
Cloudflarehttps://www.cloudflarestatus.com
Datadoghttps://status.datadoghq.com
PagerDutyhttps://status.pagerduty.com
Twiliohttps://status.twilio.com
Stripehttps://status.stripe.com
Slackhttps://status.slack.com
Atlassian (Jira, Confluence)https://status.atlassian.com
Vercelhttps://www.vercel-status.com
Netlifyhttps://www.netlifystatus.com
DigitalOceanhttps://status.digitalocean.com
Herokuhttps://status.heroku.com
MongoDB Atlashttps://status.cloud.mongodb.com
Fastlyhttps://status.fastly.com
New Relichttps://status.newrelic.com
Sentryhttps://status.sentry.io
CircleCIhttps://status.circleci.com

Рекомендации

  • Используйте провайдер Auto, если не знаете точный формат: автоопределение хорошо работает для большинства страниц статуса.
  • Ограничивайтесь группой компонентов, если зависите только от части провайдера (например, только от "APIs" у OpenAI), чтобы посторонние инциденты не создавали шума.
  • Отслеживайте конкретные компоненты, если зависите только от определённых сервисов.
  • Сочетайте с собственными мониторами — используйте мониторы внешних страниц статуса вместе со своими мониторами API и сайтов. Когда оба падают одновременно, страница статуса поставщика быстрее укажет на первопричину.

Устранение неполадок

Монитор офлайн, но инцидент касается части сервиса, которой я не пользуюсь

Ограничьте монитор с помощью Component Group Filter, Фильтр по имени компонента или обоих. Тогда число активных инцидентов и статусы компонентов будут учитывать только то, что входит в область.

Монитор не переходит в офлайн даже во время сбоя

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

Auto выбирает не тот формат или не находит компонентов

Задайте в Провайдер тот, который, как вы знаете, использует страница. Для ленты RSS или Atom введите URL самой ленты, а не страницы статуса.

Страница статуса Status200 не показывает компонентов

Выберите Status200 Status Page как Провайдер и нажмите Протестировать монитор: результат скажет, частная ли страница и не закрывает ли её список разрешённых IP-адресов доступ зонду. Самостоятельно развёрнутый Status200, который давно не обновлялся, ещё не отдаёт сводку: пока его не обновят, страница получает проверку доступности или читается как лента.

Внутренняя страница статуса недоступна

Зонд отклоняет адреса частных сетей, если ему не разрешено к ним обращаться. Задайте PROBE_ALLOW_PRIVATE_NETWORK_MONITORS=true на зонде внутри вашей сети — см. Доступ к частной сети.

Следующие шаги