Мониторинг на платформе Google Карт

Решение Cloud Monitoring собирает показатели ваших API и сервисов, а также всех используемых вами ресурсов Google Cloud Platform. В этой статье описано, как настраивать Cloud Monitoring, отслеживать использование API, а также создавать сводки и оповещения.

Сервис Cloud Monitoring предлагает множество функций и настроек. Ниже вы найдете общее описание Cloud Monitoring и несколько простейших примеров использования. Подробные сведения обо всех возможностях сервиса приведены в документации по Cloud Monitoring.

Как настроить Cloud Monitoring

В Monitoring вы можете отслеживать показатели и управлять ими для:

  • одного проекта;
  • нескольких проектов в одной организации;
  • нескольких проектов в нескольких организациях.

Чтобы показатели по проектам были доступны, выполните следующие действия:

  1. В Google Cloud Console выберите раздел Monitoring.

    Открыть Monitoring

  2. Убедитесь, что выбран нужный проект.
  3. На панели навигации Monitoring нажмите на стрелку > справа от элемента Metrics Scope (Область действия показателей). На скриншоте ниже показана страница, которая откроется, если выбран проект AllEnvironments:

    Скриншот показателей, которые отслеживаются для проекта. Перечислены все проекты, их идентификаторы и роли.

В таблице с заголовком Metrics monitored by this project (Показатели, отслеживаемые в этом проекте) перечислены все проекты, в которых доступны показатели для текущей области действия. В каждой строке таблицы указан один проект и его роль:

  • Scoping project (Целевой проект). В этом проекте хранятся настроенные параметры проверок работоспособности, правил оповещений, групп и сводок. Для каждой области действия показателей может быть только один целевой проект. В нашем примере целевым является проект AllEnvironments.
  • Monitored project (Отслеживаемый проект). Показатели этого проекта отслеживаются в текущей области действия. В нашем примере отслеживаемыми проектами являются Staging и Production.

В таблице с заголовком The projects listed below can view this project's metrics (Перечисленные ниже проекты могут отслеживать показатели этого проекта) перечислены проекты, для которых текущий проект включен в область действия показателей. На скриншоте выше мы видим, что ни один другой проект не имеет доступа к показателям проекта AllEnvironments.

Более подробную информацию (в том числе о том, как добавлять и удалять проекты в Cloud Monitoring) можно найти в статье о настройке Cloud Monitoring.

Как посмотреть значения показателей

Чтобы изучить данные показателей, создайте диаграмму с помощью инструмента Metrics Explorer, который входит в состав Cloud Monitoring. Например, чтобы посмотреть использование квоты для определенного API, создайте в Metrics Explorer диаграмму с последними данными.

На скриншоте ниже показана диаграмма использования квоты для API Карт.

Скриншот с данными показателей квоты для всех Maps API. Данные представлены на линейчатой диаграмме, на которой каждый сегмент столбца соответствует определенному API.

В этом примере показана линейчатая диаграмма с накоплением, где каждый API представлен одним сегментом столбца. Вы можете создавать графики, линейчатые диаграммы, тепловые карты и другие виды диаграмм. Также можно объединить на одной диаграмме до 10 разных показателей.

Что показано на скриншоте:

  • Поля Resource Type (Тип ресурса) и Metric (Показатель) слева от диаграммы определяют, какие данные показателей представлены на ней.
  • В раскрывающемся списке над диаграммой можно выбрать ее тип. В нашем примере выбран вариант Stacked bar chart (Линейчатая диаграмма с накоплением).
  • Также над диаграммой выбран диапазон 1W (одна неделя).
  • Под диаграммой приведен список параметров: service (сервис), quota_metrics (показатели квоты), method (метод API) и value (значение показателя). Они определяют данные, показанные на диаграмме. Нажмите Add Filter (Добавить фильтр), чтобы уточнить данные с помощью этих параметров.

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

Как создать диаграмму по одному показателю

