Введение в пакет облачных операций

1. Введение

Последнее обновление: 28.07.2023

Что такое Google Cloud Operations Suite?

Google Cloud Operations Suite — это платформа, позволяющая отслеживать, устранять неполадки и повышать производительность приложений в вашей среде Google Cloud. Ключевые компоненты Cloud Operations Suite включают мониторинг облака, ведение журналов облака и трассировку облака.

Посмотрите это видео , чтобы получить общее представление об операциях Google Cloud.

Что вы построите

В этом практическом задании вы развернете пример API в Google Cloud. Затем вы изучите и настроите различные функции Cloud Monitoring для работы с этим API.

Что вы узнаете

  • Использование Cloud Shell от Google Cloud для развертывания тестового приложения в Cloud Run.
  • Использование функций мониторинга Google Cloud, таких как панели мониторинга, оповещения, проверки доступности, мониторинг SLI/SLO и многое другое.

Что вам понадобится

  • Последняя версия Chrome (74 или более поздняя)
  • Аккаунт Google Cloud и проект Google Cloud

2. Настройка и требования

Настройка среды для самостоятельного обучения

Если у вас еще нет учетной записи Google (Gmail или Google Apps), вам необходимо ее создать . Войдите в консоль Google Cloud Platform ( console.cloud.google.com ) и создайте новый проект.

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

c20a9642aaa18d11.png

  • Название проекта — это отображаемое имя участников данного проекта. Это строка символов, не используемая API Google. Вы можете изменить её в любое время.
  • Идентификатор проекта должен быть уникальным для всех проектов Google Cloud и неизменяемым (его нельзя изменить после установки). Консоль Cloud автоматически генерирует уникальную строку; обычно вам неважно, какая она. В большинстве практических заданий вам потребуется указать идентификатор проекта (обычно он обозначается как PROJECT_ID). Если сгенерированный идентификатор вас не устраивает, вы можете сгенерировать другой случайный идентификатор. В качестве альтернативы вы можете попробовать свой собственный и посмотреть, доступен ли он. После этого шага его нельзя изменить, и он останется неизменным на протяжении всего проекта.
  • К вашему сведению, существует третье значение — номер проекта, который используется некоторыми API. Подробнее обо всех трех значениях можно узнать в документации .

Внимание: Идентификатор проекта должен быть уникальным во всем мире и не может быть использован кем-либо еще после того, как вы его выберете. Вы являетесь единственным пользователем этого идентификатора. Даже если проект будет удален, идентификатор больше никогда не будет использован.

  1. Далее вам потребуется включить оплату в консоли Cloud для использования ресурсов/API Cloud. Выполнение этого практического задания не должно стоить дорого, если вообще что-либо. Чтобы отключить ресурсы и избежать дополнительных расходов после завершения этого урока, вы можете удалить созданные ресурсы или удалить весь проект. Новые пользователи Google Cloud имеют право на бесплатную пробную версию стоимостью 300 долларов США .

Настройка Google Cloud Shell

Хотя Google Cloud и Google Cloud Trace можно запускать удаленно с ноутбука, в этом практическом занятии мы будем использовать Google Cloud Shell — среду командной строки, работающую в облаке.

Для активации Cloud Shell из Cloud Console просто нажмите «Активировать Cloud Shell» (подготовка и подключение к среде займут всего несколько минут).

30c26f30d17b3d46.png

Если вы никогда раньше не запускали Cloud Shell, вам будет показан промежуточный экран (внизу), описывающий его назначение. В этом случае нажмите «Продолжить» (и вы больше никогда его не увидите). Вот как выглядит этот одноразовый экран:

9c92662c6a846a5c.png

Подготовка и подключение к Cloud Shell займут всего несколько минут.

9f0e51b578fecce5.png

Эта виртуальная машина оснащена всеми необходимыми инструментами разработки. Она предоставляет постоянный домашний каталог размером 5 ГБ и работает в облаке Google, что значительно повышает производительность сети и аутентификацию. Большая часть, если не вся, работа в этом практическом задании может быть выполнена с помощью обычного браузера или вашего Chromebook.

После подключения к Cloud Shell вы увидите, что ваша аутентификация пройдена и что проект уже настроен на ваш идентификатор проекта.

Выполните следующую команду в Cloud Shell, чтобы подтвердить свою аутентификацию:

