3

我正在输出以下日志语句:

[p~my-proect-name/dev.12345].<stdout>: 08:09:28.870 [RequestE671C95C] INFO  - Finished processing 27653 rows

我想要一个折线图,显示 Stackdriver 中每天处理的总行数。

我尝试在 GCP 界面中创建用户定义的指标,如下所示:

在此处输入图像描述

但这是我在 Stackdriver 中看到的:

在此处输入图像描述

如您所见,Stackdriver 没有绘制标签的实际(已处理的行数),而是绘制了标签出现的次数(即日志语句的数量)。

是否可以在 Stackdriver 中实现这一点?

4

1 回答 1

2

您需要将值捕获为基于分发日志的指标,而不是将值捕获为用户定义的标签。您可以在https://cloud.google.com/logging/docs/logs-based-metrics/distribution-metrics中了解有关分布指标的更多信息。

从日志中捕获的值的统计信息被记录为分布。您可以聚合 1 天内的分布值来计算值的总和。今天的图表不直接支持这一点,但您可以使用 ListTimeSeries API 来获取您想要的值。例如,查询看起来像:

export ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
curl -H "Authorization: Bearer ${ACCESS_TOKEN}" 'https://monitoring.googleapis.com/v3/projects/[PROJECT_ID]/timeSeries?aggregation.alignmentPeriod=86400s&aggregation.crossSeriesReducer=REDUCE_SUM&aggregation.perSeriesAligner=ALIGN_SUM&filter=metric.type="logging.googleapis.com/user/ropo-metrics"&interval.endTime=2018-01-22T00:00:00Z'

您还可以使用https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list中的 Google API Explorer 尝试 API

在结果响应中,您将看到每天的单个分布值,并且平均值 * 计数是当天的总和值。

目前无法在 Stackdriver 图表中进行这些高级查询操作,但很快就会支持这样的功能(免责声明:我是一名在 Stackdriver 工作的工程师)。

于 2018-01-22T06:53:32.707 回答