Чтобы настроить диаграмму в Metrics Explorer, выполните следующие действия:

  1. В Cloud Console выберите раздел Monitoring.

    Открыть Monitoring

  2. На панели навигации выберите Metrics Explorer.
  3. В раскрывающемся списке с типами диаграмм выберите Stacked bar chart (Линейчатая диаграмма с накоплением).
  4. Выберите интервал времени, например 1W (одна неделя).
  5. Укажите данные, которые нужно показать на диаграмме. Чтобы выбрать нужные показатели в меню или применить фильтр, перейдите на вкладку Configuration (Конфигурация). Чтобы использовать язык запросов мониторинга (MQL, Monitoring Query Language), перейдите на вкладку MQL.
    1. Чтобы создать диаграмму использования квоты, в поле Resource type (Тип ресурса) выберите значение Consumer Quota (Квота клиента). Если вы хотите сами создать диаграмму, выберите Используемый API или Google Maps API. Подробную информацию о том, какие показатели доступны для API платформы Google Карт, вы можете найти в разделе Показатели использования. Наведите указатель на любой тип ресурса, чтобы увидеть его описание.
    2. В поле Metric (Показатель) выберите Rate quota usage (Доля использования квоты). Диаграмма автоматически обновится, и на ней появятся данные показателя. Обратите внимание, что в качестве показателя можно выбрать и другие варианты квот. Наведите указатель на любой из показателей, чтобы увидеть его описание. Дополнительные сведения о полях Metrics Explorer приведены в разделах Как выбрать показатели и Как выбрать способ показа данных на диаграмме.
  6. (Необязательно.) Чтобы уточнить данные диаграммы, воспользуйтесь любым из следующих способов:
    1. Примените фильтры. Чтобы добавить фильтр, нажмите Add filter (Добавить фильтр) и введите параметры. Подробную информацию вы найдете в статье о том, как фильтровать данные на диаграмме. Например, чтобы посмотреть данные только одного API:
      1. В поле Label (Ярлык) выберите method.
      2. В поле Comparison (Сравнение) выберите = (equals).
      3. В поле Value (Значение) выберите название метода. Вам будет предложено выбрать название метода, для которого есть данные.
      4. Нажмите Done (Готово), чтобы обновить диаграмму.
    2. Чтобы сгруппировать временные ряды по ярлыкам, используйте поле Group by (Группировать по). При выборе значения в этом поле автоматически заполняется поле Aggregator (Агрегатор).
    3. Чтобы задать способ комбинирования временных рядов, выберите значение в поле Aggregator (Агрегатор). Например, если в поле Group by (Группировать по) ничего не выбрано, а в поле Aggregator (Агрегатор) задано значение mean (среднее), то на диаграмме будут показаны средние значения по временному ряду.
    4. Чтобы настроить обработку отдельных временных рядов, нажмите Show Advanced Options (Показать дополнительные настройки). Более подробную информацию можно найти в статье о выборе показателей в Metrics Explorer.
  7. Вы также можете добавить диаграмму в сводку.

    Когда вы закрываете страницу Metrics Explorer, диаграмма удаляется. Вы можете нажать кнопку Save Chart (Сохранить диаграмму), чтобы сохранить диаграмму в новой или существующей сводке. Подробная информация об этом приведена далее в разделе Как создать сводку.

Как создать диаграмму по нескольким показателям

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

Чтобы добавить показатель на существующую диаграмму, выполните следующие действия:

  1. На диаграмме выберите действие Add another metric (Добавить показатель) в нижней части экрана.
  2. Выберите показатель и укажите, как нужно отображать для него временной ряд, аналогично тому, как вы ранее настраивали первый показатель.

Дополнительные сведения об анализе показателей можно найти в следующих статьях:

Как создать сводку

Сводки позволяют просматривать и отслеживать данные временных рядов в виде набора диаграмм. В Cloud Monitoring можно использовать стандартные сводки и создавать собственные.

  • Стандартные сводки создаются автоматически для каждого сервиса Google Cloud Platform, который вы используете. Вы не можете изменять их.
  • Собственные сводки вы создаете самостоятельно и выбираете, какие данные показывать в них и каким способом. Например, вы можете добавить в сводку данные показателей, правила оповещений и журналы, сохраненные в проекте. Данные временных рядов можно показывать в виде диаграммы, шкалы или таблицы.

Вы можете создать собственные сводки с помощью Cloud Console или Cloud Monitoring API. На скриншоте ниже показана пользовательская сводка с двумя диаграммами:

  • диаграмма квоты слева;
  • диаграмма числа вызовов API справа.

Скриншот пользовательской сводки, на которой показаны два графика. Слева находится диаграмма квоты, а справа — диаграмма вызовов API.
  На обеих диаграммах горизонтальная ось показывает метки времени.

Чтобы создать собственную сводку, сначала создайте диаграммы с показателями, а затем добавьте их в сводку. Вы можете создать диаграмму в Metrics Explorer и добавить ее в новую или существующую сводку. Вы также можете сначала создать сводку, а затем добавить в нее диаграмму.

