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

1. Введение

Последнее обновление: 28 июля 2023 г.

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

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

Посмотрите это видео , чтобы получить общий обзор Google Cloud Operations.

Что ты построишь

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

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

  • Использование Cloud Shell Google Cloud для развертывания примера приложения в Cloud Run.
  • Использование функций облачного мониторинга Google, таких как информационные панели, оповещения, проверки работоспособности, мониторинг 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 Console автоматически генерирует уникальную строку; обычно тебя не волнует, что это такое. В большинстве лабораторий кода вам потребуется указать идентификатор проекта (обычно он обозначается как PROJECT_ID). Если вам не нравится сгенерированный идентификатор, вы можете создать другой случайный идентификатор. Кроме того, вы можете попробовать свой собственный и посмотреть, доступен ли он. Его нельзя изменить после этого шага, и он останется в силе на протяжении всего проекта.
  • К вашему сведению, есть третье значение — номер проекта, который используют некоторые API. Подробнее обо всех трех этих значениях читайте в документации .

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

  1. Затем вам необходимо включить выставление счетов в Cloud Console, чтобы использовать облачные ресурсы/API. Прохождение этой лаборатории кода не должно стоить много, если вообще стоит. Чтобы отключить ресурсы и не взимать плату за пределами этого руководства, вы можете удалить созданные вами ресурсы или удалить весь проект. Новые пользователи 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 Cloud, что значительно повышает производительность сети и аутентификацию. Большую часть, если не всю, работу в этой лаборатории кода можно выполнить с помощью просто браузера или 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

[ { "И-1": 10, "И-2": 20, "И-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 Cloud, что значительно повышает производительность сети и аутентификацию. Всю работу в этой лабораторной работе можно выполнять с помощью простого браузера.

Настройка 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. Для развертывания из исходного кода требуется репозиторий Artifact Registry 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>/инвентарь
  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. Настройте панель мониторинга

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

Давайте посмотрим, как это сделать для службы 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 Monitoring. Просто нажмите «ИМПОРТ ОБРАЗЦА ПАНЕЛИ ИНФОРМАЦИИ» , чтобы импортировать все эти диаграммы в пользовательскую панель мониторинга. Появится экран информационной панели с предварительно заполненным именем, как показано ниже:

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 Console, как показано ниже:

9f87859064c63b63.png

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

5ab54f42e6f7b99.png

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

cd89b1ca9e1de87c.png

Найдите раздел «Электронная почта» и нажмите «ДОБАВИТЬ НОВЫЙ» для этой строки. Откроется информация о конфигурации электронной почты, как показано ниже:

d6ed98ffd0427fa3.png

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

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

Создание проверки работоспособности

Перейдите в «Мониторинг → Проверка работоспособности» в главном меню Google Cloud Console. Вверху вы увидите ссылку CREATE UPTIME CHECK . Нажмите на это.

484541aec65e605e.png

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

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

4e2bb9fe022320f7.png

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

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

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

a6011ac2ab3e0f10.png

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

d9738670efcb999f.png

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

Нажмите «ПРОСМОТР» , чтобы перейти к последнему шагу проверки настроенной нами проверки работоспособности.

На этом последнем этапе дайте имя проверке работоспособности (например, Inventory API Uptime Check ), а затем вы также сможете проверить, правильно ли настроена проверка. Для этого нажмите кнопку ТЕСТ .

80375bfab97fc313.png

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

df17555ddbee1127.png

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

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

6. Обозреватель метрик

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

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

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

Изучите показатель задержки для службы API инвентаризации

Перейдите в «Мониторинг → Обозреватель метрик» в главном меню Google Cloud Console. Вы перейдете на экран обозревателя метрик. Нажмите ВЫБРАТЬ ПОКАЗАТЕЛЬ. Теперь вы можете перемещаться по нескольким активным ресурсам, для которых созданы метрики.

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

7609d8156c8f1384.png

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

46086ac0a8eaf3d7.png

Появится диаграмма задержки, как показано ниже:

ad97f749eeacaa95.png

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

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

35d1788d5f0cb3c4.png

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

c9cdcd63d5823abd.png

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

27354d8310d8a2d7.png

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

7. Облачная регистрация

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

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

Обозреватель журналов

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

df05f5b33fd5695a.png

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

e7fa15bcf73f3805.png

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

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

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

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

Теперь мы будем искать все ПРЕДУПРЕЖДЕНИЯ, сгенерированные нашим API, если в запросе указан неправильный идентификатор продукта.

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

ресурс.тип="cloud_run_revision"

textPayload =~ "Получен запрос на инвентаризацию с неверным идентификатором продукта"

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

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

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

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

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, такие как доступность, задержка, а также расчеты бюджета ошибок.

Давайте продолжим и настроим Latency SLO для нашей службы API.

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

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

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

42d14515a481213.png

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

522aaba719f85c54.png

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

eca08010ab6858a9.png

Вы можете нажать CREATE 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.
  • Проверка работоспособности.
  • Настройка пользовательских показателей журнала и информационной панели/диаграммы на их основе.
  • Изучение обозревателя метрик и настройка информационной панели/диаграммы.
  • Настройка политик оповещений.
  • Настройка SLI/SLO для мониторинга сервисов в Google Cloud.

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

Что дальше?

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

дальнейшее чтение