После подключения к Cloud Shell вы увидите, что ваша аутентификация пройдена и проект уже настроен на ваш PROJECT_ID .

gcloud auth list

вывод команды

Credentialed accounts:
 - <myaccount>@<mydomain>.com (active)
gcloud config list project

вывод команды

[core]
project = <PROJECT_ID>

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

gcloud config set project <PROJECT_ID>

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

echo $GOOGLE_CLOUD_PROJECT

вывод команды

<PROJECT_ID>

Примеры приложений

Мы собрали все необходимое для этого проекта в репозитории Git. Репозиторий содержит несколько примеров приложений, и вы можете использовать любой из них для этого упражнения.

Ссылка на репозиторий Git: https://github.com/rominirani/cloud-code-sample-repository

3. Разверните API-приложение

О чём рассказывается в примере приложения или API?

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

После развертывания API и при условии, что он размещен по адресу https://<somehost> , мы можем получить доступ к конечным точкам API следующим образом:

  • https://<somehost>/inventory

Это отобразит список всех товаров с указанием уровня их наличия на складе.

  • https://<somehost>/inventory/{productid}

Это позволит получить единую запись, содержащую идентификатор продукта и уровень запасов данного товара.

Возвращаемые данные представлены в формате JSON.

Пример данных и запросы/ответы API

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

Идентификатор продукта

Уровень запасов на складе

И-1

10

И-2

20

И-3

30

Ниже приведены примеры запроса и ответа API:

API-запрос

Ответ API

https://<somehost>/inventory

[ { "I-1": 10, "I-2": 20, "I-3": 30 }]

https://<somehost>/inventory/I-1

{ "productid": "I-1", "qty": 10}

https://<somehost>/inventory/I-2

{ "productid": "I-2", "qty": 20}

https://<somehost>/inventory/I-200

{ "productid": I-200, "qty": -1}

Клонируйте репозиторий

Хотя Google Cloud можно управлять удаленно с ноутбука, в этом практическом занятии вы будете использовать Google Cloud Shell — среду командной строки, работающую в облаке.

В консоли GCP щелкните значок Cloud Shell на панели инструментов в правом верхнем углу:

bce75f34b2c53987.png

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

f6ef2b5f13479f3a.png

Эта виртуальная машина оснащена всеми необходимыми инструментами разработки. Она предоставляет постоянный домашний каталог размером 5 ГБ и работает в облаке Google, что значительно повышает производительность сети и аутентификацию. Всю работу в этой лаборатории можно выполнять с помощью обычного браузера.

Настройка gcloud

В Cloud Shell задайте идентификатор проекта и сохраните его в качестве переменной PROJECT_ID.

PROJECT_ID=[YOUR-PROJECT-ID]
gcloud config set project $PROJECT_ID

Теперь выполните следующую команду:

$ git clone https://github.com/rominirani/cloud-code-sample-repository.git 

В результате в этой папке будет создана папка с названием cloud-code-sample-repository .

(Необязательно) Запустите приложение в Cloud Shell.

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

  1. В терминале перейдите к версии API для Python, используя следующую команду:
$ cd cloud-code-sample-repository
$ cd python-flask-api
  1. В терминале введите следующую команду (на момент написания статьи Cloud Shell поставляется с предустановленным Python 3.9.x, и мы будем использовать версию по умолчанию. Если вы планируете запускать его локально на своем ноутбуке, вы можете использовать Python 3.8+):
$ python app.py
  1. Для запуска локального сервера Python можно выполнить следующую команду.

26570f586acaeacf.png

  1. Это запустит сервер на порту 8080 , и вы сможете протестировать его локально с помощью функции веб-предварительного просмотра Cloud Shell. Нажмите кнопку веб-предварительного просмотра, как показано ниже:

675d9b3097a6209c.png

Нажмите кнопку «Предварительный просмотр» на порту 8080.

  1. Откроется окно браузера. Вы увидите ошибку 404, это нормально. Измените URL-адрес, добавив после имени хоста только /inventory .

Например, на моём компьютере это выглядит так:

https://8080-cs-557561579860-default.cs-asia-southeast1-yelo.cloudshell.dev/inventory

Это отобразит список товаров на складе, как объяснялось ранее:

ef6afb0184c58870.png

  1. Теперь вы можете остановить сервер, перейдя в Терминал и нажав Ctrl-C.

Разверните приложение

