标签: stackdriver

Google Cloud Stackdriver Monitor计算引擎磁盘使用率

自最近以来,我已经启动了Google计算引擎实例并开始运行。

我已经探索了Google Cloud Stackdriver来监视CPU使用率等。

我已将Stackdriver代理安装到Compute Engine实例之一上进行测试。我探索了在仪表板上创建新图表的方法,并尝试了各种指标。

但是我找不到任何可以显示实例磁盘使用情况的指标。

是的,有Stackdriver Agent支持的插件列表,用于抽取自定义指标,但我找不到任何用于衡量实例磁盘使用情况的特定指标。

请给我一个指针。

谢谢

cloud google-compute-engine stackdriver gcp

6
推荐指数
1
解决办法
3826
查看次数

如何使用StackDriver API的v2查询BigQuery用法?

我准备用这些Stackdriver API金跟踪BigQuery的使用情况和存在设置此功能的一个很好的教程在这里.但是,此处的查询使用API 的弃用v1,并且可用文档仍然适用于v1.

在BigQuery控制台中,v2仅提供以下字段:

logName
timestamp
severity
insertId
resource
resource.type
resource.labels
resource.labels.project_id
httpRequest
httpRequest.requestMethod
httpRequest.requestUrl
httpRequest.requestSize
httpRequest.status
httpRequest.responseSize
httpRequest.userAgent
httpRequest.remoteIp
httpRequest.serverIp
httpRequest.referer
httpRequest.cacheHit
httpRequest.cacheValidatedWithOriginServer
httpRequest.latency
httpRequest.cacheLookup
httpRequest.cacheFillBytes
operation
operation.id
operation.producer
operation.first
operation.last
protopayload_google_cloud_audit_auditlog
protopayload_google_cloud_audit_auditlog.serviceName
protopayload_google_cloud_audit_auditlog.methodName
protopayload_google_cloud_audit_auditlog.resourceName
protopayload_google_cloud_audit_auditlog.numResponseItems
protopayload_google_cloud_audit_auditlog.status
protopayload_google_cloud_audit_auditlog.status.code
protopayload_google_cloud_audit_auditlog.status.message
trace
sourceLocation  
sourceLocation.file 
sourceLocation.line 
sourceLocation.function
Run Code Online (Sandbox Code Playgroud)

现在没有totalBilledBytes字段,在示例v1查询中用于计算使用情况.如何使用API​​的v2查询使用成本?

google-bigquery google-cloud-platform stackdriver

6
推荐指数
1
解决办法
477
查看次数

具有uwsgi的容器中的Google StackDrive日志级别始终处于错误级别

我正在通过Kuberenetes部署Google Cloud上的容器,这些是django项目和uwsgi来运行它们.

我正在使用stackdrive日志工具来查看日志记录,问题是所有条目都被视为严重性,ERROR即使它们不是错误.似乎uwsgi写入的日志stderr或类似的东西.

在图片中你可以看到django使用了INFOlevel,但是这是ERROR通过stackdrive 接收的.

在此输入图像描述

这就是我设置uwsgi的方式.

[uwsgi] master = true socket = :3031 chdir = . wsgi-file = docker.wsgi processes = 4 threads = 2 socket-timeout = 90 harakiri = 90 http = :8000 env = prometheus_multiproc_dir=multi enable-threads = yes lazy-apps = yes pidfile=/tmp/project-master.pid

python django uwsgi google-cloud-platform stackdriver

6
推荐指数
1
解决办法
646
查看次数

如何在 Stackdriver Alerting 中自定义整个电子邮件通知?

目前,创建警报策略时在文档字段中指定的消息显示在 Stackdriver 警报电子邮件的文档字段中。我想用我的自定义内容覆盖整个电子邮件正文。如何使用自定义消息覆盖 Stackdriver Alert 电子邮件的消息正文?有没有其他解决方法可以做到这一点?

google-cloud-platform stackdriver google-cloud-monitoring

6
推荐指数
1
解决办法
1442
查看次数

如何在请求日志中嵌套应用程序日志,并使用操作ID标记它?

当我使用Google App Engine时,我可以:

  • (A)嵌套应用程序日志(例如下面的信息日志)
  • (B)在顶部"折叠"行中查看请求日志的摘要
  • (C)获取具有操作ID的标签,我可以单击该标签以轻松过滤日志流

最佳gae日志示例

是否可以通过Stackdriver Logging API完成相同的事情?

我知道我可以通过这些说明达到(A).

我可以通过以下两种方式达到(B):

但是,如果我选择(i),则不再出现operation-id标签(C),如果我执行后者,则(A)app log嵌套停止工作.

google-app-engine google-cloud-logging stackdriver google-cloud-stackdriver

6
推荐指数
0
解决办法
171
查看次数

使用 Python 查询 GCP Stackdriver 日志

我正在使用 Python3 查询 Stackdriver 以获取 GCP 日志。不幸的是,具有重要数据的日志条目以“NoneType”而不是“dict”或“str”的形式返回给我。结果“entry.payload”是“None”类型,“entry.payload_pb”有我想要的数据,但是是乱码。

有没有办法让 Stackdriver 以干净的格式返回这些数据,或者有没有办法解析它?如果没有,有没有办法查询比我正在做的更好的数据并产生干净的数据?

我的代码看起来像这样:

#!/usr/bin/python3

from google.cloud.logging import Client, ASCENDING, DESCENDING
from google.oauth2.service_account import Credentials

projectName = 'my_project'
myFilter = 'logName="projects/' + projectName + '/logs/compute.googleapis.com%2Factivity_log"'

