我正在将 csv 从一台服务器传递到另一台服务器,并通过使用 记录 jsonPayload 将行数添加到日志中gcloud_logger.log_struct(...
。
我从中创建了基于 Google Cloud Platform 日志的指标,并将 jsonPayload 的所有变量添加为标签,以便在 Grafana 中选择 GCP 源时可以使用它们,请参阅在 GCP 中创建基于日志的指标 (LBM) 所需的 Python Google Cloud Function 日志的 jsonPayload(结构化日志)输出。
在 Grafana 中,我只能在时间序列面板中选择标签。
这会形成一个漂亮的时间序列图。
现在我使用来自云函数的其他日志,上面的菜单有其他值,不需要过滤器。顺便说一句,只有在使用该 LBM 设置运行云函数后,我才能选择用户指标名称和所需的标签 - 之前,您不会找到任何标签,并且它只能显示 LBM 创建之后的日志结果。
我无法仅将最新的日志条目作为一个数字获取。您可以进行筛选和分组,但这些都与随时间变化的数据相关。我怎样才能仅获取我的 rows_count 标签的最后一个日志标签,以便将其显示在一维面板中?
在这种 GCP 日志监控面板示例的“主 git repo”中,所有屏幕截图似乎都只显示时间序列,请参见监控仪表板样本。
来自 repo 的示例:
如果我尝试在以下面板的框中仅获取一个数字:
没有显示任何内容(这意味着在示例中,不会另外出现第四个框),可能是因为其中无法显示时间序列(后来发现,除了该问题之外,图中的时间序列线的值不能只采用您选择的输入值,而是显示来自 Google 的一些流量信息,不仅仅是作为默认值,而很可能是固定值)。我如何获得倒数第二个 rows_count?
一些新闻:
这些 Google Cloud Platform Logs 的时间序列图仅显示 y 轴上标签的给定度量,类似于 GCP 上的流量。我猜这与制作 LBM 时选择“计数器”或“分布”无关。
这个值似乎是固定的,而且所有的单位
似乎只是 GCP 系统的度量(并且改变单位也只是一种命名,我尝试改变 y 轴上显示的度量本身。
看来,y 轴不能只显示标签随时间变化的值!当我在字段中添加一个指标时Alias by
,{{metric.label.rows_count}}
您只会在图例中看到它的值(类似于:rows_count 700
为该单个值使用单独的颜色,但它不会替换 y 轴(这是我的目标)。可能是我无法要求标签值的原因:我想要的值不是以长格式列出的,而是以行格式列出的,并且表格不是根据 LBM 给出的度量进行透视的。
我猜测这个问题与使用 LBM 作为源时的日志的宽格式和固定 y 轴测量有关:您甚至无法在时间序列图中显示这些值,这就是为什么您也无法选择该时间序列的最后一个值:)。
我可以使用查询中的分组将标签放入值中:
“转换”选项卡-->“标签到字段”:
然后我以某种方式将 rows_count 添加为“单位”以将数字放入仪表图的值中,但我忘记了这是如何做到的,而且这也不重要,因为这会导致将不需要的值“1”链接到需要的值,例如“1 740324”。
您可以获取日志的数量,但是,无论您选择什么标签,它都会显示 3,这适用于在新指标出现后完成的 3 次云函数运行:
似乎无法“切换轴”=用标签切换值,尽管有以下功能:
- 字段标签
- 行转字段
- 系列转行
这就是为什么我提出另一个问题来查明是否可以完全改变 y 轴:如何将基于标签的指标和 Google Cloud 时间戳转换为 Grafana 中的时间序列图
在这段长文后重复这个问题:
如何从 Grafana 中的 Google Cloud Platform 的“基于日志的指标”中获取最后一个日志结果的整数标签的值(一!)?倒数第二个如何?
附言:
如果这不可能:这是个笑话吗?您真的不能使用 GCP LBM 将日志的最后一个 csv 的 rows_count 作为值放入 Grafana 面板中吗?我肯定是弄错了,但我没发现错误。
答案1
而不是选择Counter
哪一个
收集与给定过滤器匹配的日志条目数
你需要选择Distribution
哪个
从与给定过滤器匹配的日志条目中收集数字数据:
使用该 LBM,您将获得 LBM 值作为值而不是标签。然后,您将能够在过滤器中选择日期时间键上具有最大值的最新一个,或日期时间键上具有最高 x 的倒数第二个,并将值列作为输出。
我只能在添加正则表达式时才能获取图表中的值,似乎会自动添加单位,这使得数值在没有正则表达式的情况下无法读取。官方 GCP 文档创建分布指标告诉你使用。我猜使用比([0-9.]+)
使用更好。([0-9]+\.[0-9]+)
([0-9.]+)