Если вы хотите управлять собственными сводками через Cloud Monitoring API, то можете воспользоваться двумя полезными утилитами в Metrics Explorer:

  • Чтобы создать представление в формате JSON для диаграммы, которую вы хотите добавить в сводку, настройте диаграмму с помощью Metrics Explorer. Представление JSON будет доступно в меню в виде трех точек на панели инструментов Metrics Explorer.
  • Чтобы определить подходящий синтаксис фильтра для Monitoring, который можно использовать с Cloud Monitoring API, настройте диаграмму в интерфейсе меню Metrics Explorer. Выбрав все нужные показатели и фильтры, перейдите в режим прямого фильтра, чтобы открыть эквивалентный фильтр в Monitoring.

Как создать собственную сводку

Выполните следующие действия:

  1. В Cloud Console выберите раздел Monitoring.

    Открыть Monitoring

  2. На панели навигации выберите Dashboards (Сводки).
  3. На обзорной странице нажмите Create dashboard (Создать сводку).
  4. Для каждой диаграммы, которую нужно добавить в сводку, выполните следующие действия:
    1. Выберите тип диаграммы в меню Add chart (Добавить диаграмму) или перетащите нужный вариант из библиотеки в область диаграммы.

      Отобразится заранее настроенная диаграмма выбранного типа. На скриншоте ниже показаны диаграмма типа "График" и панель конфигурации.

      Скриншот Metrics Explorer, где показано создание диаграммы для добавления в сводку

    2. Выберите значения в полях Resource type (Тип ресурса) и Metric (Показатель) и примените нужные фильтры, как и при создании диаграммы.

      Дополнительные сведения о доступных вариантах можно найти в статье о добавлении виджетов в сводки.

  5. (Необязательно.) На панели инструментов сводки нажмите Add chart (Добавить диаграмму), чтобы добавить ещё одну диаграмму, а затем повторите все описанные выше шаги по ее настройке.
  6. Завершив редактирование, нажмите на стрелку влево, чтобы закрыть сводку, или выберите любой другой пункт меню в разделе Monitoring. Изменения сводки сохраняются автоматически.

Как посмотреть сводку

Выполните следующие действия:

  1. В Cloud Console выберите раздел Monitoring.

    Открыть Monitoring

  2. На панели навигации выберите Dashboards (Сводки).
  3. Выберите из списка собственную или стандартную сводку.

Дополнительные сведения о создании сводок можно найти в следующих статьях:

Показатели использования

Отслеживать использование API платформы Google Карт можно с помощью двух групп показателей: Serviceruntime (тип ресурса consumed_api) для API платформы Google Карт и непосредственно показатели платформы Google Карт (тип ресурса maps.googleapis.com/Api).

Оба варианта поддерживают один и тот же набор ярлыков для сегментации трафика: project_id, service, method, version, location и credential_id. Описания ярлыков можно найти в документации по соответствующему ресурсу:

В каждой группе показателей есть два типа показателей для отслеживания использования: Request Count (Количество запросов) и Request Latencies (Задержка запросов).

При использовании показателя Request Count (Количество запросов) вы можете сегментировать трафик с помощью ярлыков protocol, grpc_status_code, response_code и response_code_class. Кроме того, вы можете использовать platform_type для показателей платформы Google Карт.

При использовании показателя Request Latencies (Задержка запросов) вы можете сегментировать трафик с помощью ярлыков protocol, platform_type, response_code и response_code_class только для показателей платформы Google Карт.

Дополнительную информацию о ярлыках и типах показателей вы можете найти в документации:

Соответствия между статусом ответа и ярлыками кода ответа

В таблице ниже описаны соответствия между кодами статуса ответа и кодами статуса HTTP, которые возвращаются в ответ на запросы к API платформы Google Карт. Также там перечислены ярлыки кодов ответа, доступные в Cloud Monitoring: код ответа HTTP, класс кода ответа HTTP, код статуса gRPC. Код статуса gRPC – это числовой код для запросов gRPC или его эквивалент для HTTP-запросов.