client = Client(project = projectName)
entries = client.list_entries(order_by=DESCENDING, page_size = 500, filter_ = myFilter)
for entry in entries:
    if isinstance(entry.payload, dict):
        print(entry.payload)
    if isinstance(entry.payload, str):
        print(entry.payload)
    if isinstance(entry.payload, None):
        print(entry.payload_pb)
Run Code Online (Sandbox Code Playgroud)

“entry.payload_pb”数据总是这样开头:

type_url: "type.googleapis.com/google.cloud.audit.AuditLog"
 value: "\032;\n9gcp-user@my-project.iam.gserviceaccount.com"I\n\r129.105.16.28\0228
Run Code Online (Sandbox Code Playgroud)

google-bigquery google-cloud-logging stackdriver google-cloud-python google-cloud-stackdriver

6
推荐指数
1
解决办法
2023
查看次数

Stackdriver Log Agent - 与用于 Docker 的 Google Cloud Logging 驱动程序无关的日志级别

TL,博士;在使用Google Cloud Logging 驱动程序的 Docker 容器中使用CloudLoggingHandler 进行 Stackdriver日志记录 API 调用时,将忽略日志级别。

细节; 从 Google Compute Engine 上运行的 Docker 容器获取日志的推荐方法是使用Stackdriver Logging Agent

最佳做法是在所有 VM 实例上运行 Stackdriver Logging 代理。该代理可在 Linux 和 Windows 下运行。要安装 Stackdriver Logging 代理,请参阅安装日志代理。

以下步骤已成功完成:

  • 确保 Compute Engine 默认服务帐号具有EditorLogs Writer角色。
  • 确保 VM 实例具有 Stackdriver Logging API(完整)的 Cloud API 访问范围
  • 安装启动Stackdriver Logging Agent。

然后我从 Google 的Cloud Platform Python docs复制了示例CloudLoggingHandler 示例

import logging
import google.cloud.logging …
Run Code Online (Sandbox Code Playgroud)

docker google-cloud-platform stackdriver google-cloud-stackdriver

6
推荐指数
1
解决办法
1143
查看次数

GAE node.js console.error()未记录为错误日志级别

  • 谷歌应用引擎标准
  • 运行时:nodejs10

由于它看起来很简单,因此我不确定如何将其弄乱。根据App Engine标准文档

console.error('message');
Run Code Online (Sandbox Code Playgroud)

在Stackdriver Logs Viewer中应具有ERROR日志级别。但是,我看到日志级别设置为“任何日志级别”。似乎正确的是,从中stderr可以看到它正在登录logName

logName:  "projects/my-project-name/logs/stderr"  
Run Code Online (Sandbox Code Playgroud)

报价:

要从Node.js应用发出日志项,可以使用 console.log()console.error()函数,它们具有以下日志级别:

  • 发出的项目console.log()具有INFO日志级别。
  • 发出的项目console.error()具有错误日志级别。
  • 内部系统消息具有DEBUG日志级别。

我本来是试图winston与Stackdriver一起使用(使用@ google-cloud / logging-winston)来获取更详细的日志记录级别的,但是现在我什至无法使用basic 和将其记录为INFOERRORconsole.log()console.error()

希望我不必为了使用简单便写疯狂的定制运输console.error()

javascript logging google-app-engine node.js stackdriver

6
推荐指数
1
解决办法
291
查看次数

gcp 监控“任何时间序列违规”与“所有时间序列违规”

在此输入图像描述

“任何时间序列违规”和“所有时间序列违规”这两个选项有什么区别?我可以想象前者会做什么,但我不知道后者会做什么。

所有时间系列?它的射程有多长?为什么它有一个for选项?

monitoring google-cloud-platform stackdriver google-cloud-monitoring

6
推荐指数
1
解决办法
2395
查看次数

在 Terraform 中创建 google_logging_project_sink 不会将事件推送到 Pub/Sub

我想创建一个日志接收器来侦听 Stack Driver 中的特定消息并将事件推送到 Cloud Pub/Sub,这将触发 Cloud Function。

这是我的 Terraform 模板的一部分。

resource "google_pubsub_topic" "dataflow_events" {
  name = join("-", concat(["dataflow-events", var.environment, terraform.workspace]))
}

resource "google_logging_project_sink" "dataflow_job_completion_sink" {
  name = join("-", concat(["dataflow-job-completion-sink", var.environment, terraform.workspace]))
  destination = "pubsub.googleapis.com/projects/${var.project}/topics/${google_pubsub_topic.dataflow_events.name}"
  filter = "resource.type=dataflow_step AND textPayload=\"Worker pool stopped.\""
}
Run Code Online (Sandbox Code Playgroud)

地形版本 = 0.13.3

这将在没有任何错误的情况下部署。但是,不会将任何事件推送到 Pub/Sub 主题。

但是,当我手动(从 Cloud Web 控制台)创建接收器时,它会将消息推送到(相同的)Pub/Sub 主题。

这是两个接收器的两个屏幕截图。

在此处输入图片说明 在此处输入图片说明

注意:更改它们两个上的unique_writer_identity参数(truefalse)不会改变其行为。我们在创建手动接收器时使用unique_writer_identityas true,这就是它具有全局服务帐户的原因。但是true在 Terraform 中将此设置为不会将消息推送到 Pub/Sub。

非常感谢您的专业知识。

logging google-cloud-platform google-cloud-pubsub terraform stackdriver

6
推荐指数
1
解决办法
487
查看次数