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

Elasticsearch轻量监控无法使用params参数的问题求助

问题描述

轻量监控配置(Heartbeat 格式)

heartbeat.monitors:
 - type: http
   name: "XXXXX"
   id: "XXXX"
   enabled: true
   urls: ["${my_url}"]

synthetics.config.ts 配置

export default (env) => {
   const config: SyntheticsConfig = {
     params: {
       my_url: "https://test.com/api/test",
     },
     playwrightOptions: {
       ignoreHTTPSErrors: false,
     },
     
     monitor: {
      schedule: 10,
      locations: [],
      privateLocations: ["dev"],
    },
    project: {
      id: "monitoring",
      url: "https://kibana.net",
      space: "myspace",
    },
  }
  if (env !== "customenv") {      
  }
  return config
}

推送命令

NODE_TLS_REJECT_UNAUTHORIZED=0 NODE_ENV="customenv" SYNTHETICS_API_KEY=ccccc== npx @elastic/synthetics push

错误提示

Error
   > Invalid Heartbeat configuration: monitor(XXXX)
       `http` project monitors must specify a valid URL for field `monitor.urls` in version `8.15.0`. Your monitor definition with ID `XXXX` was not saved.
解决方案

错误核心是监控定义中的 ${my_url} 变量未被正确替换为实际URL,导致Heartbeat识别到无效的URL值,可通过以下方式解决:

方法1:通过环境变量直接传递URL

修改监控配置的变量名为环境变量格式:

heartbeat.monitors:
 - type: http
   name: "XXXXX"
   id: "XXXX"
   enabled: true
   urls: ["${MY_URL}"]

在推送命令中注入该环境变量:

NODE_TLS_REJECT_UNAUTHORIZED=0 NODE_ENV="customenv" MY_URL="https://test.com/api/test" SYNTHETICS_API_KEY=ccccc== npx @elastic/synthetics push

方法2:确保customenv环境下params生效

显式处理customenv环境的参数赋值,避免逻辑歧义:

export default (env) => {
   const config: SyntheticsConfig = {
     params: {},
     playwrightOptions: {
       ignoreHTTPSErrors: false,
     },
     
     monitor: {
      schedule: 10,
      locations: [],
      privateLocations: ["dev"],
    },
    project: {
      id: "monitoring",
      url: "https://kibana.net",
      space: "myspace",
    },
  }
  // 为customenv环境单独设置参数
  if (env === "customenv") {
    config.params.my_url = "https://test.com/api/test";
  }
  return config
}

方法3:直接写入静态URL

若无需动态切换地址,可直接将URL写死在监控配置中:

heartbeat.monitors:
 - type: http
   name: "XXXXX"
   id: "XXXX"
   enabled: true
   urls: ["https://test.com/api/test"]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 13:10:10