+++
title = "Облачный мониторинг Google"
description = "Руководство по использованию Google Cloud Monitoring в Harvest"
keywords = ["harvest", "stackdriver", "google", "guide", "cloud", "monitoring"]
aliases = ["/docs/harvest/latest/features/datasources/stackdriver", "/docs/harvest/latest/datasources/cloudmonitoring/", "/docs/harvest/latest/features/datasources/cloudmonitoring/"]
weight = 200
+++
# Использование Google Cloud Monitoring в Harvest

Harvest поставляется со встроенной поддержкой Google Cloud Monitoring. Добавьте его в качестве источника данных для создания информационных панелей для показателей Google Cloud Monitoring. Инструкции по добавлению источника данных см. в разделе [Добавить источник данных]({{< relref "../add-a-data-source.md" >}}). Добавлять источники данных могут только пользователи с ролью администратора организации.

> **Примечание** До Harvest v7.1 Google Cloud Monitoring назывался Google Stackdriver.

## Настройки облачного мониторинга Google

Чтобы получить доступ к настройкам Google Cloud Monitoring, наведите указатель мыши на значок **Конфигурация** (шестеренка), затем нажмите **Источники данных**, а затем щелкните источник данных Google Cloud Monitoring.
    Имя                 | Описание                                                                                                                                                                           |