Теперь мы развернем это API-приложение в Cloud Run. Для этого мы использовали клиент командной строки glcoud, чтобы выполнить команду развертывания кода в Cloud Run .

В терминале выполните следующую команду gcloud :

$ gcloud run deploy --source .

Вам будет задано несколько вопросов (если потребуется авторизация, пожалуйста, подтвердите её), некоторые из которых перечислены ниже. В зависимости от конфигурации и от того, включены ли уже определенные API в вашем проекте Google Cloud, вам могут быть заданы не все вопросы.

  1. Название сервиса (python-flask-api): либо используйте это имя по умолчанию, либо выберите что-то вроде my-inventory-api.
  2. API [run.googleapis.com] не включен в проекте [номер проекта]. Хотите включить и повторить попытку (это займет несколько минут)? (да/нет)? Да
  3. Пожалуйста, укажите регион: выберите регион по своему усмотрению, указав число.
  4. API [artifactregistry.googleapis.com] не включен в проекте [номер проекта]. Хотите включить и повторить попытку (это займет несколько минут)? (да/нет)? Да
  5. Для развертывания из исходного кода требуется репозиторий Docker в реестре артефактов для хранения собранных контейнеров. Будет создан репозиторий с именем [cloud-run-source-deploy] в регионе [us-west1].

Вы хотите продолжить (Да/Нет)? Да

  1. Разрешить неаутентифицированные вызовы к [my-inventory-api] (да/нет)? Да

В конечном итоге, это запустит процесс, в ходе которого ваш исходный код будет упакован в контейнер, отправлен в реестр артефактов, а затем развернут сервис Cloud Run с указанием ревизии. Наберитесь терпения (это может занять 3-4 минуты), и вы увидите, как процесс завершается, а вам будет показан URL-адрес сервиса.

Пример выполнения показан ниже:

7516696ea5b3004b.png

Протестируйте приложение

Теперь, когда мы развернули приложение в Cloud Run, вы можете получить доступ к API-приложению следующим образом:

  1. Запишите URL-адрес сервиса, полученный на предыдущем шаге. Например, в моей конфигурации он отображается как https://my-inventory-api-bt2r5243dq-uw.a.run.app . Назовем его <SERVICE_URL> .
  2. Откройте браузер и перейдите по следующим трем URL-адресам, чтобы получить доступ к конечным точкам API:
  3. <SERVICE_URL>/inventory
  4. <SERVICE_URL>/inventory/I-1
  5. <SERVICE_URL>/inventory/I-100

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

Получение сведений об услуге из Cloud Run

Мы развернули наш API-сервис в Cloud Run, бессерверной вычислительной среде. Мы можем в любой момент получить доступ к сервису Cloud Run через консоль Google Cloud.

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

10d2c363241d789c.png

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

1ec2c9e45ff1a2db.png

Обратите внимание на URL-адрес, который представляет собой URL-адрес сервиса, который вы можете ввести в браузер и получить доступ к API инвентаризации, который мы только что развернули. Можете также ознакомиться с метриками и другими подробностями.

Давайте сразу перейдем к делу и начнем с Google Cloud Operations Suite.

4. Настройка панели управления

Одной из удобных функций Cloud Monitoring являются готовые панели мониторинга для различных ресурсов в Google Cloud. Это делает первоначальную настройку панелей мониторинга со стандартными метриками быстрым и удобным процессом.

Давайте посмотрим, как это сделать для API-сервиса, который мы только что развернули в Cloud Run.

Настраиваемая панель управления для нашего сервиса

Поскольку мы развернули наш API-сервис в Cloud Run, давайте посмотрим, как настроить дашборды, которые помогут визуализировать различные метрики, в том числе и задержку сервиса.

Для начала, в консоли перейдите в раздел «Мониторинг» → «Обзор» , как показано ниже:

c51a5dda4ab72bbf.png

В разделе «Обзор» отображаются различные параметры, которые вы настроили в разделе «Мониторинг», такие как панели мониторинга, оповещения, проверки доступности и т. д.

2758f61f1e7f1dca.png

А теперь давайте нажмем на «Панели мониторинга» в боковом главном меню. Это приведет нас к следующему экрану:

c9110b6f065100da.png

