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

sql_exporter报错:查询结果缺失serviceRequest1等列,请求协助解决

排查sql_exporter配置错误及实现需求的解决方案

错误原因分析

根据错误日志column(s) ["serviceRequest1" "serviceResponseCode1"] missing from query result,核心问题如下:

  1. 列名不匹配:采集器配置的key_labels中指定的serviceRequest1、serviceResponseCode1,在SQL查询返回的结果中不存在——实际查询返回的列是serviceRequest和serviceResponseCode,名称不一致导致无法映射。
  2. 未过滤目标记录:当前SQL查询返回了所有serviceDisplayName = 'UploadDoc'的记录,不符合“仅当HTTP状态码不为200时生成指标”的需求。
  3. Metrics配置逻辑错误:values字段指定了两个列,但gauge类型指标需要单一数值作为值,value_label的设置也不符合指标生成逻辑。

解决方法

1. 修正采集器配置(YYY.collector.yml)

调整配置匹配查询列名,同时加入过滤逻辑,修正指标生成规则:

collector_name: YYY

metrics:
  - metric_name: upload_document_http_status
    type: gauge
    help: 'Upload Document REST API non-200 HTTP status codes'
    key_labels:
      - serviceRequest
      - serviceResponseCode
    values: 
      - serviceResponseCode
    query: |
      SELECT [serviceRequest], [serviceResponseCode]
      FROM [ccc].[bbb].[aaa]
      WHERE [serviceDisplayName] = 'UploadDoc'
        AND [serviceResponseCode] != 200

2. 配置逻辑说明

  • AND [serviceResponseCode] != 200:仅筛选非200状态的记录,避免生成大量无意义的正常状态指标。
  • key_labels使用查询返回的真实列名,彻底解决“列缺失”的错误。
  • values指定serviceResponseCode作为gauge指标的数值,符合Prometheus对指标数值类型的要求。

3. 生效步骤

修改配置后重启sql_exporter服务,重新触发指标采集,即可得到格式类似以下的异常状态指标:

upload_document_http_status{serviceRequest="http://example.org/OTCS/llisapi.dll",serviceResponseCode="500"} 500

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 21:45:08