Коды, которые возвращаются в ответах API Коды ответов, которые передаются в Cloud Monitoring
Статус Maps API Код ответа HTTP Код ответа HTTP Класс кода ответа HTTP Код статуса gRPC
OK 200,
204,
302
200,
204,
302
2xx,
3xx
0 (OK)
DATA_NOT_AVAILABLE,
NOT_FOUND,
ZERO_RESULTS
200 200/404(1) 2xx/4xx(1) 5 (NOT_FOUND)(1)
NOT_FOUND (API Просмотра Улиц: Street View Static, Geolocation и Roads),
ZERO_RESULTS (Street View Static API)
404 404 4xx 5 (NOT_FOUND)
INVALID_REQUEST (недопустимое значение параметра),
MAX_ROUTE_LENGTH_EXCEEDED,
MAX_WAYPOINTS_EXCEEDED,
и т. д.
200/400 400 4xx 3 (INVALID_ARGUMENT)
INVALID_REQUEST (недопустимый или отсутствующий параметр, ошибка обработки запроса) 200/400 400 4xx 3 (INVALID_ARGUMENT)
REQUEST_DENIED 200/403,
200/400
403,
401(1)
4xx(1) 7 (PERMISSION_DENIED),
16 (UNAUTHENTICATED)
OVER_DAILY_LIMIT,
OVER_QUERY_LIMIT,
RESOURCE_EXHAUSTED,
dailyLimitExceeded,
rateLimitExceeded,
userRateLimitExceeded
200/403,
429
429(1) 4xx(1) 8 (RESOURCE_EXHAUSTED)
UNKNOWN_ERROR 200/500,
503
500(1),
503
5xx(1) 2 (UNKNOWN)/13 (INTERNAL)(1),
14 (UNAVAILABLE)
1 Чтобы улучшить согласованность кодов ошибок в отчетах, мы переносим API платформы Google Карт: 1) С класса/кода ответа HTTP 200/2xx на 404/4xx (и код статуса GRPC с 0 (OK) на 5 (NOT_FOUND)) для следующих статусов Maps API: DATA_NOT_AVAILABLE, NOT_FOUND, ZERO_RESULTS (статус). 2) С класса/кода ответа HTTP 200/2xx, 400/4xx на 403/4xx (код статуса GRPC 7 (PERMISSION_DENIED)) для следующего статуса Maps API: REQUEST_DENIED. 3) С класса/кода ответа HTTP 200/2xx, 403/4xx на 401/4xx (код статуса GRPC 16 (UNAUTHENTICATED)) для следующего статуса Maps API: REQUEST_DENIED. 4) С класса/кода ответа HTTP 200/2xx, 403/4xx на 429/4xx для следующих статусов Maps API: OVER_QUERY_LIMIT, dailyLimitExceeded, rateLimitExceeded, и userRateLimitExceeded. 5) С класса/кода ответа HTTP 200/2xx на 500/5xx (и код статуса GRPC 2 (UNKNOWN), 13 (INTERNAL)) для следующего статуса Maps API: UNKNOWN_ERROR. В переходный период вы можете увидеть оба кода. Коды, возвращаемые в ответах Maps API, не меняются. Вы можете изучить разбивку кодов ответов в Metrics Explorer.

Как создать оповещения

Оповещения позволяют своевременно получать сведения о проблемах с приложениями и быстро устранять неполадки. В Cloud Monitoring используются правила, которые описывают условия, при выполнении которых вы хотите получать оповещения, и формат этих оповещений.

Правила оповещений могут быть простыми или сложными. Вы можете указать, должно ли условие выполняться для одного или для нескольких временных рядов, чтобы сработало оповещение. Примеры:

  • Создавать оповещение, когда количество запросов для определенного API превышает 1000 за пятиминутный интервал.
  • Оповещать команду быстрого реагирования, когда 90-й процентиль задержки по ответам HTTP 200 превышает значение 100 мс для трех и более API.

На скриншоте ниже показано определение, которое создает оповещение, когда количество запросов к API превышает 20 за пятиминутный интервал.

Скриншот настройки оповещения с диаграммой, на которой количество запросов к API для всех Maps API представлено в виде в отдельных линий, а пороговое значение оповещения – в виде красной горизонтальной линии.

Что показано на скриншоте:

  • Диаграмма с количеством вызовов разных API за определенный период времени.
  • Красная линия обозначает пороговое значение оповещения. Если количество вызовов API превысит это пороговое значение за 5 минут, будет создано оповещение. В этом примере пороговое значение превышено для одного API.

Если выполняются условия, указанные в правиле оповещения, то Cloud Monitoring открывает инцидент и отправляет уведомления.

  • Инцидентом называется постоянно хранимая запись с информацией о ресурсах для мониторинга по состоянию на момент выполнения условия. Когда условие перестает выполняться, инцидент автоматически закрывается. Вы можете просматривать все инциденты, как открытые, так и закрытые, в сводке оповещений.
  • При настройке правила оповещения вы можете указать, кому нужно отправлять оповещение. Monitoring поддерживает многие стандартные каналы уведомлений, в том числе электронную почту, Cloud Mobile App и сторонние сервисы, например PagerDuty и Slack. Вы можете ознакомиться с полным списком доступных каналов.