Нажмите на кнопку «ПРИМЕРЫ БИБЛИОТЕКИ» . Отобразится список готовых (OOTB) панелей мониторинга, доступных в Google Cloud, для различных ресурсов. В частности, прокрутите список вниз и выберите Google Cloud Run, как показано ниже.

ddac4038d4fa91ae.png

Здесь отобразится список стандартных панелей мониторинга, доступных для Google Cloud Run. Нас это интересует, поскольку мы развернули наш сервис на Cloud Run.

Вы увидите одну панель мониторинга Cloud Run. Нажмите на ссылку «ПРЕДПРОСМОТР» , чтобы просмотреть список стандартных диаграмм (метрик), доступных для мониторинга Cloud Run. Просто нажмите «ИМПОРТ ПРИМЕРА ПАНЕЛИ МОНИТОРИНГА» , чтобы импортировать все эти диаграммы в пользовательскую панель мониторинга. После этого отобразится экран панели мониторинга с предварительно заполненным именем, как показано ниже:

531cb8434b18193a.png

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

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

Вы также можете отметить любой элемент панели управления как избранный, просто выбрав значок звездочки, как показано ниже:

fc993d1a17415550.png

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

2e8f66e2652c55c5.png

1e1dffb5239ab110.png

Замечательно! Вы только что добавили пользовательскую панель мониторинга для отслеживания ваших сервисов Cloud Run. Отлично!

5. Проверки времени безотказной работы

В этом разделе мы настроим проверку доступности нашего развернутого API-сервиса. Публичная проверка доступности может отправлять запросы из разных точек мира к общедоступным URL-адресам или ресурсам Google Cloud, чтобы проверить, отвечает ли ресурс.

В данном случае ресурсом будет API-сервис, развернутый в Cloud Run. URL-адрес будет представлять собой конкретную конечную точку, которую API-сервис предоставляет для отображения состояния сервиса.

В примере кода API-сервиса мы предоставили конечную точку /healthy , которая возвращает строковое значение " All Izz Well ". Таким образом, все, что нам нужно сделать, это определить проверку доступности, которая обращается к чему-то вроде https://<SERVICE_URL>/healthy и проверяет, возвращается ли строка "All Izz Well" или нет.

Создайте канал уведомлений

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

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

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

В главном меню консоли Google Cloud перейдите в раздел «Мониторинг» → «Оповещения» , как показано ниже:

9f87859064c63b63.png

Откроется страница с оповещениями, правилами и другой информацией. Сейчас вверху вы увидите ссылку « ИЗМЕНИТЬ КАНАЛЫ УВЕДОМЛЕНИЙ» . Нажмите на неё.

5ab54f42e6f7b99.png

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

cd89b1ca9e1de87c.png

Найдите раздел «Электронная почта» и нажмите «Добавить новую» для этой строки. Откроются сведения о настройке электронной почты, как показано ниже:

d6ed98ffd0427fa3.png

Введите свой адрес электронной почты и отображаемое имя, как показано ниже. Нажмите СОХРАНИТЬ.

На этом создание канала уведомлений по электронной почте завершено. Теперь перейдем к настройке проверки доступности.

Создание проверки времени безотказной работы

В главном меню консоли Google Cloud перейдите в раздел «Мониторинг» → «Проверки доступности» . Вверху вы увидите ссылку « СОЗДАТЬ ПРОВЕРКУ ДОСТОВЕРНОСТИ» . Нажмите на неё.

484541aec65e605e.png

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

Первый шаг — настройка параметров целевого объекта, то есть информации о развернутой нами службе Cloud Run. Заполненная форма представлена ​​ниже:

4e2bb9fe022320f7.png

Различные значения можно выбрать следующим образом:

  • Протокол: HTTPS
  • Тип ресурса: выберите Cloud Run Service. Обратите внимание на другие поддерживаемые ресурсы, для которых также можно настроить проверки доступности.
  • Сервис Cloud Run: выберите my-inventory-api или конкретное имя, которое вы используете для сервиса Cloud Run.
  • Путь — /healthy , поскольку мы возвращаем строку " All Izz Well" , и нам нужно это проверить.

Нажмите «ПРОДОЛЖИТЬ» , чтобы перейти к следующему шагу. Следующий шаг — проверка ответа , как показано ниже:

a6011ac2ab3e0f10.png