| --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Имя`                | Имя источника данных. Именно так вы обращаетесь к источнику данных в панелях и запросах.                                                                                                  |
| `По умолчанию`             | Источник данных по умолчанию означает, что он предварительно выбран для новых панелей.                                                                                                                   |
| `Ключ сервисной учетной записи` | Загрузите или вставьте файл ключа учетной записи службы для проекта GCP. Дополнительные сведения см. в разделе [Использование файла ключа учетной записи службы Google](#using-a-google-service-account-key-file). |

## Аутентификация

Существует два способа аутентификации подключаемого модуля Google Cloud Monitoring: загрузка файла Google JWT или автоматическое получение учетных данных с сервера метаданных Google. Последний вариант доступен только при запуске Harvest на виртуальной машине GCE.

### Использование файла ключа учетной записи службы Google

Чтобы пройти аутентификацию с помощью Google Cloud Monitoring API, вам необходимо создать учетную запись службы Google Cloud Platform (GCP) для проекта, для которого вы хотите отобразить данные. Источник данных Harvest интегрируется с одним проектом GCP. Если вы хотите визуализировать данные из нескольких проектов GCP, вам необходимо создать один источник данных для каждого проекта GCP.

#### Включить API

Сначала необходимо включить следующие API:

- [API мониторинга] (https://console.cloud.google.com/apis/library/monitoring.googleapis.com)
- [API диспетчера облачных ресурсов] (https://console.cloud.google.com/apis/library/cloudresourcemanager.googleapis.com)

Нажмите на ссылки выше и нажмите кнопку «Включить»:

{{< Figure src="/static/img/docs/v71/cloudmonitoring_enable_api.png" max-width="450px" class="docs-image--no-shadow" caption="Включить API GCP" >}}

#### Создание служебной учетной записи GCP для проекта

1. Перейдите на [страницу учетных данных API и служб](https://console.cloud.google.com/apis/credentials).
1. Нажмите раскрывающийся список/кнопку «Создать учетные данные» и выберите параметр «Ключ служебной учетной записи».

   {{< Figure src="/static/img/docs/v71/cloudmonitoring_create_service_account_button.png" max-width="500px" class="docs-image--no-shadow" caption="Кнопка создания сервисного аккаунта" >}}

1. На странице «Создать ключ сервисной учетной записи» выберите тип ключа «JSON». Затем в раскрывающемся списке «Учетная запись службы» выберите параметр «Новая учетная запись службы»:

   {{< Figure src="/static/img/docs/v71/cloudmonitoring_create_service_account_key.png" max-width="500px" class="docs-image--no-shadow" caption="Создать ключ сервисного аккаунта" >}}

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

   {{< Figure src="/static/img/docs/v71/cloudmonitoring_service_account_choose_role.png" max-width="600px" class="docs-image--no-shadow" caption="Выберите роль" >}}

1. Нажмите кнопку Создать. Файл ключа JSON будет создан и загружен на ваш компьютер. Храните этот файл в надежном месте, так как он обеспечивает доступ к вашим данным Google Cloud Monitoring.
1. Загрузите его в Harvest на странице конфигурации источника данных. Вы можете либо загрузить файл, либо вставить содержимое файла.

   {{< Figure src="/static/img/docs/v71/cloudmonitoring_harvest_upload_key.png" max-width="550px" class="docs-image--no-shadow" caption="Загрузить файл служебного ключа в Harvest" > }}

1. Содержимое файла будет зашифровано и сохранено в базе данных Harvest. Не забудьте сохранить после загрузки файла!

   {{< Figure src="/static/img/docs/v71/cloudmonitoring_harvest_key_uploaded.png" max-width="600px" class="docs-image--no-shadow" caption="Файл служебного ключа загружен в Harvest" >}}

### Использование сервисной учетной записи GCE по умолчанию

Если Harvest работает на виртуальной машине Google Compute Engine (GCE), Harvest может автоматически получать учетные данные по умолчанию с сервера метаданных. Это имеет то преимущество, что не нужно создавать файл закрытого ключа для учетной записи службы, а также не нужно загружать файл в Harvest. Однако для того, чтобы это сработало, необходимо выполнить несколько предварительных условий.

1. Прежде всего вам необходимо создать учетную запись службы, которую может использовать виртуальная машина GCE. Дополнительные сведения см. в разделе [Создание новой учетной записи службы](https://cloud.google.com/compute/docs/access/create-enable-service-accounts-for-instances#createanewserviceaccount).
1. Убедитесь, что экземпляр виртуальной машины GCE запускается под только что созданной учетной записью службы. Для получения дополнительной информации см. [например, использование сервисного аккаунта](https://cloud.google.com/compute/docs/access/create-enable-service-accounts-for-instances#using).
1. Разрешите доступ к области Cloud Monitoring API.

Дополнительные сведения о создании и включении сервисных аккаунтов для экземпляров ВМ GCE см. в разделе [включение сервисных аккаунтов для экземпляров](https://cloud.google.com/compute/docs/access/create-enable-service-accounts-for- экземпляры).

## Использование редактора запросов

Редактор запросов Google Cloud Monitoring позволяет создавать два типа запросов: **Показатель** и **Целевой уровень обслуживания (SLO)**. Оба типа возвращают данные временных рядов.
### Запросы метрик

{{< Figure src="/static/img/docs/v70/metric-query-builder.png" max-width= "400px" class="docs-image--right" >}}

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

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

1. Выберите параметр **Показатели** в раскрывающемся списке **Тип запроса**.
1. Выберите проект из раскрывающегося списка **Проект**.
1. Выберите службу Google Cloud Platform в раскрывающемся списке **Сервис**.
1. Выберите показатель в раскрывающемся списке **Метрика**.
1. Используйте значки плюс и минус в фильтре и группируйте по разделам, чтобы добавлять/удалять фильтры или группировать по предложениям. Этот шаг является необязательным.

Google Cloud Monitoring поддерживает различные виды показателей, такие как GAUGE, DELTA и CUMULATIVE. Они поддерживают разные варианты агрегации, например редюсеры и выравниватели. Редактор запросов Harvest отображает список доступных методов агрегирования для выбранной метрики и задает редуктор и выравниватель по умолчанию при выборе метрики.

#### Фильтр

Чтобы добавить фильтр, щелкните значок «плюс», выберите поле для фильтрации и введите значение фильтра, например. `имя_экземпляра = графана-1`. Вы можете удалить фильтр, щелкнув имя фильтра и выбрав `--remove filter--`.

##### Простые подстановочные знаки

Когда для оператора установлено значение `=` или `!=`, можно добавить подстановочные знаки в поле значения фильтра. Например, `us-*` захватит все значения, начинающиеся с "us-", а `*central-a` захватит все значения, которые заканчиваются на "central-a". `*-central-*` собирает все значения, содержащие подстроку -central-. Простые подстановочные знаки менее затратны, чем регулярные выражения.

##### Регулярные выражения

Когда оператор установлен на `=~` или `!=~`, можно добавить регулярные выражения в поле значения фильтра. Например, `us-central[1-3]-[af]` будет соответствовать всем значениям, которые начинаются с "us-central", за которыми следует число в диапазоне от 1 до 3, тире и либо "a" или "ф". Начальная и конечная косая черта не нужны при создании регулярных выражений.

#### Агрегация

Поле агрегации позволяет объединять временные ряды на основе общей статистики. Дополнительные сведения об агрегации см. в [вариантах агрегации](https://cloud.google.com/monitoring/charts/metrics-selector#aggregation-options).

Поле «Выравнивание» позволяет выравнивать несколько временных рядов после одной и той же группы по временному интервалу. Дополнительные сведения о выравнивателе см. в [селекторе показателей выравнивания](https://cloud.google.com/monitoring/charts/metrics-selector#alignment).

##### Выравнивание по периоду/группе по времени

«Период согласования» группирует показатели по времени, если выбрано агрегирование. По умолчанию используются группы по умолчанию GCP Google Cloud Monitoring (что позволяет сравнивать графики в Harvest с графиками в пользовательском интерфейсе Google Cloud Monitoring).
Опция называется «автоматический мониторинг облака», и значения по умолчанию:

- 1 м для временных диапазонов < 23 часов
- 5 м для временных диапазонов >= 23 часов и < 6 дней
- 1 час для временных диапазонов >= 6 дней

Другой автоматический вариант — «harvest auto». Это автоматически установит группу по времени в зависимости от выбранного временного диапазона и ширины панели временных рядов. Для получения дополнительной информации о harvest auto обратитесь к [переменной интервала] (http://docs.harvest.org/variables/templates-and-variables/#the-interval-variable).

Также можно выбрать фиксированные временные интервалы для группировки, например, «1 час» или «1 день».

#### Группа по

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

##### Метки метаданных

Ярлыки метаданных ресурса содержат информацию для уникальной идентификации ресурса в Google Cloud. Метки метаданных возвращаются в ответе временного ряда, только если они являются частью сегмента **Group By** в запросе временного ряда. API для получения меток метаданных отсутствует, поэтому невозможно заполнить группу с помощью раскрывающегося списка метками метаданных, доступными для выбранной службы и метрики. Однако в раскрывающемся списке поля **Группировать по** есть предварительно определенный список общих системных меток.

Ярлыки пользователей нельзя задать заранее, но их можно ввести вручную в поле **Группировать по**. Если метка метаданных, метка пользователя или системная метка включена в сегмент **Группировать по**, вы можете создавать фильтры на ее основе и расширять ее значение в поле **Псевдоним**.

#### Шаблоны псевдонимов

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

#### Шаблоны метрических типов

| Шаблон псевдонима       | Описание               | Пример Результат                                  |
| -------------------- | ---------------------------- | ------------------------------------------------- |
| `{{metric.type}}`     возвращает полный тип метрики  | `compute.googleapis.com/instance/cpu/utilization` |
| `{{metric.name}}`    | возвращает часть имени метрики| `instance/cpu/utilization`                        |
| `{{metric.service}}` | возвращает служебную часть    | `compute`                                         |

#### Шаблоны меток

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

| Формат шаблона псевдонима            | Описание                              | шаблона псевдонима Пример            | Пример Результат    |
| -------------------------------- | ---------------------------------------- | --------------------------------- | ---------------- |
| `{{metric.label.xxx}}`           |возвращает значение метки метрики         | `{{metric.label.instance_name}}`  | `harvest-1-prod` |
| `{{resource.label.xxx}}`         | возвращает значение метки ресурса        | `{{resource.label.zone}}`         | `us-east1-b`     |
| `{{metadata.system_labels.xxx}}` | возвращает значение метки системы метаданных| `{{metadata.system_labels.name}}` | `harvest`        |
| `{{metadata.user_labels.xxx}}`   | возвращает значение пользовательской метки метаданных  | `{{metadata.user_labels.tag}}`    | `production`     |

Пример псевдонима при: `{{metric.type}} - {{metric.label.instance_name}}`

Пример Результат  : `compute.googleapis.com/instance/cpu/usage_time - server1-prod`

Также возможно разрешить имя типа контролируемого ресурса.

| Формат шаблона псевдонима     | Описание                                   | Пример Результат  |
| -------------------- | ----------------------------------------------- | -------------- |
| `{{resource.type}}`  | возвращает имя отслеживаемого типа ресурса | `gce_instance` |

Пример псевдонима при: `{{resource.type}} - {{metric.type}}`

Пример Результат: `gce_instance - compute.googleapis.com/instance/cpu/usage_time`

#### Глубокая привязка панелей Harvest к обозревателю показателей в Google Cloud Console

> **Примечание.** Доступно в Harvest v7.1 и более поздних версиях.

{{< Figure src="/static/img/docs/v71/cloudmonitoring_deep_linking.png" max-width="500px" class="docs-image--right" caption="Ссылка на контент Google Cloud Monitoring" >}}

Щелкните временной ряд на панели, чтобы открыть контекстное меню со ссылкой на Просмотр в обозревателе показателей в Google Cloud Console. Щелкнув по этой ссылке, вы откроете Metrics Explorer в Google Cloud Console и запустите там запрос из панели Harvest.
Ссылка сначала направляет пользователя к средству выбора учетной записи Google, а после успешного выбора учетной записи пользователь перенаправляется в обозреватель показателей. Предоставленная ссылка действительна для любой учетной записи, но она отображает запрос только в том случае, если у вашей учетной записи есть доступ к проекту GCP, указанному в запросе.

#### Автоматическое определение единиц измерения

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

### Запросы SLO (целевой уровень обслуживания)

> **Примечание.** Доступно в Harvest v7.0 и более поздних версиях.

{{< Figure src="/static/img/docs/v70/slo-query-builder.png" max-width= "400px" class="docs-image--right" >}}

Построитель запросов SLO в источнике данных Google Cloud Monitoring позволяет отображать данные SLO в формате временных рядов. Чтобы получить представление об основных концепциях мониторинга сервисов, обратитесь к [официальным документам] Google Cloud Monitoring (https://cloud.google.com/monitoring/service-monitoring).
#### Как создать запрос SLO

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

1. Выберите параметр **Цели уровня обслуживания (SLO)** в раскрывающемся списке **Тип запроса**.
1. Выберите проект в раскрывающемся списке **Проект**.
1. Выберите[SLO service](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/services) from the **Service** dropdown.
1. Выберите [SLO](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/services.serviceLevelObjectives) from the **SLO** dropdown.
1. Выберите [time series selector](https://cloud.google.com/monitoring/service-monitoring/timeseries-selectors#ts-selector-list) from the **Selector** dropdown.


Понятные имена для селекторов временных рядов показаны в Harvest. Вот сопоставление понятного имени с именем системы, которое используется в документации по мониторингу служб:
| Выпадающее значение селектора   | Используется соответствующий селектор временных рядов|
| -------------------------- | --------------------------------------- |
| SLI Value                  | select_slo_health                       |
| SLO Compliance             | select_slo_compliance                   |
| SLO Error Budget Remaining | select_slo_budget_fraction              |

#### Шаблоны псевдонимов для запросов SLO

Поле Alias By также позволяет вам управлять форматом ключей легенды для запросов SLO.

| Шаблон псевдонима  | Описание                | Пример Результат      |
| -------------- | ---------------------------- | ------------------- |
| `{{project}}`  | возвращает название проекта GCP | `myProject`         |
| `{{service}}`  | возвращает имя службы     | `myService`         |
| `{{slo}}`      | возвращает SLO              | `latency-slo`       |
| `{{selector}}` | возвращает селектор       | `select_slo_health` |

#### Период выравнивания/Группировка по времени для запросов SLO

Запросы SLO используют ту же [функциональность периода согласования, что и запросы метрик]({{< relref "#metric-queries" >}}).

### Запросы MQL (Monitoring Query Language)

> **Примечание.** Доступно в Harvest v7.4 и более поздних версиях.

Построитель запросов MQL в источнике данных Google Cloud Monitoring позволяет отображать результаты MQL в формате временных рядов. Чтобы получить представление об основных понятиях MQL, обратитесь к [Введение в язык запросов для мониторинга](https://cloud.google.com/monitoring/mql).

#### Создать запрос MQL

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

1. В списке **Тип запроса** выберите **Метрики**.
2. Нажмите **<> Изменить MQL** рядом с полем **Тип запроса**. Это переключит режим построителя метрических запросов, чтобы можно было использовать необработанные запросы MQL.
3. Выберите проект из списка **Проект**.
4. Добавьте запрос [MQL](https://cloud.google.com/monitoring/mql/query-language) по вашему выбору в текстовую область.

#### Шаблоны псевдонимов для запросов MQL

Запросы MQL используют те же шаблоны псевдонимов, что и [метрические запросы]({{< relref "#metric-queries" >}}).

`{{metric.service}}` не поддерживается. `{{metric.type}}` и `{{metric.name}}` показывают ключ временного ряда в ответе.

## Шаблоны

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

Ознакомьтесь с документацией [Templating]({{< relref "../../variables/_index.md" >}}) для ознакомления с функцией шаблонов и различными
Типы переменных шаблона.

### Переменная запроса

Переменная типа _Query_ позволяет запрашивать у Google Cloud Monitoring различные типы данных. Плагин источника данных Google Cloud Monitoring предоставляет следующие «Типы запросов».

| Имя                           | Описание                                                                                                  |
| -------------------------------- | ------------------------------------------------------------------------------------------------------------- |
| `Типы метрик` | Возвращает список имен типов метрик, доступных для указанной службы. |
| `Ярлыки ключей` | Возвращает список ключей для метки метрики и метки ресурса в указанной метрике. |
| `Значения меток` | Возвращает список значений для метки в указанной метрике. |
| `Типы ресурсов` | Возвращает список типов ресурсов для указанной метрики. |
| `Агрегаты` | Возвращает список агрегаций (редуктор кросс-серии) для указанной метрики. |
| `Элайнеры` | Возвращает список выравнивателей (по сериям выравнивателей) для указанной метрики. |
| `Периоды выравнивания` | Возвращает список всех периодов выравнивания, доступных в редакторе запросов Google Cloud Monitoring в Harvest |
| `Селекторы` | Возвращает список селекторов, которые можно использовать в запросах SLO (цели уровня обслуживания) |
| `Услуги СЛО` | Возвращает список сервисов Service Monitoring, которые можно использовать в запросах SLO |
| `Цели уровня обслуживания (SLO)` | Возвращает список SLO для указанной службы SLO |
### Использование переменных в запросах

Есть два синтаксиса:

- `$<имя_переменной>` Пример: `metric.label.$metric_label`
- `[[varname]]` Пример: `metric.label.[[metric_label]]`

Почему два пути? Первый синтаксис легче читать и писать, но он не позволяет вам использовать переменную в середине слова. Когда включены параметры _Multi-value_ или _Include all value_, Harvest преобразует метки из обычного текста в строку, совместимую с регулярными выражениями, что означает, что вы должны использовать `=~` вместо `=`.

## Аннотации

{{< Figure src="/static/img/docs/v71/cloudmonitoring_annotations_query_editor.png" max-width= "400px" class="docs-image--right" >}}

[Аннотации]({{< relref "../../dashboards/annotations.md" >}}) позволяют накладывать расширенную информацию о событиях поверх графиков. Вы добавляете аннотацию
запросы через меню Dashboard / представление Annotations. Рендеринг аннотаций стоит дорого, поэтому важно ограничить количество возвращаемых строк. Пока нет поддержки отображения аннотаций и событий Google Cloud Monitoring, но она хорошо работает с [настраиваемыми показателями](https://cloud.google.com/monitoring/custom-metrics/) в Google Cloud Monitoring.

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

`{{metric.type}} имеет значение: {{metric.value}}`

Пример результата: `monitoring.googleapis.com/uptime_check/http_status имеет это значение: 502`

### Шаблоны для редактора запросов аннотаций

|Формат образца псевдонима     | Описание                    | Пример образца псевдонима            | Пример результат                                   |
| ------------------------ | -------------------------------- | -------------------------------- | ------------------------------------------------- |
| `{{metric.value}}`       | значение метрики/балла        | `{{metric.value}}`               | `555`                                             |
| `{{metric.type}}`        | возвращает полный тип метрики  | `{{metric.type}}`                | `compute.googleapis.com/instance/cpu/utilization` |
| `{{metric.name}}`        | возвращает часть имени метрики  | `{{metric.name}}`                | `instance/cpu/utilization`                        |
| `{{metric.service}}`     | возвращает служебную часть       | `{{metric.service}}`             | `compute`                                         |
| `{{metric.label.xxx}}`   | возвращает значение метки метрики  | `{{metric.label.instance_name}}` | `harvest-1-prod`                                  |
| `{{resource.label.xxx}}` | возвращает значение метки ресурса | `{{resource.label.zone}}`        | `us-east1-b`                                      |

## Настройте источник данных с предоставлением

Вы можете настроить источники данных с помощью конфигурационных файлов в системе обеспечения Harvest. Узнайте больше о том, как это работает, и обо всех настройках, которые вы можете установить для источников данных, на [странице документации по подготовке]({{< relref "../../administration/provisioning/#datasources" >}})

Вот пример подготовки с использованием типа аутентификации JWT (файл ключа учетной записи службы).

``ямл
апиВерсия: 1

источники данных:
  - название: Google Cloud Monitoring
    тип: стекдрайвер
    доступ: прокси
    jsonДанные:
      tokenUri: https://oauth2.googleapis.com/token
      clientEmail: stackdriver@myproject.iam.gserviceaccount.com
      Тип аутентификации: jwt
      defaultProject: имя-моего-проекта
    безопасныйJsonData:
      закрытый ключ: |
        -----НАЧАТЬ ЗАКРЫТЫЙ КЛЮЧ-----
        POSEVQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgeEAAoIBAQCb1u1Srw8ICYHS
        ...
        я+23427282348234=
        -----КОНЕЦ ЗАКРЫТОГО КЛЮЧА-----
```

Вот пример подготовки с использованием проверки подлинности учетной записи службы GCE по умолчанию.
```yaml
аpiВерсия: 1

источники данных:
   - название: Google Cloud Monitoring
     тип: стекдрайвер
     доступ: прокси
     jsonДанные:
       Тип аутентификации: gce
```
