【问题标题】:Google Cloud Logging setting the current resource dynamically in VMGoogle Cloud Logging 在 VM 中动态设置当前资源
【发布时间】:2021-07-09 08:21:23
【问题描述】:

想知道是否有人知道我的问题的解决方案。在 GCP 上的 VM 中运行以下代码时,日志似乎转到 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"
)

当我查看 Logging UI 并使用 resource.type="GLOBAL" 时,{"foo": "bar"} 日志显示为 jsonPayload。我希望它位于 VM 资源类型下。 image for reference

我尝试了不同的日志记录方法,log_struct 对我来说是最可行的。

有没有办法动态获取资源并且仍然可以使用log_struct 方法?

【问题讨论】:

    标签: python logging google-cloud-platform google-cloud-logging


    【解决方案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"},
    }
    

    其他类型是内置的,您不能使用它们。但是,您可以根据需要自定义 LogName 并对其进行过滤,而不是资源类型。

    【讨论】:

      猜你喜欢
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-15
      • 2023-03-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多