tianji/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/monitor/custom-script.md

1.9 KiB
Raw Blame History

sidebar_position _i18n_hash
1 b3805dea583e9b96a5bf32e57ff9c130

自定义脚本

与传统的监控服务相比,天机 支持自定义脚本来支持更多定制化场景。

本质上,你可以将其理解为一个受限的、内存安全的 JavaScript 运行时,它接受一个数字来显示在你的图表上。最常见的场景是访问一个 URL 所需的网络请求时间。当然,它也可以是其他东西,例如你的 OpenAI 余额、你的 GitHub 星标数量,以及所有可以用数字表示的信息。

如果此脚本返回 -1则表示此工作失败并尝试向你发送通知就像正常监控一样。

如果你想查看一个数字变化的趋势,开启趋势模式可以帮助你更好地发现数字的细微变化。

以下是一些示例:

示例

从健康端点获取 Tailchat 可用服务数量

const res = await request({
  url: 'https://<tailchat-server-api>/health'
})

if(!res || !res.data || !res.data.services) {
  return -1
}

return res.data.services.length

获取 GitHub 星标数量

const res = await request({
  url: 'https://api.github.com/repos/msgbyte/tianji'
})

return res.data.stargazers_count ?? -1

msgbyte/tianji 替换为你自己的仓库名称

获取 Docker 拉取数量

const res = await request({
  url: "https://hub.docker.com/v2/repositories/moonrailgun/tianji/"
});

return res.data.pull_count;

moonrailgun/tianji 替换为你自己的镜像名称

匹配文本的示例

const start = Date.now();
const res = await request({
  url: "https://example.com/"
});

const usage = Date.now() - start;

const matched = /maintain/.test(String(res.data));

if(matched) {
  return -1;
}

return usage;

返回 -1 表示某些地方出错了。在这种情况下,表示 HTML 主体中包含 maintain 文本。

或者更多

非常欢迎你在这个页面提交你的脚本。天机是由开源社区驱动的。