如何访问 Google Cloud Functions 执行指标?
How can I access Google Cloud Function execution metrics?
我想以编程方式获取与 Google 云函数执行相关的指标(例如调用、延迟等)。有没有一种(最好是简单的)方法来实现这一点(例如通过 API)?
Cloudfunctions 正在使用 Stackdriver 来捕获和显示这些指标。 (我假设您正在寻找显示在控制台中每个函数上的相同指标。)StackDriver 有一个 API 和客户端库,您可以在其中提取指标。有关更多信息,请访问 https://cloud.google.com/monitoring/docs/reference/libraries#client-libraries-install-nodejs。
这是一个将这些内容拉入 node.js
的小例子
const util = require("util");
// Imports the Google Cloud client library
const monitoring = require("@google-cloud/monitoring");
// Your Google Cloud Platform project ID
const projectId = "<YOUR PROJECT ID>";
// Creates a client
const client = new monitoring.MetricServiceClient({
keyFilename: "<YOUR CREDENTIALS>"
});
// list of metrics also avaliable at https://cloud.google.com/monitoring/api/metrics_gcp#gcp-cloudfunctions
// list all metrics avaliable
client
.listMetricDescriptors({
// name: `projects/${projectId}/monitoredResourceDescriptors/cloud_function`,
name: `projects/${projectId}`,
filter: 'metric.type = starts_with("cloudfunctions.googleapis.com")'
})
.then(results => {
console.log(results);
})
.catch(err => {
console.error("ERROR:", err);
});
const currentTime = new Date();
endTime = currentTime.toISOString();
startTime = new Date(currentTime - 1 * 60 * 60 * 1000).toISOString();
interval = {
startTime: {
// Limit results to the last 20 minutes
seconds: Date.now() / 1000 - 60 * 60
},
endTime: {
seconds: Date.now() / 1000
}
};
// get the executions accross time
client
.listTimeSeries({
name: `projects/${projectId}`,
filter:
'metric.type = "cloudfunctions.googleapis.com/function/execution_count" AND resource.label.function_name = "<YOUR FUNCTION NAME>"',
view: "FULL",
interval
})
.then(results => {
// console.log(results);
console.log(util.inspect(results, { showHidden: true, depth: 5 }));
})
.catch(err => {
console.error("ERROR:", err);
});
我想以编程方式获取与 Google 云函数执行相关的指标(例如调用、延迟等)。有没有一种(最好是简单的)方法来实现这一点(例如通过 API)?
Cloudfunctions 正在使用 Stackdriver 来捕获和显示这些指标。 (我假设您正在寻找显示在控制台中每个函数上的相同指标。)StackDriver 有一个 API 和客户端库,您可以在其中提取指标。有关更多信息,请访问 https://cloud.google.com/monitoring/docs/reference/libraries#client-libraries-install-nodejs。
这是一个将这些内容拉入 node.js
的小例子const util = require("util");
// Imports the Google Cloud client library
const monitoring = require("@google-cloud/monitoring");
// Your Google Cloud Platform project ID
const projectId = "<YOUR PROJECT ID>";
// Creates a client
const client = new monitoring.MetricServiceClient({
keyFilename: "<YOUR CREDENTIALS>"
});
// list of metrics also avaliable at https://cloud.google.com/monitoring/api/metrics_gcp#gcp-cloudfunctions
// list all metrics avaliable
client
.listMetricDescriptors({
// name: `projects/${projectId}/monitoredResourceDescriptors/cloud_function`,
name: `projects/${projectId}`,
filter: 'metric.type = starts_with("cloudfunctions.googleapis.com")'
})
.then(results => {
console.log(results);
})
.catch(err => {
console.error("ERROR:", err);
});
const currentTime = new Date();
endTime = currentTime.toISOString();
startTime = new Date(currentTime - 1 * 60 * 60 * 1000).toISOString();
interval = {
startTime: {
// Limit results to the last 20 minutes
seconds: Date.now() / 1000 - 60 * 60
},
endTime: {
seconds: Date.now() / 1000
}
};
// get the executions accross time
client
.listTimeSeries({
name: `projects/${projectId}`,
filter:
'metric.type = "cloudfunctions.googleapis.com/function/execution_count" AND resource.label.function_name = "<YOUR FUNCTION NAME>"',
view: "FULL",
interval
})
.then(results => {
// console.log(results);
console.log(util.inspect(results, { showHidden: true, depth: 5 }));
})
.catch(err => {
console.error("ERROR:", err);
});