Job Scheduler API
Job
Job представляет список активных действий, которые работают с результатами поиска. Поиск осуществляется по расписанию, указанном при создании задачи. API позволяет получать информацию о задачах, добавлять, обновлять и удалять их.
Структура Job
Название | Синтаксис | Описание |
---|---|---|
name | <string> | Название задачи. |
title | <string> | Заголовок задачи. |
description | <string> | Описание задачи. |
throttle | <object> | Подавление задачи (Подробнее Throttle). |
actions | <array> | Список активных действий. Каждое активное действие представляет собой object (Подробнее Actions API). |
global_params | <object> | Глобальные параметры задачи в формате ключ - значение . |
search | <object> | Параметры поиска, который осуществляется при выполнении задачи (Подробнее Search). |
run_with_roles | <array> | Список ролей, которые могут выполнять задачу. |
schedule | <object> | Расписание выполнении задачи (Подробнее Schedule). |
enabled | <bool> | Состояние задачи (включена , выключена ). |
lock_duration_seconds | <int> | Интервал времени от выполняемого запроса до выполнения следующего. |
jitter | <float> | Случайное смещение времени. |
_permission | <object> | Права доступ а задачи. |
Throttle
Название | Синтаксис | Описание |
---|---|---|
time | <string> | Время подавления. |
fields | <array> | Список полей, по которым осуществляется подавление. В списке хранится названия полей в формате string . |
Подавление
Подавление - отбрасывает аналогичные результаты поиска по полям для подавления за выбранный промежуток времени.
Schedule
Название | Синтаксис | Описание |
---|---|---|
cron | <object> | Задача расписания через Cron. |
interval | <object> | Задача расписания через интервальные значения. |
предупреждение
Cron и Interval взаимоисключающие, то есть есть поле cron, то поле interval должно отсутствовать.
Cron
Название | Синтаксис | Описание |
---|---|---|
expression | <string> | Cron-выражение. |
timezone | <string> | Часовой пояс. |
Interval
Название | Синтаксис | Описание |
---|---|---|
start_time | <string> | Время, с которого начинается отсчет интервалов. |
period | <int> | Длина интервала. |
unit | <string> | Единица измерения. Например, MINUTES , HOURS , DAYS и т.д. |
Search
Название | Синтаксис | Описание |
---|---|---|
query | <string> | Запрос. |
timefield | <string> | Имя поля в котором хранится временная метка |
earliest | <string> | Начальная временная метка поиска. |
latest | <string> | Конечная временная метка поиска. |
CRUD для Job
Получение списка всех задач
GET _core/job_scheduler/jobs/
Получение задачи по ID
GET _core/job_scheduler/jobs/{job_id}
Добавление новой задачи
POST _core/job_scheduler/job/
{
"title": "Тестирование Email c smtpConnection",
"description": "test description",
"throttle": {
"time": "5m",
"fields": []
},
"actions": [
{
"script": {
"context": "/app/opensearch/utils/python/bin/python3 /app/opensearch/utils/scripts/file_write_script.py",
"is_once": false,
"local_params": {}
}
}
],
"global_params": {
"key": "value"
},
"search": {
"sme": {
"query": "source internal_audit-* qsize=5;",
"time_field": "@timestamp",
"earliest": "now-24h",
"latest": "now"
}
},
"run_with_roles": [],
"name": "Testirovanie_Email_c_smtpConnection",
"schedule": {
"cron": {
"expression": "* * * * *",
"timezone": "Europe/Moscow"
}
},
"enabled": false,
"lock_duration_seconds": 30,
"_permissions": {
"owner": "admin",
"read": {
"roles": [],
"users": []
},
"write": {
"roles": [],
"users": []
}
}
}
Обновление задачи
PUT _core/job_scheduler/job/{job_id}
{
"title": "Тестирование Email c smtpConnection",
"throttle": {
"time": "5m",
"fields": []
},
"actions": [
{
"script": {
"context": "/app/opensearch/utils/python/bin/python3 /app/opensearch/utils/scripts/file_write_script.py",
"is_once": false,
"local_params": {}
}
}
],
"global_params": {},
"search": {
"sme": {
"query": "source internal_audit-* qsize=5;",
"time_field": "@timestamp",
"earliest": "now-24h",
"latest": "now"
}
},
"run_with_roles": [],
"name": "Testirovanie_Email_c_smtpConnection",
"schedule": {
"cron": {
"expression": "* * * * *",
"timezone": "Europe/Moscow"
}
},
"enabled": false,
"lock_duration_seconds": 30,
"_permissions": {
"owner": "admin",
"read": {
"roles": [],
"users": []
},
"write": {
"roles": [],
"users": []
}
}
}
Удаление задачи
DELETE _core/job_scheduler/jobs/{job_id}