跳到内容
sigiro
简体中文
Esc
导航打开⌘J预览
本页内容

CLI

sigiro 的每个子命令、参数以及读取的环境变量。sigiro 有七个子命令,每个都输出带缩进的 JSON。

sigiro 有七个子命令。每个子命令在执行成功时都会输出带缩进的 JSON。没有第二种 输出格式,也不做 TTY 检测。

全局标志 --key <TOKEN> 用于设置访问托管端点的 bearer token。它会覆盖 SIGIRO_API_KEY。自托管服务器会忽略该 token。

所有客户端子命令都会访问 SIGIRO_ENDPOINT 指定的服务器,默认值为 http://localhost:9999

serve

启动 OTLP gRPC 服务器、OTLP HTTP 服务器和查询 API。

标志 覆盖 默认值
--data-dir <PATH> SIGIRO_DATA_DIR ~/.local/share/sigiro
--http-port <PORT> SIGIRO_HTTP_PORT 9999
--otlp-http-port <PORT> SIGIRO_OTLP_HTTP_PORT 4318
--otlp-grpc-port <PORT> SIGIRO_GRPC_PORT 4317

首次启动时会将查询扩展下载到数据目录中。该下载耗时 30–90 秒,并会阻塞启动过程。

diagnose

sigiro diagnose <SERVICE> 针对一个服务返回一个诊断块。

标志 类型 默认值
--from <EPOCH_SECONDS> 整数 当前时间之前 15 分钟
--to <EPOCH_SECONDS> 整数 当前时间

--from--to 的单位是 Unix 纪元。对应的 HTTP 字段名为 from_tsto_ts,它们的单位是 Unix 纪元微秒。这两个 HTTP 字段都是可选的。如果两者都 省略,服务器会读取最近 15 分钟的数据,与 CLI 使用的时间窗口一致。

该命令输出 JSON。若要缩小输出范围,可通过管道传给 jq。CLI 自身不做任何过滤, 因此 CLI 和 API 返回的是同一份文档。

anomalies

sigiro anomalies 列出检测到的状态突变(regime shift),按突变幅度从大到小排列, 每一行都带有跨信号的 incident_id

标志 类型 默认值
--service <NAME> 字符串 所有服务
--from <EPOCH_SECONDS> 整数 无下界
--to <EPOCH_SECONDS> 整数 无上界

这些行来自 sigiro_anomalies 表,由一个定时任务写入。请求时不会进行任何计算。

query

sigiro query "<SQL>" 是一个联邦协调器,而不是本地客户端。它会解析一个或多个 边缘节点,向每个边缘节点下推一个局部查询,并把这些局部结果合并成一个答案。

标志 类型 默认值
<SQL> 字符串
--sql-file <PATH> 路径,或用 - 表示标准输入
--edge <NAME=HOST:PORT> 可重复
--full-scan 标志 关闭

边缘节点的解析顺序如下。SIGIRO_EDGES(以逗号分隔的 name=host:port)和 --edge 会被逐字采用,其中任意一个都会跳过自动发现。两者都未设置时,sigiro 会运行 tailscale status --json,并取用所有带 tag:sigiro-edge 标签的对端节点。如果解析 到的边缘节点为零,该命令会直接失败,而不是在没有任何目标的情况下执行。

因此 sigiro query 不能用于普通的本地服务器。边缘节点必须以 SIGIRO_QUERY_SURFACE=quack 提供数据,并且你必须用 --edge 指定它,或者在 tailnet 上找到它。若要针对单个本地服务器执行 SQL,请改为把 SQL POST 到 /v1/query

--full-scan 允许执行在 timestamp 上没有 WHERE 约束的查询。默认情况下 sigiro 会拒绝这类查询。

status

sigiro status 读取服务器的 /health 端点并输出健康状况块。/health 不需要 key。

fetch-extensions

sigiro fetch-extensions 在首次执行 sigiro serve 之前把查询扩展下载到数据 目录中。安装 sigiro 之后运行一次,或在部署到没有出站网络访问权限的主机之前 运行。

healthcheck

sigiro healthcheck 探测本地 /health 端点,只有在服务器就绪时才以 0 退出。 这就是容器的 HEALTHCHECK,因为 distroless 镜像既没有 shell 也没有 curl

这个页面有帮助吗?