nav-img
Evolution

Отправка логов в сервис

Примечание

Отправка логов в сервис находится на стадии Preview. Чтобы получить возможность отправлять логи, обратитесь в техническую поддержку.

Перед началом работы

  1. Создайте и настройте лог-группу.

  2. Создайте сервисный аккаунт. В блоке Доступы и роли выберите:

    • проект — «Пользователь сервисов»;

    • сервис — «logaas.writer».

  3. Для сервисного аккаунта создайте API-ключ. В параметрах API-ключа укажите сервис «logging_as_a_service».

    Срок действия API-ключа ограничен. Когда он подойдет к концу, мы отправим вам уведомление. После этого необходимо обновить API-ключ.

Отправка логов через Public API

Для отправки логов через Public API необходимо отправить запрос POST.

Эндпоинт для запросов — https://logging.api.cloud.ru/api/v1/logs.

  1. В заголовке Authorization передайте API-ключ:

    Authorization: Api-Key <user-api-key>

    Где <user-api-key> — API-ключ.

  2. В теле запроса передайте:

{
"logs": [
{
"timestamp": "2025-04-15T10:20:00.908+03:00",
"level": "ERROR",
"project_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx",
"log_group_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx",
"traceId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx",
"serviceName": "user-service",
"instanceId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx",
"labels": {
"className": "usr",
"serviceVersion": "2.1"
},
"message": "user-service error",
"jsonMessage": "{\"userId\":\"12345\",\"action\":\"login\",\"status\":\"failed\",\"error\":{\"code\":\"AUTH_ERR_401\",\"message\":\"Authentication failed: invalid credentials\",\"details\":{\"ip\":\"192.168.1.1\",\"device\":\"mobile\",\"browser\":{\"name\":\"Chrome\",\"version\":\"120.0.0.0\",\"os\":{\"name\":\"Android\",\"version\":\"12.0\"}}}},\"session\":{\"id\":\"a1b2c3d4\",\"startTime\":\"2025-03-07T12:55:22.123+03:00\",\"endTime\":\"2025-03-07T13:00:22.123+03:00\",\"duration\":300},\"metrics\":{\"responseTime\":500,\"cpuUsage\":{\"average\":55.5,\"max\":80.2},\"memoryUsage\":{\"used\":768,\"total\":1024}},\"tags\":[\"authentication\",\"security\",\"error\"],\"environment\":{\"stage\":\"production\",\"region\":\"eu-west-1\",\"cluster\":\"k8s-cluster-1\"},\"user\":{\"id\":\"12345\",\"name\":\"User\",\"email\":\"john.doe@example.com\",\"preferences\":{\"theme\":\"dark\",\"notifications\":{\"email\":true,\"sms\":false}}}}"
}
]
}

Где:

  • timestamp — время создания лога в формате YYYY-MM-DDThh:mm:ss.sss±hh:mm.

  • level — уровень лога, например: TRACE, DEBUG, INFO, NOTICE, WARN, ERROR, CRITICAL, ALERT, EMERGENCY, FATAL.

  • project_id — ID проекта, в который будет добавлен лог.

  • log_group_id — ID лог-группы, в которую будет добавлен лог.

  • traceId — ID трассировки для связывания различных событий или сообщений, относящихся к одному и тому же процессу.

  • serviceName — наименование сервиса-источника логов.

  • instanceId — ID конкретного экземпляра приложения, сервера или процесса, который генерирует лог.

  • labels — набор меток в виде списка. В метки можно записывать любые данные в формате "наименование": "значение" для фильтрации данных и быстрого поиска логов.

  • message — сообщение лога.

  • jsonMessage — структурированные поля лога в формате JSON.

После отправки запроса будет создан лог с переданными данными. Созданные логи можно посмотреть в лог-группах.