Python «ведет» к проблеме подключения GCP к StackDriver - PullRequest
0 голосов
/ 05 июля 2019

Я могу напрямую отправлять записи журнала в Stackdriver с помощью google.cloud.logging.Теперь я пытаюсь подключить Python для «ведения журнала» к GCP Stackdriver, чтобы автоматически создавать журналы в Stackdriver всякий раз, когда Python использует «logging».У меня проблема с подключением.

Я получаю этот случай:

Записи временно сохраняются в Stackdriver, и их тоже можно получить, но они исчезаюткак только программа заканчиваетсяКажется, они хранятся в буфере, но не сохраняются в журналах Stackdriver.

часть кода:

    import google.cloud.logging as gcp_logging
    from google.oauth2 import service_account
    cred= service_account.Credentials.from_service_account_file('credential/service/account/json/file')
    client = gcp_logging.Client(project = <project-id>, credentials=cred)

    import logging
    client.setup_logging(log_level=logging.DEBUG)   

    py_logger = get_python_logger()
    print("Making log entry here ...")
    py_logger.debug("log entry by lib 'logging' through Stackdriver in logger module")  

Выполнение кода:
Вывод выполняется в 4 этапа:

  1. он извлек записи журнала из Stackdriver

  2. Я попытался сделать запись журнала в Stackdriver через 'logging' на python *

  3. itснова выбирает записи журнала

  4. фильтрация извлеченных журналов на основе уровня

Я ожидал, что новая запись в журнале Python 'logging' будет извлечена изStackdriver.Но добавляются дополнительные записи о запросах соединения oauth2 и http.Это похоже на проблему с аутентификацией.Я проверил правила брандмауэра в GCP, он разрешает все входящие ips.

$python test.py

    fetching log entries for logname: edudata-log ...  
    [2019-07-04 17:24:43.226848][WARNING] log entry through module edu_logger called in test_edulogger.py
    [2019-07-04 17:25:58.156544][WARNING] log entry through module edu_logger called in test_edulogger.py
    [2019-07-04 17:26:19.780465][WARNING] log entry through module edu_logger called in test_edulogger.py
    [2019-07-04 17:27:24.196522][INFO] log entry through module edu_logger called in test_edulogger.py
    [2019-07-04 17:27:35.216711][INFO] log entry through module edu_logger called in test_edulogger.py
    [2019-07-04 17:27:44.895962][DEBUG] log entry through module edu_logger called in test_edulogger.py
    [2019-07-04 17:27:58.220334][DEBUG] log entry through module edu_logger called in test_edulogger.py
    [2019-07-04 19:13:51.840192][INFO] log entry through module edu_logger called in test_edulogger.py

    Making log entry here ...
    log entry by lib 'logging' through Stackdriver in edulogger module

    fetching log entries for logname: edudata-log ...
    Making request: POST https://oauth2.googleapis.com/token
    Making request: POST https://oauth2.googleapis.com/token
    Starting new HTTPS connection (1): oauth2.googleapis.com:443
    Starting new HTTPS connection (1): oauth2.googleapis.com:443
    https://oauth2.googleapis.com:443 "POST /token HTTP/1.1" 200 None
    https://oauth2.googleapis.com:443 "POST /token HTTP/1.1" 200 None
    Submitted 1 logs
    Submitted 4 logs
    [2019-07-04 17:24:43.226848][WARNING] log entry through module edu_logger called in test_edulogger.py
    [2019-07-04 17:25:58.156544][WARNING] log entry through module edu_logger called in test_edulogger.py
    [2019-07-04 17:26:19.780465][WARNING] log entry through module edu_logger called in test_edulogger.py
    [2019-07-04 17:27:24.196522][INFO] log entry through module edu_logger called in test_edulogger.py
    [2019-07-04 17:27:35.216711][INFO] log entry through module edu_logger called in test_edulogger.py
    [2019-07-04 17:27:44.895962][DEBUG] log entry through module edu_logger called in test_edulogger.py
    [2019-07-04 17:27:58.220334][DEBUG] log entry through module edu_logger called in test_edulogger.py
    [2019-07-04 19:13:51.840192][INFO] log entry through module edu_logger called in test_edulogger.py

    filtering log entries for logname = <logname>, level = DEBUG ...
    Making request: POST https://oauth2.googleapis.com/token   
    Starting new HTTPS connection (1): oauth2.googleapis.com:443
    https://oauth2.googleapis.com:443 "POST /token HTTP/1.1" 200 None
    Submitted 1 logs
    Submitted 1 logs
    [2019-07-04 17:27:44.895962][DEBUG] log entry through module edu_logger called in test_edulogger.py
    [2019-07-04 17:27:58.220334][DEBUG] log entry through module edu_logger called in test_edulogger.py

    Waiting up to 5 seconds.
    Background thread exited gracefully.
    Sent all pending logs.

Дополнительные сведения:
1. Установлен стековый драйвер
2. Я указал здесь учетные данные:
os.environment ["GOOGLE_APPLICATION_CREDENTIALS"] = SERVICE_ACCOUNT_FILE_PATH
3. Я хочу, чтобы выходные данные журнала были сохранены в журнале GCP Stackdriver

...