last9/last9-mcp-server
简介
核心亮点
- 将实时日志与指标直接喂给 AI,告别手动复制粘贴
- 打通生产环境与本地 IDE,实现快速精准的 Bug 定位
- 支持链路追踪数据,让 AI 辅助分析复杂系统调用链
- 标准 MCP 协议接入,兼容 Claude 等主流 AI 客户端
完整文档
Last9 MCP Server
你的 AI agent 不知道生产环境中出了什么问题。这个工具可以解决这个问题。
Last9 MCP Server 将 Claude、Cursor、Windsurf 以及任何其他支持 MCP 的 AI 助手直接连接到你的生产环境可观测性数据 —— 包括 logs、metrics、traces、exceptions、database queries、alerts 和 deployments。让 agent 停止猜测,开始读取真实的信号。
---
30 秒快速开始 (托管版)
无需安装二进制文件,无需管理 tokens。只需一个 URL,在浏览器中完成 OAuth 即可。
在你的 Last9 URL 中找到 org slug:app.last9.io/<org_slug>/...
Claude Codebashclaude mcp add --transport http last9 https://app.last9.io/api/v4/organizations/<org_slug>/mcp
输入 /mcp,选择 last9,进行身份验证。就这么简单。
claude mcp add --transport http last9 https://app.last9.io/api/v4/organizations/<org_slug>/mcpCursor
Settings > MCP > Add New MCP Server:
{
"mcpServers": {
"last9": {
"type": "http",
"url": "https://app.last9.io/api/v4/organizations/<org_slug>/mcp"
}
}
}VS Code
需要 v1.99+ 版本。打开 Command Palette $\rightarrow$ MCP: Add Server,粘贴 URL,进行身份验证。
或直接在 settings.json 中配置:
{
"mcp": {
"servers": {
"last9": {
"type": "http",
"url": "https://app.last9.io/api/v4/organizations/<org_slug>/mcp"
}
}
}
}Settings > Cascade > Open MCP Marketplace > 齿轮图标 (mcp_config.json):
{
"mcpServers": {
"last9": {
"serverUrl": "https://app.last9.io/api/v4/organizations/<org_slug>/mcp"
}
}
}Settings > Connectors > Add custom connector. 将其命名为 last9,粘贴 URL,然后进行身份验证。
> 需要具有 Claude 组织的管理员权限。
---
自托管 (STDIO)
当你的 MCP 客户端不支持 HTTP 传输,或需要本地运行服务器时,请使用此方式。
安装
Homebrew:
brew install last9/tap/last9-mcpnpm install -g @last9/mcp-server@latest
or directly:
npx -y @last9/mcp-server@latest从 GitHub Releases 下载:
| 平台 | 压缩包 |
| --------------- | --------------------------------------- |
| Windows (x64) | last9-mcp-server_Windows_x86_64.zip |
| Windows (ARM64) | last9-mcp-server_Windows_arm64.zip |
| Linux (x64) | last9-mcp-server_Linux_x86_64.tar.gz |
| Linux (ARM64) | last9-mcp-server_Linux_arm64.tar.gz |
| macOS (x64) | last9-mcp-server_Darwin_x86_64.tar.gz |
| macOS (ARM64) | last9-mcp-server_Darwin_arm64.tar.gz |
获取 Refresh Token
只有 admins 可以创建 token。
1. 前往 API Access
2. 点击 Generate Token 并选择 Write 权限
3. 复制该 token
客户端配置
Homebrew:
{
"mcpServers": {
"last9": {
"command": "/opt/homebrew/bin/last9-mcp",
"env": {
"LAST9_REFRESH_TOKEN": "<your_refresh_token>"
}
}
}
}{
"mcpServers": {
"last9": {
"command": "npx",
"args": ["-y", "@last9/mcp-server@latest"],
"env": {
"LAST9_REFRESH_TOKEN": "<your_refresh_token>"
}
}
}
}| Client | 位置 |
| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------- |
| Claude Web/Desktop | Settings > Developer > Edit Config (claude_desktop_config.json) |
| Cursor | Settings > Cursor Settings > MCP > Add New Global MCP Server |
| Windsurf | Settings > Cascade > MCP Marketplace > gear icon (mcp_config.json) |
| VS Code | 在 settings.json 中使用 { "mcp": { "servers": { ... } } } 包裹 — 详情 |
<details>
<summary>VS Code STDIO 配置</summary>
{
"mcp": {
"servers": {
"last9": {
"type": "stdio",
"command": "/opt/homebrew/bin/last9-mcp",
"env": {
"LAST9_REFRESH_TOKEN": "<your_refresh_token>"
}
}
}
}
}"command": "npx" 并添加 "args": ["-y", "@last9/mcp-server@latest"]。
</details>
<details>
<summary>Windows</summary>
从 GitHub Releases 下载后,解压并指向完整路径:
{
"mcpServers": {
"last9": {
"command": "C:\\Users\\<user>\\AppData\\Local\\Programs\\last9-mcp-server.exe",
"env": {
"LAST9_REFRESH_TOKEN": "<your_refresh_token>"
}
}
}
}</details>
Environment Variables
| 变量 | 默认值 | 描述 |
| ---------------------------- | -------------------- | ----------- |
| LAST9_REFRESH_TOKEN | *(必填)* | 来自 API Access 的 Refresh token |
| LAST9_DATASOURCE | org default | Datasource/cluster 名称 —— 当您拥有多个 Levitate cluster 时非常有用 |
| LAST9_API_HOST | app.last9.io | 覆盖 API host |
| LAST9_TOOLSETS | all tools | 要公开的工具集,以逗号分隔 (logs, traces, metrics, alerts, dashboards, investigate, all)。别名:LAST9_MCP_TOOLSETS |
| LAST9_MAX_GET_LOGS_ENTRIES | 5000 | 分块 get_logs 请求的最大条目数 |
| LAST9_DEBUG_CHUNKING | false | 设置为 true 以记录 get_logs、get_service_logs、get_traces 的分块规划详情 |
| LAST9_DISABLE_TELEMETRY | true | 设置为 false 以启用内部 OTel tracing |
| OTEL_SDK_DISABLED | — | 标准 OTel 环境变量。覆盖 LAST9_DISABLE_TELEMETRY |
| OTEL_EXPORTER_OTLP_ENDPOINT| — | OTLP collector endpoint(仅在启用 telemetry 时有效) |
| OTEL_EXPORTER_OTLP_HEADERS | — | OTLP 认证 headers(仅在启用 telemetry 时有效) |
---
What It Can Do### Service Health
get_service_summary— 排序后的 fleet(service, env)行:包含 interval request_count, throughput_rpm, HTTP 4xx/5xx 计数以及 gRPC 错误计数
get_service_environments— 服务的可用环境。请先运行此命令 —— 其他 APM 工具需要从中获取env
get_service_performance_details— 详细细分:throughput, error rate, p50/p90/p95/avg/max, apdex, availability
get_service_operations_summary— 按 HTTP endpoints, DB calls, messaging, HTTP clients 分组的操作摘要
get_service_dependency_graph— 依赖关系图,包含上游/下游/基础设施的 throughput, latency 和 error rates
get_apm_service_deviations— 将当前时间窗与等长基准线进行对比:包含 regressions/improvements, Apdex 对账以及最终结果(fleet 或单个 service)
get_exceptions— 带有 service 和 span 过滤条件的服务端 exceptions
Database Observability
四个直接分析数据库性能的工具,源自 OpenTelemetry trace spans。如果你已经在用 OTel,则无需额外配置 instrumentation。- get_databases — 发现整个基础设施中的所有数据库:DB 类型、主机、吞吐量 (queries/min)、p95 延迟、错误率、依赖服务数量
get_database_slow_queries— 实际执行最慢的查询,按持续时间排序,并提供用于深入分析完整追踪的 trace IDs
get_database_queries— 查询模式和聚合数据:查询运行频率、平均/p95 持续时间、错误率
get_database_server_metrics— 来自 DB 主机本身的服务器端指标(CPU、连接数、缓冲命中率 —— 取决于您的 DB 系统)
支持 PostgreSQL, MySQL, MongoDB, Redis, Aerospike,以及任何带有 db_system 属性的 OTel traces。
Prometheus / PromQL
prometheus_range_query— 针对任何指标的 PromQL 范围查询
prometheus_instant_query— 即时查询;可使用avg_over_time、sum_over_time等聚合函数
prometheus_label_values— 给定序列的标签值
prometheus_labels— 序列的所有可用标签
通过设置 LAST9_DATASOURCE 将这些查询指向与默认值不同的数据源/集群。
Logs- get_logs — 全量 JSON pipeline 日志查询(聚合、过滤、字段提取)
get_service_logs— 服务的原始日志行,可按 severity 和 body 内容过滤
get_log_attributes— 指定时间窗口内日志 schema 的全局属性目录
get_log_attributes_for_pipeline— 正在运行的 pipeline 中实际存在的日志字段(范围限定发现),每个字段包含其精确的filter_field
get_drop_rules— 来自 Last9 Control Plane 的日志丢弃规则
add_drop_rule— 创建新的丢弃规则以在源端削减日志量
Traces
get_traces— 用于广泛搜索和聚合的 JSON pipeline trace 查询
get_service_traces— 按精确的 trace ID 或服务名称查询 trace。当你拥有 trace ID 时请使用此项,速度更快
get_trace_attributes— trace schema 的全局属性目录
get_trace_attributes_for_pipeline— 正在运行的 pipeline 中实际存在的属性(范围限定发现),每个属性包含其精确的filter_field
get_trace_attribute_values— trace 属性的唯一值,可选限定至某个 pipeline
get_trace_attribute_deviations— 对两个限定 span 队列(慢 vs 快,错误 vs 非错误,或两个时间窗口)之间存在差异的属性值进行排序。表示相关性而非因果关系
get_trace_waterfall— 将单个精确 trace 以父/子级联瀑布图形式展示,包含区间并集自用时间(self-time)、最慢 span 和图表警告### 变更事件与告警
get_change_events— 部署、配置变更、回滚。将事件与变更内容关联
get_alert_config— 告警规则配置 — 可通过名称、严重程度、类型、标签进行搜索
get_alerts— 指定时间窗内当前正在触发的告警
get_alert_rule_state— 指定时间范围内每条告警规则的历史触发状态 (1/0),按rule_id分组。可根据告警组、规则名称、标签过滤器和状态进行筛选
get_notification_channels— 已配置的通知渠道 (Slack, PagerDuty, email 等)
自定义仪表盘
list_dashboards— 组织内所有自定义仪表盘:ID、名称和元数据
get_dashboard— 通过 ID 获取完整的仪表盘定义,包括面板和查询
create_dashboard— 创建包含面板、查询和元数据的新自定义仪表盘
update_dashboard— 通过 ID 更新现有仪表盘(只读系统仪表盘将返回错误)
delete_dashboard— 通过 ID 删除自定义仪表盘
list_dashboard_snapshots— 仪表盘的冻结时间点快照(仅元数据)
get_dashboard_snapshot— 完整的冻结快照,包括用于 RCA / 共享视图的面板数据
delete_dashboard_snapshot— 通过 ID 删除冻结快照
模糊名称解析- did_you_mean — 当 agent 不确定实体名称时,此接口会从你的目录(服务、环境、主机、数据库、K8s deployment/namespace、job)中返回最接近的匹配项。最多提供 3 个建议及其相似度分数。当名称查询结果为空时,服务器在调用大多数工具前会自动调用此接口。
---
工作原理
每条响应均包含深度链接。 每个工具都会返回一个 deep_link 字段 —— 一个直接指向 Last9 控制面板中对应查询和时间范围的 URL。agent 可以将链接提供给你,点击即可跳转。
工具集 (Toolsets)。 默认情况下,服务器公开所有工具。仅需要进行调查(日志/链路/指标)的自动化主机可以设置 LAST9_TOOLSETS=investigate(或传递 --toolsets=investigate),这样 tools/list 保持精简,无需在客户端进行大规模禁用。命名包包括:logs、traces、metrics、alerts、dashboards、investigate、all。未知名称将快速报错。单独的 metrics 包不包含 list_datasources 或 did_you_mean —— 当你需要这些发现助手时,请使用 investigate(或组合工具集)。工具参考资源。 冗长的 logjson/tracejson/service-logs/metrics 手册被定义为 MCP resources (last9://reference/logjson, last9://reference/tracejson, last9://reference/service_logs, last9://reference/metrics),而非始终开启的工具描述文本。关键的查询规则保留在工具描述中,以便那些从未调用 resources/read 的 agent 仍能获得正确的构建指导。通过 get_log_attributes / get_log_attributes_for_pipeline(以及对应的 trace 方法)来发现组织特定的字段——这些字段不会被注入到描述中。
大结果集分块。 get_logs 和 get_traces 通过分块(chunking)而非截断来处理大型结果集。日志的默认限制为 5000 条;可通过 LAST9_MAX_GET_LOGS_ENTRIES 进行配置。
---
Development
<details>
<summary>HTTP mode, curl testing, building from source</summary>
Run in HTTP Modebashexport LAST9_REFRESH_TOKEN="your_refresh_token"
export LAST9_HTTP=true
export LAST9_PORT=8080
./last9-mcp-server
服务器启动于 http://localhost:8080/mcp。
使用 curl 测试
export LAST9_REFRESH_TOKEN="your_refresh_token"
export LAST9_HTTP=true
export LAST9_PORT=8080
./last9-mcp-serverStreamable HTTP handler 以无状态模式运行,因此每个请求都是独立处理的。initialize 握手和 Mcp-Session-Id 请求头是可选的 —— 发送这些内容的客户端仍可正常工作(该请求头会被接收并忽略),客户端也可以直接调用 tools/list / tools/call。每个 tool 都是一个独立的请求/响应查询;服务器不发送 server→client 通知,因此 GET /mcp (SSE 流) 将返回 405。
# List tools — a session handshake is optional in stateless mode
curl -s -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list", "params": {}}'
Call a tool
curl -s -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "get_service_logs",
"arguments": {
"service_name": "your-service-name",
"lookback_minutes": 30,
"limit": 10
}
}
}'git clone https://github.com/last9/last9-mcp-server.git
cd last9-mcp-server
go build -o last9-mcp-server
LAST9_HTTP=true ./last9-mcp-serverLAST9_HTTP=true 用于本地开发。对于实际使用,hosted HTTP endpoint 更为便捷。
</details>
---
Tool Reference
<details>
<summary>所有参数、时间输入标准及详情</summary>
Time Input
- 绝对时间 (
start_time_iso/end_time_iso或time_iso) 的优先级高于lookback_minutes。
- 相对时间窗口:使用
lookback_minutes。
- 绝对时间窗口:使用 RFC3339/ISO8601 标准 ——
2026-02-09T15:04:05Z。
- 为了兼容性,仅接受旧版的
YYYY-MM-DD HH:MM:SS格式。
get_exceptions
limit(integer, 可选): 最大异常数。默认值:20。
lookback_minutes(integer, 可选): 默认值:60。
start_time_iso/end_time_iso(string, 可选): 绝对时间范围。
service_name(string, 可选): 按服务过滤。
span_name(string, 可选): 按 span 名称过滤。
env(string, 可选): 按环境过滤。
get_service_summary
start_time_iso/end_time_iso(string, 可选)
env(string, 可选): PromQL 正则表达式。默认为.*。精确匹配需要锚点(例如^prod$)。
sort_by(string, 可选):request_count(默认),throughput_rpm,http_4xx_count,http_5xx_count或grpc_error_count。
limit(integer, 可选): 最大排名行数。省略或为 0 则默认为 10;超过 100 的值将截断为 100。
get_service_environments
start_time_iso/end_time_iso(string, 可选)> 所有其他 APM 工具都需要env值。如果返回为空,请使用""。
get_service_performance_details
service_name(string, required)
lookback_minutes(integer, optional): 默认值:60。
start_time_iso/end_time_iso(string, optional)
env(string, optional): 默认值为prod。
get_service_operations_summary
service_name(string, required)
lookback_minutes(integer, optional): 默认值:60。
start_time_iso/end_time_iso(string, optional)
env(string, optional): 默认值为prod。
get_service_dependency_graph
service_name(string, optional)
lookback_minutes(integer, optional): 默认值:60。
start_time_iso/end_time_iso(string, optional)
env(string, optional): 默认值为prod。
get_apm_service_deviations
service_name(string, optional): fleet 范围则省略;针对单个服务及其操作相关性则提供。
lookback_minutes(integer, optional): 当前窗口。默认值:60。
start_time_iso/end_time_iso(string, optional): 明确的当前窗口。
baseline_start_time_iso/baseline_end_time_iso(string, optional): 明确的基准线。默认值为紧接之前的等时长窗口。
datasource(string, optional): 将比较限制在单个 datasource。
env(string, optional): 默认值为prod。
max_services/max_operations(integer, optional): 默认 10,每项最大 10。
get_databases- env (string, optional): 按环境过滤。默认值:all。
lookback_minutes(integer, optional): 默认值:60。
start_time_iso/end_time_iso(string, optional)
get_database_slow_queries
db_system(string, optional): 例如postgresql,mysql,mongodb,redis。
host(string, optional): 数据库主机 (net_peer_name)。
service_name(string, optional): 调用服务名称。
env(string, optional)
min_duration_ms(float, optional): 最小查询耗时(单位:ms)。
lookback_minutes(integer, optional): 默认值:60。
start_time_iso/end_time_iso(string, optional)
limit(integer, optional): 默认值:20。
get_database_queries
db_system(string, optional)
host(string, optional)
service_name(string, optional)
env(string, optional)
lookback_minutes(integer, optional): 默认值:60。
start_time_iso/end_time_iso(string, optional)
limit(integer, optional): 默认值:20。
get_database_server_metrics
db_system(string, required): 例如postgresql,mysql,mongodb,redis,aerospike。
host(string, optional)
lookback_minutes(integer, optional): 默认值:60。
start_time_iso/end_time_iso(string, optional)
prometheus_range_query
query(string, required): PromQL 查询语句。
start_time_iso/end_time_iso(string, optional): 默认为最近 60 分钟。
lookback_minutes(float, optional): 默认值:60。
prometheus_instant_query- query (string, 必填)
time_iso(string, 可选):默认为当前时间。
lookback_minutes(float, 可选)
prometheus_label_values
match_query(string, 可选):PromQL 过滤器。
label(string, 必填):Label 名称。
start_time_iso/end_time_iso(string, 可选)
prometheus_labels
match_query(string, 可选):PromQL 过滤器。
start_time_iso/end_time_iso(string, 可选)
get_logs
logjson_query(array, 必填):JSON pipeline 查询。
lookback_minutes(integer, 可选):默认值:5。
start_time_iso/end_time_iso(string, 可选)
limit(integer, 可选):服务器默认值:5000。
index(string, 可选):physical_index:<name>或rehydration_index:<block_name>。
对于基于日志的服务清单,请先查询 physical_index_service_count:
sum by (name, service_name, env) (physical_index_service_count{destination="logs"})service_name 作为 ServiceName,env 作为环境(如果存在),name 作为物理索引名称。如果 name="default",则省略 index;如果用户选择了非默认的物理索引,则传递 index: "physical_index:<name>"。如果后端拒绝显式的物理索引过滤,请在不带 index 的情况下重试,并报告该后端不支持显式物理索引过滤。
get_service_logs
service_name(string, required)
lookback_minutes(integer, optional): 默认值: 60。
limit(integer, optional): 默认值: 20。
env(string, optional)
severity_filters(array, optional): 例如["error", "warn"]。采用 OR 逻辑。
body_filters(array, optional): 例如["timeout", "failed"]。采用 OR 逻辑。
start_time_iso/end_time_iso(string, optional)
index(string, optional)
多种过滤类型之间采用 AND 组合。每个数组内部采用 OR 逻辑。
请先使用 get_logs 进行广泛的聚合计数;仅在缩小范围至特定 service/env/index 且样本集较小时,才使用 get_service_logs。
get_log_attributes
lookback_minutes(integer, optional): 默认值: 15。
start_time_iso/end_time_iso(string, optional)
region(string, optional)
index(string, optional)
get_log_attributes_for_pipeline- pipeline (array, required): 用于限定发现范围的前置过滤阶段,例如 [{"type":"filter","query":{"$eq":["ServiceName","<service>"]}}]。
lookback_minutes(integer, optional): 默认值:15。
start_time_iso/end_time_iso(string, optional)
region(string, optional)
index(string, optional)
get_drop_rules
无参数。通过 GET /otel_settings/drop?region=... 列出 drop rules。
add_drop_rule
name(string, required)
filters(array, required): 每个 filter 包含:key、value、operator(equals/not_equals)、conjunction(and)。
- Filter keys 必须使用
attributes["key_name"]或resource.attributes["key_name"](Last9 API 要求)。
- 通过
POST /otel_settings/drop?region=...&cluster_id=...创建规则。
get_traces
用于宽泛的搜索和聚合。如需精确查找 trace ID,请使用 get_service_traces。
tracejson_query(array, required)
start_time_iso/end_time_iso(string, optional)
lookback_minutes(integer, optional): 默认值:60。
limit(integer, optional): 默认值:5000。
get_service_traces
trace_id 或 service_name 必须且只能提供其中一个。
trace_id(string, optional): 默认回溯时间:72 小时。
service_name(string, optional): 默认回溯时间:60 分钟。
lookback_minutes(integer, optional)
start_time_iso/end_time_iso(string, optional)
limit(integer, optional): 默认值:10。
env(string, optional)
get_trace_attributes- lookback_minutes (integer, optional): 默认值:15。
start_time_iso/end_time_iso(string, optional)
region(string, optional)
get_trace_attributes_for_pipeline
pipeline(array, required): 用于限定发现范围的前置过滤阶段,例如[{"type":"filter","query":{"$eq":["ServiceName","<service>"]}}]。
lookback_minutes(integer, optional): 默认值:15。
start_time_iso/end_time_iso(string, optional)
region(string, optional)
get_trace_attribute_values
tag_name(string, required): 来自get_trace_attributes的属性名称(例如resource_department或attributes['http.method'])。
pipeline(array, optional): 用于限定值范围的前置过滤阶段;若获取全局值则省略。
region(string, optional)
get_trace_attribute_deviations- comparison_mode (string, 必填): latency、errors 或 time。
service_name(string, 必填)
environment(string, 必填): 准确的deployment.environment值。
operation(string, 可选)
filters(array, 可选): Trace JSON 过滤条件。
candidate_attributes(array, 可选): 最多 8 个;若为有界发现(bounded discovery)则省略。
latency_threshold_ms(number, 可选):latency模式下必填;其他模式下将被拒绝。
start_time_iso/end_time_iso(string, 可选)
lookback_minutes(integer, 可选): 默认值:15。最大值:15。
baseline_start_time_iso/baseline_end_time_iso(string, 可选):time模式下必填;需与目标窗口不重叠且时长相等。
minimum_cohort_size(integer, 可选): 默认值:100。最小值:20。
minimum_value_support(integer, 可选): 默认值:20。最小值:10。
limit(integer, 可选): 默认值:10。最大值:10。
需要启用配套的 backend 能力。
get_trace_waterfall
trace_id(string, 必填)
environment(string, 可选)
start_time_iso/end_time_iso(string, 可选)
lookback_minutes(integer, 可选): 默认值:4320 (72 小时)。
selected_span_id(string, 可选): 仅返回该 span 的 attributes、events 和 links。
max_spans(integer, 可选): 默认值:500。最大值:1000。
返回一个 investigation-evidence/v1 封包;waterfall 位于 data 字段下。
get_change_events- start_time_iso / end_time_iso (string, 可选)
lookback_minutes(integer, 可选): 默认值: 60。
service_name(string, 可选)
env(string, 可选)
event_name(string, 可选): 首次调用时请不传此参数以获取available_event_names。
get_alert_config
search_term(string, 可选): 对名称、组、数据源、标签进行全文搜索。
rule_name(string, 可选)
severity(string, 可选)
rule_type(string, 可选):static或anomaly。
alert_group_name/alert_group_type/data_source_name(string, 可选)
tags(array, 可选): 必须全部匹配(AND 逻辑)。
get_alerts
time_iso(string, 可选): RFC3339 格式的评估时间。
window(integer, 可选): 回溯秒数。默认值: 900。范围: 60–86400。
lookback_minutes(integer, 可选): 范围: 1–1440。
get_alert_rule_state- start_time (integer, required): 时间范围的 Unix epoch 起始时间(包含)。
end_time(integer, required): 时间范围的 Unix epoch 结束时间(包含)。
step(integer, required): 样本之间的分辨率(秒)。样本数量((end_time - start_time) / step + 1)上限为 100。
alert_group_id(string, optional): 按 alert group ID 过滤。
rule_name(string, optional): 对 rule name 的正则过滤。
alert_group_name(string, optional): 对 alert group name 的正则过滤。
label_filters(string, optional): 以逗号分隔的key=value标签过滤器。
state(string, optional): 按 state 过滤(例如firing)。
返回一个 rule_id -> [{timestamp, is_firing}] 的 JSON 映射。如果在上游响应中缺失某个时间戳,则报告为 is_firing=0 —— 这意味着“未观察到处于 firing 状态”,而非确认的正常状态。
get_notification_channels
无参数。返回所有配置的通知渠道(Slack, PagerDuty, email, webhooks 等)。
did_you_mean
query(string, required): 要搜索的名称 —— 支持部分匹配、拼写错误或缩写。
type(string, optional): 限制实体类型:service,environment,host,database,k8s_deployment,k8s_namespace,job。
返回最多 3 个最接近的匹配项及其相似度分数。在实体名称不确定时,请在调用任何工具前先使用此接口。如果之前的调用返回结果为空,请在重试前尝试此接口。
list_dashboards无参数。以 JSON 数组形式返回组织中所有自定义 dashboard 的 id、name 和 metadata。
get_dashboard
id(string, required): Dashboard UUID。
region(string, optional): 用于 panel 查询填充的 region。默认为配置的数据源 region。
create_dashboard
dashboard(object, required): 包含name和panels[]的 dashboard 定义。每个 panel 需要name、version、layout(x,y,w,h)、visualization.type和queries[]。
metadata(object, optional): Dashboard 元数据 ——_category和_type字段(例如{"_category":"custom","_type":"metrics"})。
update_dashboard
id(string, required): 要更新的 Dashboard UUID。
dashboard(object, required): 完整的替换 dashboard 正文(结构与 create 相同)。
metadata(object, optional): 替换的元数据。只读的系统 dashboard 将返回 403 错误。
delete_dashboard
id(string, required): 要删除的 Dashboard UUID。只读的系统 dashboard 无法删除。
list_dashboard_snapshots
dashboard_id(string, required): 要列出快照的 Dashboard UUID。
仅返回元数据 (id, name, expires_at 等)。请使用 get_dashboard_snapshot 获取冻结的 panel 数据。
get_dashboard_snapshot
id(string, required): Snapshot UUID。
返回完整的冻结快照,包括 dashboard_definition、panel_data、time_range 和 variables。
delete_dashboard_snapshot- id (string, required): 要删除的 Snapshot UUID。
</details>
---
Testing
有关集成测试的设置和说明,请参阅 TESTING.md。
---