Как видите, мы включаем проверку "Соответствие содержимого", а затем настраиваем ответ, возвращаемый конечной точкой /healthy, как "Все в порядке". Нажмите "Продолжить" , чтобы перейти к следующему шагу, где мы настроим оповещение и укажем канал уведомлений, по которому мы должны получать оповещения в случае сбоя проверки доступности.

d9738670efcb999f.png

На этом шаге задайте имя для оповещения. Я выбрал название « Сбой проверки доступности API инвентаризации» , но вы можете выбрать своё имя. Важно выбрать правильный канал уведомлений из списка, который вы настроили ранее.

Для заключительного шага, позволяющего проверить настроенную проверку доступности, нажмите кнопку «ПРОВЕРИТЬ» .

На заключительном этапе присвойте имя проверке времени безотказной работы (например, «Проверка времени безотказной работы API инвентаризации »), после чего вы сможете проверить правильность настройки проверки. Для этого нажмите кнопку «ТЕСТ» .

80375bfab97fc313.png

Завершите процесс (нажмите кнопку « СОЗДАТЬ» слева). Google Cloud даст указание зондам проверки доступности, настроенным в разных регионах, отправить ping-запрос на URL-адрес, и эти ответы будут собраны. Через несколько минут перейдите в раздел «Мониторинг» → «Проверки доступности» , и в идеале вы должны увидеть все зеленые сигналы, указывающие на то, что URL-адрес был доступен с разных зондов.

df17555ddbee1127.png

Если какой-либо из датчиков выйдет из строя на определенный период времени (который можно настроить), вы получите уведомление по электронной почте на настроенный нами адрес.

На этом завершается наш раздел о настройке проверки доступности. Отлично!

6. Инструмент «Обозреватель метрик»

Cloud Monitoring предоставляет доступ к тысячам стандартных метрик из множества продуктов Google Cloud. Эти метрики можно исследовать, запрашивать, преобразовывать в диаграммы, добавлять на панели мониторинга, создавать оповещения и многое другое.

Наша цель в этом разделе:

  1. Разберитесь, как анализировать различные метрики, а затем мы рассмотрим конкретную метрику (задержку) для нашего API-сервиса.
  2. Преобразуйте этот показатель в диаграмму и настраиваемую панель мониторинга, которые затем можно будет использовать для визуализации показателя в любое время.

Изучите метрику задержки для сервиса API инвентаризации.

В главном меню консоли Google Cloud перейдите в раздел «Мониторинг» → «Обозреватель метрик» . Это откроет экран «Обозреватель метрик». Нажмите «Выбрать метрику». Теперь вы можете просмотреть несколько активных ресурсов, для которых были сгенерированы метрики.

Поскольку мы работаем с сервисами Cloud Run, нажмите на «Ревизия Cloud Run», затем выберите категорию и конкретный показатель под названием «Задержка запроса» , как показано ниже:

7609d8156c8f1384.png

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

46086ac0a8eaf3d7.png

Это отобразит график задержки, как показано ниже:

ad97f749eeacaa95.png

Создание диаграммы и пользовательской панели мониторинга.

Давайте сохраним эту диаграмму. Нажмите «Сохранить диаграмму» и используйте данные, указанные ниже:

35d1788d5f0cb3c4.png

Обратите внимание, что мы создаём новую панель мониторинга, а не сохраняем её в существующей. Нажмите кнопку СОХРАНИТЬ . Это добавит созданную панель мониторинга в наш список панелей мониторинга, как показано ниже:

c9cdcd63d5823abd.png

Для просмотра подробной информации нажмите на созданную нами панель мониторинга.

27354d8310d8a2d7.png

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

7. Ведение облачных журналов

В этом разделе мы рассмотрим Cloud Logging. Cloud Logging поставляется с интерфейсом Logs Explorer, который помогает вам перемещаться и изучать журналы, генерируемые различными сервисами Google и вашими собственными приложениями.

В этом разделе мы изучим Logs Explorer и смоделируем несколько сообщений журнала, которые затем можно будет найти и преобразовать в метрики с помощью функции, называемой «метрики на основе журналов» .

Проводник журналов

Доступ к обозревателю журналов можно получить через меню «Журналы» → «Обозреватель журналов» в главной консоли Google Cloud, как показано ниже:

df05f5b33fd5695a.png

Здесь отобразится интерфейс логирования, где вы сможете выбирать/отменять выбор различных ресурсов (проект, ресурс Google Cloud, названия сервисов и т. д.), а также уровни детализации логов для фильтрации сообщений в логах по мере необходимости.