Типы оповещений

Cloud Monitoring поддерживает множество типов оповещений. Например, вы можете задать следующие конфигурации:

  • Оповещения о достижении пороговых значений. Срабатывают, если значение показателя находится выше или ниже заданного порога в течение определенного периода времени или если значение показателя уменьшается или увеличивается более чем на заданное количество процентов.
  • Оповещения о бюджете. Вы можете задать правила пороговых значений, чтобы получать уведомления о том, что фактические или прогнозируемые расходы превысили определенный процент от выделенного бюджета. Такие оповещения не ограничивают использование API, а просто предупреждают вас о том, что затраты приближаются к определенному уровню.
  • Оповещения о квотах. В Google Cloud Platform предусмотрены различные квоты, которые позволяют контролировать и ограничивать использование ресурсов для проекта или организации. Вы можете получать оповещения, когда объем потребления приближается к установленной квоте.

Подробнее о типах правил оповещений

Управление правилами оповещений

Вы можете добавить в проект правило оповещений с помощью Cloud Console или Cloud Monitoring API. Подробная информация о том, как просматривать и изменять правила оповещений на основе показателей для проекта, приведена в следующих статьях:

Как создать оповещение

Чтобы создать оповещение, нужно определить:

  • условия на основе данных показателей, при выполнении которых будут срабатывать оповещения;
  • каналы уведомлений, по которым будет отправляться информация.

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

Чтобы создать такое оповещение, выполните следующие действия:

  1. В Cloud Console выберите раздел Monitoring.

    Открыть Monitoring

  2. Выберите Alerting (Оповещения).
  3. Выберите Edit Notifications Channel (Изменить канал уведомлений), чтобы определить метод отправки оповещений. В рамках этого примера предлагается использовать свой адрес электронной почты.
    1. В разделе Email channel (Канал электронной почты) нажмите Add New (Добавить).
    2. Введите значения в полях Email Address (Адрес электронной почты) и Display Name (Отображаемое название).
    3. Нажмите Save (Сохранить).
  4. Выберите Alerting (Оповещения).
  5. Нажмите Create Policy (Создать правило).
  6. Выберите временной интервал, например 7 days (7 дней).
  7. В области Alert Conditions (Условия оповещения) выберите New condition (Новое условие):
    1. Нажмите Select a Metric (Выбрать показатель), затем выберите ресурс Consumed API (Потребление API) и показатель Request Count (Число запросов). Нажмите Apply (Применить).
    2. (Необязательно.) Под диаграммой приведен список параметров: service (сервис), quota_metrics (показатели квоты), method (метод API) и value (значение показателя). Нажмите Add filter (Добавить фильтр), чтобы отфильтровать данные на основе этой информации. Например, в фильтре можно указать, что значение method должно равняться google.places.Autocomplete.http, чтобы сработало оповещение.
    3. В разделе Transform data (Преобразование данных) выберите значение 5 min (5 минут) для поля Rolling window (Скользящий интервал) и значение mean (среднее) для поля Rolling window function (Функция скользящего интервала).
    4. Нажмите Next (Далее).
  8. В разделе Configure alert trigger (Настройка триггера оповещения) задайте для поля Threshold value (Пороговое значение) значение 2. Так оповещение будет срабатывать при получении более 2 запросов в интервале 5 минут. Обратите внимание, что на диаграмме теперь появилась красная линия, соответствующая выбранному лимиту в указанном интервале. На диаграмме вы сможете увидеть, когда сработает оповещение, и откорректировать значение лимита по мере необходимости.
  9. Нажмите Далее.
  10. На странице Configure notifications and finalize alert (Настройка уведомлений и создание оповещения) выполните следующие действия:
    1. Выберите адрес электронной почты, который вы добавили в разделе Notification Channel Канал уведомлений.
    2. В разделе Name the alert (Название оповещения) введите Тестовое оповещение.
    3. Нажмите Create Policy (Создать правило).
  11. Выполните несколько запросов к API. Обязательно создайте не менее двух запросов к API в пределах пяти минут, чтобы запустить оповещение по электронной почте.
  12. Получив оповещение, перейдите на страницу Alerting (Оповещения).
    1. В таблице со списком оповещений нажмите на созданное оповещение, чтобы получить дополнительные сведения.
    2. Нажмите на название оповещения, чтобы посмотреть сведения о нем, в том числе диаграмму, на которой показано вызвавшее его событие.

Дополнительные сведения об оповещениях можно найти в следующих статьях: