You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于Cloud Run Job的JSON日志指标生成仪表盘曲线图?

解析Cloud Run Job日志中的JSON指标并可视化的方案

方法1:优化基于日志的指标,提取JSON数值

你之前用的基于日志的指标默认是计数器,改成分布类型指标就能提取JSON内的数值:

  • 打开Cloud Logging,创建新的「基于日志的指标」,类型选「分布」
  • 设置日志过滤器,匹配你的Cloud Run Job日志,例如:resource.type="cloud_run_job" jsonPayload.metric_key:*(替换metric_key为你的实际字段名)
  • 在「提取标签」环节,添加数值提取规则:用JSON路径jsonPayload.metric_key作为指标的数值来源
  • 保存后,指标会同步到Cloud Monitoring,直接在仪表盘选择该指标即可生成折线图

方法2:用Cloud Function解析日志并推送自定义指标

无需sidecar,通过轻量函数完成指标提取与推送:

  • 创建Cloud Function,触发源选择「Cloud Logging」,设置过滤器匹配目标日志
  • 编写函数代码(以Python为例):解析日志的JSON payload,提取目标指标值,调用Cloud Monitoring API将数值推送到自定义指标
    from google.cloud import monitoring_v3
    
    def push_metric(event, context):
        log_entry = event['jsonPayload']
        metric_value = log_entry.get('your_metric_field')
        if not metric_value:
            return
    
        client = monitoring_v3.MetricServiceClient()
        project_name = f"projects/{YOUR_PROJECT_ID}"
        series = monitoring_v3.TimeSeries()
        series.metric.type = "custom.googleapis.com/cloud_run_job/your_metric"
        series.resource.type = "cloud_run_job"
        # 添加上下文标签与时间序列数值
        point = series.points.add()
        point.value.double_value = metric_value
        point.interval.end_time.seconds = int(context.timestamp.timestamp())
        client.create_time_series(name=project_name, time_series=[series])
    
  • 给函数配置Logging读取权限和Monitoring写入权限,部署后即可自动将日志中的指标同步到监控系统

方法3:直接在Cloud Monitoring用日志查询生成图表

无需预创建指标,直接通过日志查询生成可视化:

  • 进入Cloud Monitoring仪表盘,新建图表,数据源选择「日志查询」
  • 编写日志查询语句,提取并聚合JSON中的指标值,例如:
    resource.type="cloud_run_job"
    | extract jsonPayload.your_metric_field as metric_val
    | group_by 1m, [avg_val: mean(metric_val)]
    
  • 选择图表类型为折线图,调整时间范围即可生成实时曲线图

内容的提问来源于stack exchange,提问作者Simson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 07:45:00