e7fa15bcf73f3805.png

Выше представлен список журналов для развернутых нами служб Cloud Run (то есть служб Cloud Run). Вы увидите несколько запросов на проверку доступности, поступающих на настроенную нами конечную точку /healthy .

Поиск предупреждений

Смоделируйте несколько некорректных запросов к службе учета запасов, указав идентификаторы товаров, не входящие в списки I-1, I-2 и I-3. Например, некорректный запрос выглядит так:

https://<SERVICE_URL>/inventory/I-999

Теперь мы проверим все предупреждения, сгенерированные нашим API в случае предоставления некорректного идентификатора продукта в запросе.

В поле запроса введите следующие параметры запроса:

resource.type="cloud_run_revision"

textPayload =~ "Получен запрос на инвентаризацию для неверного productid"

Это должно выглядеть примерно так:

b3ee512a0c9c5c7b.png

Нажмите «Выполнить запрос». После этого отобразятся все поступившие запросы, в которых обнаружена эта проблема.

5fdbd7c23bf4694f.png

Метрики на основе логов

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

Чтобы преобразовать указанную выше информацию в метрику ошибок, нажмите кнопку «Создать метрику» , которую вы увидите в обозревателе журналов.

fa9a5e04922aa412.png

Откроется форма для создания определения метрики. Выберите метрику «Счетчик» и введите данные для названия метрики (inventory_lookup_errors) и описания, как показано ниже, затем нажмите «Создать метрику» .

70b5719b472d4d02.png

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

ab9058028185e4d5.png

Перейдите в меню «Журналирование» → «Метрики на основе журналов» , и вы увидите пользовательскую метрику, которую мы определили, в списке пользовательских метрик, как показано ниже:

7d186e90559cf8e1.png

В конце этой записи вы увидите три вертикальные точки ; щелкните по ним, чтобы увидеть операции, которые можно выполнить с этой пользовательской метрикой. Список должен быть похож на тот, что вы видите ниже. Щелкните по опции «Просмотреть в обозревателе метрик» .

7586f0789a0bdb41.png

Это должно привести нас к разделу «Обозреватель метрик», о котором мы узнали в предыдущем разделе, за исключением того, что теперь он уже заполнен автоматически.

7ee7403d0639ce25.png

Нажмите кнопку «Сохранить диаграмму» . Используйте следующие значения для параметров сохранения диаграммы:

9009da45f76eb4c5.png

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

201ed66957cb64f9.png

Отлично! Вы создали пользовательскую метрику на основе ваших логов и преобразовали её в диаграмму, которая отображается на пользовательской панели мониторинга. Это поможет нам отслеживать количество звонков с использованием некорректных идентификаторов продуктов.

8. Политика оповещений

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

Создайте политику оповещений.

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

3591a1dd91a8b9fd.png

Это отобразит текущие данные метрики. Давайте сначала отредактируем метрику, как показано ниже (нажмите кнопку «Редактировать»):

5e76fc20d8387984.png

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

65ccd1eaca607831.png

Нажмите кнопку «ПРИМЕНИТЬ» в правом верхнем углу, и мы вернемся к экрану «Метрики», но на этот раз сможем увидеть общее количество ошибок за период выравнивания в сравнении с частотой ошибок.

Мы собираемся создать политику оповещений, которая будет уведомлять нас в случае, если количество ошибок превысит пороговое значение. Щелкните по трем точкам в правом верхнем углу диаграммы и из списка параметров, как показано выше, выберите «Преобразовать в диаграмму оповещений».

cc9eec48b9bfbc92.png

Вы должны увидеть экран, как показано ниже:

6202ad1e88679a78.png

Нажмите «Далее» , после чего появится поле для установки порогового значения. В данном примере мы использовали значение 5 , но вы можете выбрать любое другое значение по своему усмотрению.

734f809cc802ab78.png

Нажмите кнопку ДАЛЕЕ , чтобы открыть форму уведомлений.

f2d84fb85c2520cb.png

В качестве канала уведомлений мы выбрали созданный ранее канал электронной почты. Вы можете заполнить другие поля, такие как документация (которая будет предоставлена ​​в составе отправленного оповещения). Нажмите «Далее» , чтобы просмотреть сводку и завершить процесс.

c670b29da70c4655.png

