我可以在GCP监控中通过作业id跟踪内存问题吗



我有一个调度程序,它在需要处理作业时调用GCP函数。我将作业id传递给Google函数,并希望能够跟踪哪些函数(通过作业id(使用了最多的内存、执行次数等。

例如,当内存超过限制时,我希望能够判断是哪个作业调用了超出限制的函数。

谷歌云监控中的自定义指标可能做到这一点吗?

我遵循这个例子,但我不确定要为注释的值填写什么:

async function writeTimeSeriesData() {
const projectId = "YOUR_PROJECT_ID";
const dataPoint = {
interval: {
endTime: {
seconds: Date.now() / 1000
}
},
value: {
doubleValue: 123.45 // I think this should be the job_id
}
};
const timeSeriesData = {
metric: {
type: "custom.googleapis.com/stores/daily_sales", // I'm not sure what to use here, maybe "custom.googleapis.com/jobs/id"
labels: {
store_id: "Pittsburgh" // I could maybe add the job name here?
}
},
resource: {
type: "global",
labels: {
project_id: projectId
}
},
points: [dataPoint]
};
const request = {
name: client.projectPath(projectId),
timeSeries: [timeSeriesData]
};
// Writes time series data
const result = await client.createTimeSeries(request);
console.log("Done writing time series data.", result);
}

更新

以下是我试图解决的同一问题的另一个解释(也许这个版本更清楚(:(

我正在使用谷歌云监控,并希望添加一个自定义指标来帮助解决这个问题。我有成千上万的";作业";,每个作业将调用相同的GC函数,但具有特定的用户参数。有时作业出现错误,或者内存超出了我的预期。在这种情况下,我希望能够识别哪些参数被传递给GC函数,这样我就可以重新运行作业并调试问题。

不确定是否在云功能端进行设置,但下面是使用云监控度量资源管理器检查作业ID和内存的步骤。

作业ID

  1. 转到监控
  2. Mertric资源管理器
  3. 论资源&度量选择Cloud Scheduler作业>基于日志的度量>日志字节
  4. 应用
  5. 查看数据分组依据>作业ID

内存

  1. ID
  2. 转到监控
  3. Mertric资源管理器
  4. 论资源&度量选择云函数>功能>内存使用情况
  5. 应用

云监控只会帮助您查看度量、事件和元数据。您也可以尝试使用云记录来根据您的指标向您发出警报。

在以下文档中找到,这些文档可能有助于您进行日志记录。您可以将此报告错误添加到您的云函数中,以在云日志中列出它。

查看日志

  1. 转到日志记录
  2. 日志资源管理器
  3. 查询
  4. 资源(云计划程序作业/云功能(>位置>作业ID>应用
  5. 创建警报

可能有助于您进行云日志记录的其他文档
基于日志的度量概述
云功能错误报告

我强烈建议使用云监控度量资源管理器和MQL来跟踪监控数据。

https://cloud.google.com/monitoring/mql/query-editor?hl=en

您可能会在此列表中找到您想要的指标,或者准备您的自定义指标。job_id应该是一个度量字段(维度(。如果是这样,您可以编写这样的MQL查询:

fetch resource_of_your_metric 
# `gce_instance` for example
| metric your_metric 
# `compute.googleapis.com/guest/memory/bytes_used` for example
| group_by [metric.job_id], .sum
| filter val() > some_limit

最新更新