Ведение журнала Google Cloud динамическая настройка текущего ресурса в виртуальной машине

# #python #logging #google-cloud-platform #google-cloud-logging

Вопрос:

интересно, знает ли кто-нибудь решение моей проблемы. При выполнении следующего кода в виртуальной машине на GCP журнал, похоже, переходит к Global типу ресурса.

 from google.cloud import logging as cloudlogging

CLOUD_LOGGER_NAME = "nicee_test_logger"

log_client = cloudlogging.Client()
log_client.get_default_handler()
log_client.setup_logging()
cloud_logger = log_client.logger(CLOUD_LOGGER_NAME)

cloud_logger.log_struct(
  {
    "method": "<module>",
    "message": "This is message overwrite",
    "amount_failed": 10,
    "errors": [
      "a",
      "b",
      "c"
    ],
    "amount_transfered": 10
  }, severity="INFO"
)
 

Когда я смотрю в пользовательский интерфейс ведения журнала и использую resource.type="GLOBAL" {"foo": "bar"} журнал, он отображается как jsonPayload . Я хочу, чтобы это было под VM типом ресурса. изображение для справки

Я пробовал разные методы ведения журнала, и log_struct для меня это наиболее приемлемый.

Есть ли способ получить ресурс динамически и при этом иметь возможность использовать этот log_struct метод?

Ответ №1:

Я покопался в библиотеке Go и нашел только 4 возможных типа, разрешенных при использовании библиотеки:

 var resourceInfo = map[string]struct{ rtype, label string }{
    "organizations":   {"organization", "organization_id"},
    "folders":         {"folder", "folder_id"},
    "projects":        {"project", "project_id"},
    "billingAccounts": {"billing_account", "account_id"},
}
 

Другие типы встроены, и вы не можете их использовать. Однако вы можете настроить свой логин, если хотите, и отфильтровать его вместо типа ресурса.