После создания этой политики оповещений она отобразится в списке политик оповещений, как показано ниже. Список политик можно посмотреть, перейдя в раздел «Мониторинг» → «Оповещения» . Найдите раздел «Политики» на странице, чтобы увидеть список политик, которые мы уже настроили.

154da627959c54f3.png

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

9. Мониторинг сервиса (опционально)

В этом разделе мы настроим SLI/SLO для наших сервисов в соответствии с принципами Site Reliability Engineering (SRE). Вы заметите, что Cloud Monitoring упрощает этот процесс, автоматически обнаруживая сервисы, развернутые в Cloud Run, и автоматически вычисляя ключевые SLI, такие как доступность, задержка, а также рассчитывая бюджет ошибок.

Давайте настроим показатель SLO для задержки (Latency SLO) для нашего API-сервиса.

Настройка SLO задержки для службы инвентаризации

В главном меню Cloud Console нажмите «Мониторинг» → «Сервисы» . Отобразится список сервисов, для которых настроен мониторинг.

В настоящее время у нас нет настроенных служб для мониторинга SLI/SLO, поэтому список пуст. Чтобы сначала определить/идентифицировать службу, нажмите на ссылку «ОПРЕДЕЛИТЬ СЛУЖБУ» вверху.

42d14515a481213.png

Это позволит автоматически обнаруживать сервисы, которые являются кандидатами на мониторинг SLO. Система способна обнаруживать сервисы Cloud Run, поэтому наш сервис Inventory API, развернутый в Cloud Run, будет виден в списке.

522aaba719f85c54.png

Отображаемое имя может отличаться и зависит от того, какое имя вы выбрали при развертывании сервиса в Cloud Run. Нажмите кнопку «ОТПРАВИТЬ» . После этого появится экран, показанный ниже:

eca08010ab6858a9.png

Вы можете нажать кнопку «СОЗДАТЬ SLO» . Это позволит вам выбрать значения SLI, которые будут автоматически рассчитаны для вас.

556e49b10d22e5ac.png

В качестве отправной точки выбираем Latency SLI . Нажмите «ПРОДОЛЖИТЬ». Далее вы увидите экран, на котором отображается текущая производительность этой службы и типичная задержка.

a9cc6f6778c13b52.png

Мы задали значение для порогового значения, а именно 300 мс, чего мы и хотим добиться. Вы можете выбрать другое значение, если хотите, но имейте в виду, что это повлияет на заданный вами диапазон ошибок. Нажмите «ПРОДОЛЖИТЬ» .

Теперь мы устанавливаем SLO (окно «Цель и измерение»), как показано ниже:

e1fc336d4191c08e.png

Это означает, что мы выбираем окно измерения как скользящее и проводим измерения в течение 7 дней. Аналогично, для целевого показателя мы выбрали цель в 90%. Мы хотим сказать, что 90% запросов к API-сервису должны выполняться в течение 300 мс, и это должно измеряться в течение 7 дней.

Нажмите « Продолжить». Откроется сводный экран, который вы можете подтвердить, нажав кнопку «ОБНОВИТЬ SLO» .

f2540173d9f4a4b7.png

Это сохранит ваше определение SLO, и бюджет ошибок будет рассчитан автоматически.

76393df0e189104.png

Вот несколько вариантов, которые вы можете попробовать:

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

10. Поздравляем!

Поздравляем, вы успешно развернули тестовое приложение в Google Cloud и узнали, как использовать Google Cloud Operations Suite для мониторинга состояния приложения!

Что мы рассмотрели

  • Развертывание сервиса в Google Cloud Run.
  • Настройка панели мониторинга для Google Cloud Run Service.
  • Проверки доступности.
  • Настройка пользовательских метрик логирования и панели мониторинга/диаграммы на их основе.
  • Изучение инструмента Metrics Explorer и настройка панели мониторинга/диаграммы.
  • Настройка политик оповещений.
  • Настройка SLI/SLO для мониторинга сервисов в Google Cloud.

Примечание: Если вы выполняли практическое задание, используя свою учетную запись и проект Google Cloud, выделенные ресурсы могут по-прежнему оплачиваться. Поэтому удалите проект и ресурсы после завершения задания.

Что дальше?

Пройдите этот квест по повышению квалификации в области облачных технологий, чтобы узнать больше о Google Cloud Operations Suite.

Дополнительная информация