newrelic/synthetics-node-api-runtimesynthetics-node-api-runtime 是一个预配置的Node.js运行时环境,专为合成监控(Synthetic Monitoring)API脚本设计。该镜像封装了稳定的Node.js环境及合成监控所需的核心依赖,旨在简化API监控任务的部署流程,使用户无需手动配置Node.js环境和依赖,即可快速部署并执行API性能、可用性监控脚本。
axios、node-fetch等HTTP客户端,moment时间处理库),无需额外安装。通过docker run命令快速启动监控容器,挂载自定义脚本目录并配置环境变量:
bashdocker run -d \ --name synthetics-api-monitor \ -v /path/to/your/scripts:/app/scripts \ # 挂载本地脚本目录到容器内 -e API_SCRIPT="monitor.js" \ # 指定要执行的监控脚本文件名(位于/app/scripts下) -e MONITOR_INTERVAL=60 \ # 监控间隔(秒,默认60) -e LOG_LEVEL="info" \ # 日志级别(默认info,可选debug/warn/error) synthetics-node-api-runtime
创建docker-compose.yml文件,定义服务配置:
yamlversion: '3.8' services: api-monitor: image: synthetics-node-api-runtime container_name: api-monitor volumes: - ./scripts:/app/scripts # 本地脚本目录(存放monitor.js等文件) environment: - API_SCRIPT: "payment-api-monitor.js" # 自定义监控脚本 - MONITOR_INTERVAL: 30 # 每30秒执行一次 - TIMEOUT: 5000 # API请求超时时间(毫秒,默认5000) - TARGET_API_URL: "[***]" # 目标API端点(可在脚本中读取) restart: always # 容器异常退出后自动重启
启动服务:
bashdocker-compose up -d
| 环境变量名 | 描述 | 默认值 | 可选值 |
|---|---|---|---|
API_SCRIPT | 要执行的监控脚本文件名 | index.js | 自定义脚本名(需位于/scripts目录) |
MONITOR_INTERVAL | 监控执行间隔(秒) | 60 | 正整数(如30、120) |
LOG_LEVEL | 日志输出级别 | info | debug/info/warn/error |
TIMEOUT | API请求超时时间(毫秒) | 5000 | 正整数(如3000、***) |
NODE_ENV | 运行环境 | production | development/production |
挂载的脚本需遵循以下规范,以确保容器正常执行:
脚本需导出一个默认异步函数,接收环境变量配置作为参数:
javascript// /path/to/your/scripts/monitor.js 示例 module.exports = async (config) => { const { TARGET_API_URL, TIMEOUT } = config; // 从环境变量获取配置 const startTime = Date.now(); try { const response = await fetch(TARGET_API_URL, { timeout: TIMEOUT }); const responseTime = Date.now() - startTime; // 输出结构化日志(容器会自动收集) console.log(JSON.stringify({ timestamp: new Date().toISOString(), url: TARGET_API_URL, status: response.status, responseTime: `${responseTime}ms`, status: "success" })); } catch (error) { console.log(JSON.stringify({ timestamp: new Date().toISOString(), url: TARGET_API_URL, error: error.message, status: "failed" })); } };
脚本需放置在挂载目录(如./scripts)中,容器启动时通过API_SCRIPT环境变量指定文件名。
容器日志默认输出至标准输出(stdout),可通过docker logs命令查看:
bashdocker logs -f api-monitor # 实时查看日志(-f 跟随输出)
若需持久化日志,可配置日志驱动(如json-file、journald)或集成ELK、Promtail等日志收集工具。


manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务