Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 28 additions & 8 deletions content/documentation/admin/healthchecks/types.ru.md
Original file line number Diff line number Diff line change
Expand Up @@ -216,7 +216,7 @@ conditions:

## URL

Правило типа **URL** выполняет проверку доступности HTTP/HTTPS-эндпоинта по заданным параметрам. Система формирует HTTP-запрос и сравнивает код ответа с ожидаемым.
Правило типа **URL** выполняет проверку доступности HTTP/HTTPS-эндпоинта: формируется запрос по заданным параметрам, затем результат оценивается по одному или нескольким **условиям** (выражениям Go template). Условия могут проверять код ответа, заголовки, тело ответа и параметры сущности.

Во всех строковых полях используется шаблонизация с применением сущности, например:

Expand All @@ -228,12 +228,32 @@ conditions:

### Параметры конфигурации

| Название | Опциональность | Описание | Примеры |
|--------------------|-----------------|-----------------------------------------------------------|-----------------------|
| URL | **Обязательно** | Полный адрес ресурса, к которому будет выполняться запрос | `https://example.com` |
| Метод | Опционально | HTTP-метод запроса | GET, POST |
| Тело запроса | Опционально | Тело запроса | |
| Ожидаемый статус | **Обязательно** | Код HTTP-статуса, с которым сравнивается полученный ответ | 200, 204. |
| Название | Опциональность | Описание | Примеры |
|-----------------------|-----------------|-----------------------------------------------------------------------------------------------|-----------------------|
| URL | **Обязательно** | Полный адрес ресурса, к которому выполняется запрос | `https://example.com` |
| Метод | Опционально | HTTP-метод запроса | GET, POST |
| Тело запроса | Опционально | Тело запроса в YAML (после шаблонизации сериализуется в JSON) | |
| Условия | Опционально | Одно или несколько выражений Go template для проверки ответа | см. ниже |
| Режим условия | Опционально | При нескольких условиях: **AllOf** (все должны выполниться) или **AnyOf** (достаточно одного) | AllOf, AnyOf |
| Не логировать значение| Опционально | Не сохранять значения, полученные в ответ на запрос | |

Если условия не заданы, используется одно условие по умолчанию: `{{ eq .status.code 200 }}`.

### Данные для условий

В выражениях условий доступны:

- **`.status`** — данные ответа: `.status.code` (код HTTP), `.status.status` (строка статуса), `.status.headers` (заголовки ответа), `.status.contentLength`. Поле **`.status.headers`** — это карта «имя заголовка → массив строк» (все значения заголовка; имена приводятся к нижнему регистру). Примеры: первый элемент заголовка — `{{ index (index .status.headers "content-type") 0 }}`; перебор значений — `{{ range index .status.headers "set-cookie" }}...{{ end }}`.
- **`.response`** — тело ответа, приведённое к типам (если ответ в JSON).
- **`.entity`** — параметры проверяемой сущности.

Примеры условий:

```go
{{ eq .status.code 200 }}
{{ eq (index (index .status.headers "content-type") 0) "application/json" }}
{{ gt .status.contentLength 0 }}
```

### Обработка шаблонов

Expand All @@ -254,7 +274,7 @@ name: "{{ .entity.name }}"

### Проверка результата

Метод сравнивает фактический HTTP-статус ответа с ожидаемым значением. В случае несовпадения возвращается ошибка со значением кода ответа.
Результат проверки считается успешным, если в зависимости от режима условия выполняются все условия (AllOf) или хотя бы одно (AnyOf). Если при вычислении условия возникает ошибка (например, тело ответа не JSON, а в условии используется `.response`), проверка завершается с ошибкой.

Учитывайте, что `URL` также может быть динамическим и шаблонизироваться на основе параметров сущности:

Expand Down
17 changes: 17 additions & 0 deletions content/documentation/release-notes/v1.3.0.ru.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,25 @@ weight: 940
Выпуск релиза планируется 02.03.2026
{{< /alert >}}

## Изменения, влияющие на обратную совместимость

### Проверки статуса: правило типа URL

- **Условия вместо «ожидаемого статуса»:** проверка результата теперь выполняется по одному или нескольким выражениям Go template (условиям). Поле «Ожидаемый статус» в конфигурации правила больше не используется. Если условия не заданы, подставляется одно по умолчанию: `{{ eq .status.code 200 }}`. [Подробнее](../../admin/healthchecks/types/#url).

## Новые возможности

### Проверки статуса

#### Правило типа URL

Обновлена логика настройки и работы правил проверки статуса типа **URL** ([подробнее](../../admin/healthchecks/types/#url)):

- **Условия проверки** — предусмотрена возможность задания одного или нескольких выражений Go template. В выражениях доступны данные ответа (`.status`: код, заголовки, длина содержимого; `.response`: тело ответа) и параметры сущности (`.entity`) для проверки кода ответа, заголовков, тела ответа и свойств сущности.
- **Режим условия** — при наличии нескольких условий задаётся режим **AllOf** (требуется выполнение всех условий) или **AnyOf** (достаточно выполнения одного условия).
- **Опция «Не логировать значение»** — предусмотрена возможность не сохранять значения, полученные в ответ на запрос.
- В условиях обеспечивается доступ ко всем заголовкам ответа, в том числе с несколькими значениями, через `.status.headers`.

### Виджеты

#### Просмотр репозитория
Expand Down
Loading