Стадия жизненного цикла модуля: General Availability
У модуля есть требования для установки
Обзор
Мониторинг сайтов — система blackbox-мониторинга, встроенная в DOP. Позволяет проверять доступность веб-сайтов, TCP-сервисов и DNS-записей из внешних точек наблюдения (зон).
Агент устанавливается на сервер за пределами кластера, получает конфигурацию из DOP, выполняет проверки и отправляет метрики обратно в DOP. Результаты доступны на дашбордах и через систему алертов.
Поддерживаемые типы проверок: HTTP, TCP/TLS, DNS, Ping (ICMP).
Быстрый старт
- Убедитесь, что функция мониторинга сайтов включена (Admin → Settings →
web_monitoring_enabled) - Создайте зону: Admin → Zones → New Zone (укажите имя, например
world) - Создайте агента: Admin → Agents → New Agent (укажите имя и зону)
- Скопируйте токен агента из карточки
- Установите агент на внешний сервер (см. раздел Установка агента)
- Перейдите в проект: Project → Web Monitoring → Add Site
- Укажите домен, выберите зоны, добавьте пробу через preset «HTTPS Check», сохраните
Через 1–2 минуты на дашбордах появятся данные о доступности.
Основные понятия
Зоны
Зона — географическая или сетевая точка наблюдения. Каждый агент принадлежит одной зоне. Сайт можно проверять из нескольких зон одновременно для независимой оценки доступности.
Создание зон: Admin → Zones → New Zone.
Сайты
Сайт — объект мониторинга: доменное имя или IP-адрес. Принадлежит проекту. Каждый сайт содержит одну или несколько проб и общие настройки (период, ping, зоны, лейблы).
Пробы и чеки
Проба — один запрос определённого типа (HTTP, TCP или DNS) к сайту. Каждая проба содержит один или несколько чеков — конкретных условий проверки (например, HTTP status = 200 или время ответа < 5s).
Агент выполняет все чеки при каждом срабатывании пробы и отправляет метрику gogomonia_test (1 = pass, 0 = fail) для каждого чека.
Лейблы
Лейблы — произвольные Prometheus-совместимые key=value пары, добавляемые к метрикам. Используются для группировки, фильтрации и управления алертингом.
Лейблы задаются на трёх уровнях:
- Сайт (
site_labels) — добавляются ко всем метрикам сайта - Сайт (
check_labels) — добавляются ко всем проверкам сайта - Чек (
check_labels) — per-check лейблы, переопределяют site-level
Управление алертингом: лейбл alert=yes (по умолчанию) включает алерты, alert=no — отключает для конкретного чека.
Формат ключей: латинские буквы, цифры, подчёркивания; начинается с буквы или подчёркивания (/^[a-zA-Z_][a-zA-Z0-9_]*$/).
Типы проверок
Каждая проба (HTTP/TCP/DNS) содержит один или несколько чеков. Агент выполняет все чеки при каждом срабатывании пробы и отправляет метрику gogomonia_test (1 = pass, 0 = fail) для каждого чека.
Все pattern-поля (bodyMatch, contentType, answerMatch, location, headers.match, cookies.match) используют формат /regex/ (Go RE2-совместимый). Добавление ! после закрывающего слэша (/pattern/!) инвертирует результат (NOT match).
HTTP-чеки
status — Проверка HTTP status code
Проверяет, что код ответа входит в список допустимых. Используется для контроля корректности ответа сервера.
- Поле: список кодов через запятую
- Формат: целые числа 100–599 или regex в слэшах
- Примеры:
200·200, 301, 302·/2[0-9]{2}/(любой 2xx)
responseTime — Максимальное время ответа
Проверяет, что запрос выполнился быстрее порога. Чек срабатывает в реальном времени: если ответ не пришёл за max, тест помечается как fail ещё до завершения запроса.
- Поле:
max— максимальная длительность - Формат: число + единица:
ms,s,m,h - Примеры:
5s·1500ms·1m
bodyMatch — Regex-проверка тела ответа
Проверяет, что тело HTTP-ответа содержит (или не содержит) указанный паттерн. Полезно для проверки, что страница содержит ожидаемый контент и не показывает ошибку.
- Поле: regex
- Формат:
/regex/или/regex/!(NOT match) - Примеры:
/OK/·/Welcome to/·/error|maintenance/!(не должно содержать)
bodySize — Размер тела ответа
Проверяет, что размер тела ответа не менее указанного порога. Позволяет обнаружить пустые ответы.
- Поле:
min— минимальный размер - Формат: число + единица:
b,Kb,Mb,Gb - Примеры: min
100b· min1Kb· min10Mb
contentType — Проверка Content-Type заголовка
Проверяет, что заголовок Content-Type в ответе соответствует ожидаемому. Используется для контроля, что сервер возвращает правильный тип контента, а не страницу ошибки.
- Поле: regex
- Формат:
/regex/или/regex/! - Примеры:
/text\/html/·/application\/json/·/image\/.*/
location — Проверка заголовка Location (редиректы)
Проверяет, что заголовок Location в ответе (при 3xx редиректах) соответствует паттерну. Полезно для проверки, что редирект ведёт на правильный URL.
- Поле: regex
- Формат:
/regex/или/regex/! - Примеры:
/https:\/\/example\.com\//·/\/login$/
sslBasicConstraintsValid — Проверка TLS-сертификата
Комплексная проверка TLS-сертификата: корректность BasicConstraints (CA-сертификаты должны иметь BasicConstraintsValid=true), срок действия leaf-сертификата (NotBefore / NotAfter), соответствие имени хоста (exact и wildcard *.example.com).
- Поля: нет (включается как boolean)
certValidDays — Срок действия сертификата
Проверяет, что TLS-сертификат не истечёт в ближайшие N дней. Используется для заблаговременного обнаружения истекающих сертификатов.
- Поле:
min— минимум дней до истечения - Формат: положительное целое число
- Примеры:
30(предупредить за 30 дней) ·7·90
sslValidDays — Срок действия сертификата (альтернатива)
Аналогичен certValidDays. Нельзя использовать одновременно с certValidDays.
- Поле:
min— минимум дней до истечения - Формат: положительное целое число
headers — Проверка HTTP-заголовков ответа
Проверяет, что заголовки HTTP-ответа содержат указанные значения. Каждая пара: имя заголовка + regex для значения. Все пары должны совпасть (AND-логика).
- Поля: пары
name/match - name: имя заголовка (case-insensitive), например
Content-Type,X-Request-Id - match: regex
/pattern/или/pattern/! - Примеры: name
X-Request-Idmatch/^[a-f0-9-]+$/· nameCache-Controlmatch/no-cache/!
cookies — Проверка cookies в ответе
Проверяет, что cookies HTTP-ответа содержат указанные значения. Каждая пара: имя cookie + regex для значения. Все пары должны совпасть (AND-логика).
- Поля: пары
name/match - name: имя cookie, например
session_id,csrf_token - match: regex
/pattern/или/pattern/! - Примеры: name
session_idmatch/^[a-f0-9]{32}$/· namelangmatch/^(en|ru)$/
TCP/TLS-чеки
connected — Проверка TCP-соединения
Проверяет, что TCP-соединение (и TLS-хэндшейк, если TLS включён) установлено успешно. Базовый чек доступности TCP-сервиса.
- Поля: нет (включается как boolean)
responseTime — Время установки соединения
Аналогичен HTTP responseTime, но измеряет время установки TCP-соединения (и TLS-хэндшейка при наличии).
- Поле:
max— максимальная длительность - Примеры:
5s·2s
sslBasicConstraintsValid — Проверка TLS-сертификата
Аналогичен HTTP sslBasicConstraintsValid. Проверяет сертификат TCP/TLS соединения.
- Поля: нет (включается как boolean)
certValidDays — Срок действия TLS-сертификата
Аналогичен HTTP certValidDays. Проверяет сертификат TCP/TLS соединения.
- Поле:
min— дней до истечения - Примеры:
30·7
sslValidDays — Срок действия TLS-сертификата (альтернатива)
Аналогичен certValidDays. Нельзя использовать одновременно с certValidDays.
DNS-чеки
gotAnswer — Получен непустой DNS-ответ
Проверяет, что DNS-запрос вернул хотя бы одну запись. Базовый чек — домен резолвится.
- Поля: нет (включается как boolean)
answerMatch — Regex-проверка DNS-ответа
Проверяет, что хотя бы одна запись в DNS-ответе соответствует паттерну. Ответ содержит полную строку записи (например example.com. 300 IN A 1.2.3.4).
- Поле: regex
- Формат:
/regex/или/regex/! - Примеры:
/1\.2\.3\.4/·/IN A/·/IN MX.*mail\./
responseTime — Время DNS-запроса
Аналогичен HTTP responseTime, но измеряет время DNS-запроса.
- Поле:
max— максимальная длительность - Примеры:
2s·500ms
Ping (ICMP)
Ping включается флагом ping: true на уровне сайта. Работает полностью независимо от проб — не требует ни проб, ни чеков. Встроенный тест ping.maxRtt проходит, если RTT < 500ms (порог захардкожен).
Настройка мониторинга
Создание зон
Зона — географическая или сетевая точка наблюдения. Каждый агент принадлежит одной зоне.
Создание: Admin → Zones → New Zone. Укажите имя зоны.
Создание сайтов
Путь: Project → Web Monitoring → Add Site.
Два режима формы
Форма создания/редактирования сайта работает в двух режимах.
Простой режим (по умолчанию для новых сайтов):
- Показаны основные поля: host, period, ping, зоны
- Добавление проб через presets (готовые шаблоны)
- Доступные чеки ограничены (см. таблицу ниже)
- TCP: упрощённый переключатель TLS
Расширенный режим (переключатель «Расширенный режим» внизу формы):
- Все дополнительные поля: hosts, probe_all_resolved_ips, site_labels, check_labels, request_defaults
- Полный набор типов чеков
- Группировка чеков
- Per-probe лейблы и period
- TCP: полная настройка TLS (insecureSkipVerify, serverName)
Переключение из расширенного в простой режим блокируется, если в форме есть данные, доступные только в расширенном режиме. Для существующих сайтов режим выбирается автоматически на основе сохранённых настроек.
Доступные чеки по режимам
| Тип пробы | Простой режим | Только расширенный |
|---|---|---|
| HTTP | status, responseTime, certificate (sslBasicConstraintsValid + certValidDays) | bodyMatch, bodySize, contentType, location, headers, cookies |
| TCP | connected, responseTime, certificate | — |
| DNS | gotAnswer, responseTime | answerMatch |
Группировка чеков
В расширенном режиме доступен переключатель «Группировать условия в проверки».
Без группировки (по умолчанию): каждый чек — отдельная проверка с собственным результатом (pass/fail) и собственным алертом.
С группировкой: несколько условий (status, bodyMatch, responseTime и т.д.) объединяются в одну логическую проверку с общим именем и общим алертом. Группе назначается уровень severity.
Пример: группа «https-health» может включать status=200 + bodyMatch="/OK/" + responseTime max=5s. При нарушении любого условия срабатывает один общий алерт.
Группировка включается автоматически, если сайт уже содержит чеки с несколькими условиями в одном config.
Параметры сайта
| Параметр | Описание | Режим |
|---|---|---|
| name | Отображаемое имя, уникальное в проекте | оба |
| host | Домен или IP для мониторинга | оба |
| period | Интервал проверок. Формат: \d+(s|m), max 60s. Пример: 20s, 1m |
оба |
| ping | Включить ICMP ping (true/false) | оба |
| zones | Из каких зон проверять. Если не указан — проверяется из всех зон | оба |
| hosts | Массив конкретных IP вместо DNS-резолва | расш. |
| probe_all_resolved_ips | Проверять все разрешённые IP, а не только первый | расш. |
| site_labels | Prometheus-лейблы ко всем метрикам сайта | расш. |
| check_labels | Лейблы ко всем проверкам сайта | расш. |
| request_defaults | HTTP defaults: scheme, timeout, headers | расш. |
| probes | Массив проб с чеками | оба |
Presets
Presets — готовые шаблоны проб, доступные при создании сайта. Позволяют добавить типовую конфигурацию одним нажатием.
| Preset | Тип пробы | Создаваемые чеки |
|---|---|---|
| HTTPS Check | HTTP GET (https) | status 200, sslBasicConstraintsValid, certValidDays min=30 |
| TCP/TLS | TCP с TLS | connected, certValidDays min=30 |
| DNS | DNS A-запрос | gotAnswer |
| HTTP Redirect | HTTP GET | status 301/302, location |
Требования к проектам
Для работы мониторинга сайтов у проекта должен быть API-токен с правом «Метрики: запись» (write_metrics). Этот токен создаётся автоматически при создании проекта.
Если токен удалён — в разделе Web Monitoring отображается предупреждение, а агент не получает конфигурацию для этого проекта.
Установка агента
Требования
- Linux (amd64)
- Сетевой доступ до DOP API (
api.<domain>)
Ручная установка
- Создать агента в Admin UI: Admin → Agents → New Agent (указать имя и зону)
- Скопировать токен из карточки агента
- На целевом сервере:
# Скачать бинарь
curl -o /usr/local/bin/gogomonia-agent \
"https://update.<domain>/gogomonia-agent/storage/latest/linux/amd64/gogomonia-agent"
chmod +x /usr/local/bin/gogomonia-agent
# Конфиг
mkdir -p /usr/local/gogomonia-agent/etc
cat > /usr/local/gogomonia-agent/etc/config.yaml <<EOF
dop_api_url: "https://api.<domain>"
EOF
# Токен
echo -n "<TOKEN>" > /usr/local/gogomonia-agent/agent.token
# Запуск
/usr/local/bin/gogomonia-agentКонфигурация агента
Файл config.yaml:
dop_api_url: "https://api.dop.example.com"
proxy:
url: "" # HTTP proxy (опционально)
no_verify_tls: falseПеременные окружения
| Переменная | Описание | По умолчанию |
|---|---|---|
GOGOMONIA_CONFIG_PATH |
Путь к config.yaml | /usr/local/gogomonia-agent/etc/config.yaml |
GOGOMONIA_TOKEN_PATH |
Путь к файлу с токеном | /usr/local/gogomonia-agent/agent.token |
GOGOMONIA_UUID_PATH |
Путь к файлу UUID | /usr/local/gogomonia-agent/agent.uuid |
GOGOMONIA_PUSH_URL |
Override для remote write URL | (из state API) |
Управление конфигурацией из Git
Утилита converter позволяет хранить конфигурацию сайтов в git-репозитории в декларативном YAML-формате с поддержкой Go-шаблонов и синхронизировать её с DOP через API. Это GitOps-подход: validate на merge request, sync на merge в master.
Скачивание
Бинарь: webmon-cli.
curl -o /usr/local/bin/webmon-cli \
"https://update.<domain>/webmon-cli/storage/latest/linux/amd64/webmon-cli"
chmod +x /usr/local/bin/webmon-cliКоманды
Первый аргумент — команда: sync или validate. Параметры задаются только переменными окружения.
sync — синхронизация конфигов в DOP
Создаёт, обновляет и (при DELETE_ORPHANS=true) удаляет сайты в DOP по содержимому YAML-файлов.
export DOP_API_URL="https://api.<domain>/api/v1/observability"
export CONFIGS_DIR=/path/to/configs
export DOP_WEB_MON_TOKEN_MYPROJECT="<API-token>"
webmon-cli syncvalidate — локальная валидация
Проверяет конфиги без применения: формат полей, допустимые ключи, deprecated поля, дупликаты. Загружает список зон из API для проверки.
export DOP_API_URL="https://api.<domain>/api/v1/observability"
export CONFIGS_DIR=/path/to/configs
webmon-cli validateВажно: DOP_API_URL обязателен и для validate (загрузка зон). Токен для validate не требуется.
Глобальные переменные окружения
| Переменная | Описание | По умолчанию |
|---|---|---|
DOP_API_URL |
URL backend API (обязательно, валидный URL) | — |
CONFIGS_DIR |
Путь к дереву конфигов | . |
LOG_LEVEL |
Уровень логов (zap): debug, info, warn, error |
info |
COMMON_TEMPLATES |
Каталоги с общими .tpl-шаблонами, через запятую |
— |
DRY_RUN |
План без применения (true / 1 / yes) |
false |
DELETE_ORPHANS |
Удалять сайты в DOP, отсутствующие в конфигах | false |
SKIP_DUPLICATES |
Пропускать дубликаты вместо ошибки | false |
Маппинг проектов и токены
Для каждого каталога проекта задаются переменные окружения. Суффикс формируется из имени папки: все символы кроме букв и цифр заменяются на _, результат приводится к верхнему регистру.
Примеры: папка myapp → MYAPP, папка my-client → MY_CLIENT.
| Переменная | Описание | Для sync |
|---|---|---|
DOP_WEB_MON_TOKEN_{FOLDER} |
API-токен с правом «Мониторинг сайтов» | обязательно |
DOP_WEB_MON_SPACE_{FOLDER} |
Override имени рабочего пространства | по умолчанию = имя папки |
DOP_WEB_MON_PROJECT_{FOLDER} |
Override имени проекта | по умолчанию = имя папки |
Структура репозитория
{team-repo}/
.helpers/helpers.tpl # общие Go-шаблоны (Sprig)
{project}/conf.yaml # конфигурация сайтов
.gitlab-ci.yml- Проект = любая папка, содержащая
*.yamlфайлы - Шаблоны
.tplзагружаются изCOMMON_TEMPLATESи.helpers/каталогов по пути вверх от папки проекта - Шаблоны используют синтаксис Go
text/templateс библиотекой Sprig - Конфиги рендерятся как шаблоны перед парсингом YAML
Формат conf.yaml
# Лейблы уровня юнита — добавляются ко всем сайтам
siteLabels: # опционально, map[string]string
env: production
checkLabels: # опционально, map[string]string
alert: "yes"
# Значения по умолчанию для всех сайтов
defaults: # опционально
ping: "true" # "true"/"yes" → включить ping
period: "20s" # формат: \d+(s|m), max 60s
request: # defaults для HTTP-запросов
scheme: https # http / https
timeout: 10s # формат: \d+(ms|s|m|h)
headers: # массив {name, value}
- name: User-Agent
value: "monitoring/1.0"
# Список целей мониторинга (обязателен, минимум 1)
targets:
- name: example-main # ОБЯЗАТЕЛЬНО: уникальное имя сайта
host: example.com # ОБЯЗАТЕЛЬНО: домен или IP
hosts: # опционально: фиксированные IP вместо DNS
- 93.184.216.34
probeAllResolvedIPs: "true" # опционально: проверять все IP при DNS resolve
period: 30s # override периода
ping: true # override ping
siteLabels: # merge с unit-level
env: staging
checkLabels: # merge с unit-level
alert: "no"
request: # override request defaults
scheme: https
timeout: 5s
probes: # >= 1 проба, если ping=false
- name: https-main # ОБЯЗАТЕЛЬНО: уникальное, без пробелов/кавычек/скобок/пайпов
period: 30s # опционально: override периода
siteLabels: # опционально: merge с site-level
component: api
checkLabels: # опционально: merge с site-level
alert: "yes"
request: # полная HTTP-конфигурация
scheme: https
path: /healthz
method: GET # GET, POST, PUT, DELETE, HEAD, OPTIONS, PATCH
port: 443 # 1-65535
timeout: 5s # max 300s
headers:
- name: Accept
value: application/json
basicAuth:
username: user
password: pass
data: '{"key":"value"}'
disableHttp2ForHttps: "true"
checks: # ОБЯЗАТЕЛЬНО: >= 1 чек
- name: status-ok # ОБЯЗАТЕЛЬНО: уникальное, без пробелов/кавычек/скобок/пайпов
status: [200, 301]
- name: response-time
responseTime:
max: 5s
- name: body-check
bodyMatch: "/OK/"
- name: size-check
bodySize:
min: 100b
- name: content-type
contentType: "/text\\/html/"
- name: ssl-check
sslBasicConstraintsValid: true
- name: cert-expiry
certValidDays:
min: 30
checkLabels:
alert: "no"Legacy-формат: вместо
targetsможно использоватьsitesс ключамиsite(вместоhost/name) иservers(вместоhosts). Оба формата поддерживаются, ноtargets— рекомендуемый. Совмещениеsite+hostилиservers+hostsв одной записи вызовет ошибку.
TCP-проба (вместо request):
tcp:
port: 443
timeout: 5s
tls:
insecureSkipVerify: false
serverName: example.comDNS-проба (вместо request):
dns:
type: A # A, AAAA, CNAME, MX, NS, TXT, SOA, SRV, PTR, CAA
query: example.com # ОБЯЗАТЕЛЬНО: домен для запроса
timeout: 2sПравила валидации:
nameиhost— обязательные поля каждой цели- Если
ping: falseиprobesпусто — ошибка - Тип пробы определяется наличием ключа:
tcp:→ tcp,dns:→ dns, иначе http - Зоны определяются из
siteLabels.zone; пустые зоны = все зоны certVerify/sslVerify— deprecated, вызывают ошибку- Неизвестные ключи на любом уровне — ошибка
certValidDaysиsslValidDays— нельзя использовать одновременноbodySizeподдерживает толькоmin(неmax)responseTimeподдерживает толькоmax(неmin)
CI/CD интеграция
Converter предназначен для использования в GitLab CI: validate на MR, sync на merge в master.
stages:
- validate
- apply
variables:
DOP_CONVERTER_URL: "https://update.${DOP_BASE_DOMAIN}/webmon-cli/storage/${DOP_CONVERTER_VERSION}/linux/amd64/webmon-cli"
.download_converter: &download_converter
image: alpine:${DOP_WEB_MONITORING_ALPINE_VERSION}
before_script:
- apk add --no-cache curl
- curl -sSL -o webmon-cli "${DOP_CONVERTER_URL}"
- chmod +x webmon-cli
validate:
<<: *download_converter
stage: validate
variables:
DOP_API_URL: "${DOP_API_URL}"
CONFIGS_DIR: "."
script:
- ./webmon-cli validate
apply:
<<: *download_converter
stage: apply
variables:
DOP_API_URL: "${DOP_API_URL}"
CONFIGS_DIR: "."
script:
- ./webmon-cli sync
rules:
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'Переменные CI/CD:
| Переменная | Описание | Где задать |
|---|---|---|
DOP_WEB_MON_TOKEN_{FOLDER} |
API-токен для каталога проекта | Settings → CI/CD → Variables (masked) |
DOP_API_URL |
URL API бэкенда | Settings → CI/CD → Variables |
DOP_BASE_DOMAIN |
Базовый домен для скачивания converter | Group-level Variables |
DOP_CONVERTER_VERSION |
Версия converter (например 0.4.1 или latest) |
Group-level Variables |
DOP_WEB_MONITORING_ALPINE_VERSION |
Версия образа Alpine для CI-джоб | Group-level Variables |
Важно: подставьте {FOLDER} в соответствии с именем каталога проекта после санитизации. Папка myapp → DOP_WEB_MON_TOKEN_MYAPP.
Метрики
Имена метрик используют технический префикс gogomonia_ — это внутреннее имя компонента, сохранённое для обратной совместимости.
Probe-метрики (per-project tenant)
| Метрика | Тип | Описание |
|---|---|---|
gogomonia_test |
gauge | Результат check/test (1=pass, 0=fail) |
gogomonia_probe_request_succeeded |
gauge | Probe request успешен (1/0) |
gogomonia_http_requests_sent |
counter | HTTP запросы отправлены |
gogomonia_http_responses_received |
counter | HTTP ответы получены |
gogomonia_http_response_time_ms_sum |
counter | Сумма HTTP response time (ms) |
gogomonia_http_body_size_bytes |
counter | Сумма размера HTTP тел |
gogomonia_http_requests_in_flight |
gauge | HTTP запросы в процессе |
gogomonia_tcp_requests_sent |
counter | TCP запросы |
gogomonia_tcp_responses_received |
counter | TCP успешные соединения |
gogomonia_tcp_response_time_ms_sum |
counter | TCP response time |
gogomonia_tcp_requests_in_flight |
gauge | TCP в процессе |
gogomonia_dns_requests_sent |
counter | DNS запросы |
gogomonia_dns_responses_received |
counter | DNS ответы |
gogomonia_dns_response_time_ms_sum |
counter | DNS response time |
gogomonia_dns_requests_in_flight |
gauge | DNS в процессе |
gogomonia_ping_rtt_ms |
gauge | Ping RTT (ms) |
gogomonia_ping_requests_sent |
counter | Ping запросы отправлены |
gogomonia_ping_responses_received |
counter | Ping ответы получены |
gogomonia_site_resolved |
gauge | DNS resolve статус сайта (1=ok, 0=fail) |
gogomonia_site_resolve_tries_sum |
counter | Попытки DNS resolve |
gogomonia_site_resolve_success_sum |
counter | Успешные DNS resolve |
gogomonia_server_ips |
gauge | IP-адреса, разрешённые для сайта |
Лейблы: instance, zone, project, site, server, probe, check, test
Agent selfmon-метрики
| Метрика | Тип | Описание |
|---|---|---|
gogomonia_agent_info |
gauge | Информация об агенте (всегда 1) |
gogomonia_agent_up |
gauge | Heartbeat (1 = жив) |
gogomonia_agent_start_time_seconds |
gauge | Unix timestamp старта |
gogomonia_agent_config_version |
gauge | Версия применённого конфига |
gogomonia_agent_config_sites_count |
gauge | Кол-во сайтов в конфиге |
gogomonia_agent_config_probes_count |
gauge | Кол-во проб |
gogomonia_agent_config_checks_count |
gauge | Кол-во чеков |
gogomonia_agent_config_last_fetch_seconds |
gauge | Время последнего получения конфига |
gogomonia_agent_config_fetch_errors_total |
counter | Ошибки получения конфига |
gogomonia_agent_checks_ok |
gauge | Кол-во чеков со статусом OK |
gogomonia_agent_checks_failed |
gauge | Кол-во чеков со статусом FAIL |
gogomonia_agent_checks_no_data |
gauge | Кол-во чеков без данных |
gogomonia_agent_remote_write_errors_total |
counter | Ошибки remote write |
gogomonia_agent_remote_write_samples_total |
counter | Отправлено samples |
gogomonia_agent_remote_write_queue_length |
gauge | Размер буфера remote write |
gogomonia_agent_dns_resolve_errors_total |
counter | Ошибки DNS resolve |
gogomonia_agent_http_request_errors_total |
counter | Ошибки HTTP запросов |
gogomonia_agent_tcp_request_errors_total |
counter | Ошибки TCP запросов |
gogomonia_agent_dns_query_errors_total |
counter | Ошибки DNS запросов |
gogomonia_agent_log_push_queue_length |
gauge | Длина очереди отправки логов |
gogomonia_agent_log_push_errors_total |
counter | Ошибки отправки логов |
Лейблы: instance, zone, uuid, hostname, version
Дашборды
При включении мониторинга сайтов в проекте автоматически появляются дашборды:
- Overall Status — сводная таблица всех сайтов проекта: availability, response times, статус чеков
- Zone Status — детализация по зонам: per-zone метрики, сравнение доступности между зонами
- Site by Instance — drill-down по сайту: per-server/per-instance метрики, scatter-plot времени ответа
Дополнительные системные дашборды (Go Runtime, Logs) доступны для мониторинга здоровья самих агентов.