Инструменты пользователя

Инструменты сайта


start

Это старая версия документа!


Добавление ошибок в проект

Аутентификация к API запросу происходит через токен проекта. Его можно найти в интерфейсе редактирования проекта в поле Токен.

Передаваемые поля

Для отправки ошибки необходимо передать следующие поля в параметре `params` метода `Error.create`:

  • error_type — тип исключения (например, `ValueError`)
  • error_message — текст ошибки
  • timestamp — время возникновения ошибки в формате ISO 8601 (UTC)
  • environment — окружение (например, `production`, `local`)
  • release — версия релиза (например, `v1.2.3`)
  • platform — операционная система (например, `linux`, `windows`)
  • language_version — версия языка (например, `3.12`)
  • user_id — идентификатор пользователя (опционально)
  • user_email — email пользователя (опционально)
  • request_data — данные запроса, если доступны (например, параметры запроса, путь и т.д.)
  • stack_trace — список фреймов трассировки, где каждый элемент содержит:
    • file — путь к файлу
    • line — номер строки
    • function — имя функции
    • code — строка кода
    • index — индекс фрейма в стеке
  • tags — список тегов в формате: `{ «key»: «ключ», «value»: «значение» }`

Пример передачи ошибки

stack = traceback.extract_tb(e.__traceback__)
stack_trace = [
    {
        "file": frame.filename,
        "line": frame.lineno,
        "function": frame.name,
        "code": frame.line,
        "index": i
    } for i, frame in enumerate(stack)
]
 
error_data = {
    "error_type": type(e).__name__,
    "error_message": str(e),
    "timestamp": datetime.utcnow().isoformat(),
    "environment": "local",
    "release": "test-1.0",
    "platform": "linux",
    "language_version": "3.12",
    "user_id": "global-handler",
    "user_email": "handler@example.com",
    "request_data": {},
    "stack_trace": stack_trace,
    "tags": [{"key": "source", "value": "global-handler"}]
}
 
def send_error_to_api(error_data: dict):
    headers = {
        'Content-Type': 'application/json',
        'Authorization': 'Ваш токен проекта'
    }
    payload = {
        "jsonrpc": "2.0",
        "method": "Error.create",
        "params": error_data,
        "id": 1
    }
    response = requests.post(API_URL, json=payload, headers=headers)
    response.raise_for_status()
    return response.json()
start.1748276035.txt.gz · Последнее изменение: admin