Как использовать отчет об ошибках из GCE с Docker и Django?

Я запускаю Django на вычислительном движке с помощью Docker. Я хотел бы знать, как проверить ошибку в отчете об ошибках, когда приложение сталкивается с ошибкой типа Cloud run.

Я изучаю, как настроить отчет об ошибках в Python. https://github.com/googleapis/python-error-reporting/tree/main/samples/snippets/fluent_on_compute

Глядя на этот пример, похоже, что мне нужно поднять исключение и выполнить report (traceback.format_exc ()), чтобы использовать отчет об ошибках.

Код примера

def simulate_error():
    fluent.sender.setup('myapp', host='localhost', port=24224)

    def report(ex):
        data = {}
        data['message'] = '{0}'.format(ex)
        data['serviceContext'] = {'service': 'myapp'}
        # ... add more metadata
        fluent.event.Event('errors', data)

    # report exception data using:
    try:
        # simulate calling a method that's not defined
        raise NameError
    except Exception:
        report(traceback.format_exc())

Когда я запускаю Django, я получаю ошибку, отличную от использования try: execpt.

Как я могу отобразить такие ошибки в отчете об ошибках?

Пожалуйста, дайте мне знать, если есть какой-либо хороший способ. спасибо.

Django предоставляет возможность определить настраиваемый обработчик исключений.
Вы можете определить пользовательский обработчик исключений, как показано ниже,

from google.cloud import error_reporting
from rest_framework.views import exception_handler

# Initialize Error reporting client
client = error_reporting.Client()

def custom_exception_handler(exc, context):
    # Call REST framework's default exception handler first,
    # to get the standard error response.
    response = exception_handler(exc, context)

    # Send error to Error Reporting
    client.report(response)

    return response

В вашем файле настроек добавьте следующую конфигурацию,

REST_FRAMEWORK = {
    'EXCEPTION_HANDLER': 'my_project.my_app.utils.custom_exception_handler'
}

Для установки библиотеки отчетов об ошибках облака google используйте следующую команду

pip install google-cloud-error-reporting

Для получения информации о настройке отчетов об ошибках в python, обратитесь к this

Вернуться на верх