Last9
官方无缝地将实时生产环境上下文——日志、指标和追踪——引入本地环境,从而更快地自动修复代码。
你可以用 Last9 MCP 做什么?
让您的助手使用来自 Last9 的实时日志、追踪和指标来调查生产事故。
- 评估服务健康状态 — 使用
get_service_summary查看整个服务群的请求数、吞吐量以及 4xx/5xx 错误。 - 查找慢数据库查询 — 使用
get_database_slow_queries获取实际最慢的执行记录及对应的追踪 ID,以便深入分析。 - 拉取服务日志 — 使用
get_service_logs按严重级别和正文内容筛选获取原始日志行。 - 追踪单个请求 — 使用
get_trace_waterfall查看特定追踪 ID 的父/子瀑布视图。 - 检查告警状态 — 使用
get_alert_rule_state查看每个告警规则在指定时间范围内的触发历史。 - 管理仪表盘 — 使用
create_dashboard通过面板和查询构建自定义仪表盘。
文档
Last9 MCP Server

你的 AI 代理不知道生产环境中出了什么问题。这个能解决这个问题。
Last9 MCP 服务器 将 Claude、Cursor、Windsurf 以及任何其他支持 MCP 的 AI 助手直接连接到你的生产可观测性数据——日志、指标、链路、异常、数据库查询、告警和部署。代理不再猜测,而是开始读取实际信号。
30 秒快速开始(托管版)
无需安装二进制文件。无需管理令牌。一个 URL,浏览器中完成 OAuth,搞定。
在你的 Last9 URL 中找到你的组织 slug:app.last9.io/<org_slug>/...
Claude Code
claude mcp add --transport http last9 https://app.last9.io/api/v4/organizations/<org_slug>/mcp
输入 /mcp,选择 last9,完成身份验证。就是这样。
Cursor
设置 > MCP > 添加新 MCP 服务器:
{
"mcpServers": {
"last9": {
"type": "http",
"url": "https://app.last9.io/api/v4/organizations/<org_slug>/mcp"
}
}
}
点击 连接,完成 OAuth。
VS Code
需要 v1.99 或更高版本。打开命令面板 → MCP: 添加服务器,粘贴 URL,完成身份验证。
或者在 settings.json 中直接操作:
{
"mcp": {
"servers": {
"last9": {
"type": "http",
"url": "https://app.last9.io/api/v4/organizations/<org_slug>/mcp"
}
}
}
}
Windsurf
设置 > Cascade > 打开 MCP 市场 > 齿轮图标(mcp_config.json):
{
"mcpServers": {
"last9": {
"serverUrl": "https://app.last9.io/api/v4/organizations/<org_slug>/mcp"
}
}
}
Claude Web/桌面版
设置 > 连接器 > 添加自定义连接器。 将其命名为 last9,粘贴 URL,完成身份验证。
需要你的 Claude 组织的管理员权限。
自托管(STDIO)
当你的 MCP 客户端不支持 HTTP 传输时,或者你需要在本地运行服务器时,使用此方式。
安装
Homebrew:
brew install last9/tap/last9-mcp
NPM:
npm install -g @last9/mcp-server@latest
# or directly:
npx -y @last9/mcp-server@latest
二进制发行版(Windows / 手动):
从 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 |
获取刷新令牌
只有管理员才能创建令牌。
- 前往 API 访问
- 点击 生成令牌,并选择“写入”权限
- 复制它
客户端配置
Homebrew:
{
"mcpServers": {
"last9": {
"command": "/opt/homebrew/bin/last9-mcp",
"env": {
"LAST9_REFRESH_TOKEN": "<your_refresh_token>"
}
}
}
}
NPM:
{
"mcpServers": {
"last9": {
"command": "npx",
"args": ["-y", "@last9/mcp-server@latest"],
"env": {
"LAST9_REFRESH_TOKEN": "<your_refresh_token>"
}
}
}
}
粘贴位置:
| 客户端 | 位置 |
|---|---|
| Claude Web/桌面版 | 设置 > 开发者 > 编辑配置(claude_desktop_config.json) |
| Cursor | 设置 > Cursor 设置 > MCP > 添加新的全局 MCP 服务器 |
| Windsurf | 设置 > Cascade > MCP 市场 > 齿轮图标(mcp_config.json) |
| VS Code | 在 settings.json 中使用 { "mcp": { "servers": { ... } } } 包裹 — 详情 |
VS Code STDIO 配置
{
"mcp": {
"servers": {
"last9": {
"type": "stdio",
"command": "/opt/homebrew/bin/last9-mcp",
"env": {
"LAST9_REFRESH_TOKEN": "<your_refresh_token>"
}
}
}
}
}
对于 NPM:使用 "command": "npx" 并添加 "args": ["-y", "@last9/mcp-server@latest"]。
Windows
从 GitHub Releases 下载后,解压并指向完整路径:
{
"mcpServers": {
"last9": {
"command": "C:\\Users\\<user>\\AppData\\Local\\Programs\\last9-mcp-server.exe",
"env": {
"LAST9_REFRESH_TOKEN": "<your_refresh_token>"
}
}
}
}
在 Windows 上,NPM 方式更简单——无需管理路径。
环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
LAST9_REFRESH_TOKEN | (必填) | 来自 API 访问 的刷新令牌 |
LAST9_DATASOURCE | org 默认值 | 数据源/集群名称——当你拥有多个 Levitate 集群时很有用 |
LAST9_API_HOST | app.last9.io | 覆盖 API 主机 |
LAST9_TOOLSETS | 所有工具 | 用逗号分隔的工具集以暴露(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 追踪 |
OTEL_SDK_DISABLED | — | 标准 OTel 环境变量。覆盖 LAST9_DISABLE_TELEMETRY |
OTEL_EXPORTER_OTLP_ENDPOINT | — | OTLP 收集器端点(仅当启用遥测时) |
OTEL_EXPORTER_OTLP_HEADERS | — | OTLP 认证头(仅当启用遥测时) |
它能做什么
服务健康
get_service_summary— 按排名排列的舰队(service, env)行:间隔请求数、吞吐量(每分钟请求数)、HTTP 4xx/5xx 计数和 gRPC 错误计数get_service_environments— 你的服务可用的环境。先运行这个——其他 APM 工具需要从这里获取envget_service_performance_details— 完整细分:吞吐量、错误率、p50/p90/p95/平均值/最大值、apdex、可用性get_service_operations_summary— 按 HTTP 端点、数据库调用、消息传递、HTTP 客户端分组的操作get_service_dependency_graph— 依赖关系图,包含上游/下游/基础设施的吞吐量、延迟和错误率get_apm_service_deviations— 将当前窗口与等时长基线进行比较:回归/改进、apdex 对账,以及终端结果(舰队或单个服务)get_exceptions— 服务端异常,支持服务和跨度过滤
数据库可观测性
四个直接针对数据库性能的工具,来源于 OpenTelemetry 追踪跨度。如果你已经在使用 OTel,则无需额外插桩。
get_databases— 发现整个基础设施中的所有数据库:数据库类型、主机、吞吐量(每分钟查询数)、p95 延迟、错误率、依赖服务数量get_database_slow_queries— 实际最慢的查询执行,按持续时间排序,带有用于深入完整追踪的追踪 IDget_database_queries— 查询模式和聚合:查询运行频率、平均/p95 持续时间、错误率get_database_server_metrics— 来自数据库主机本身的服务端指标(CPU、连接数、缓冲区命中率——取决于你的数据库系统)
支持 PostgreSQL、MySQL、MongoDB、Redis、Aerospike,以及任何带有 db_system 属性的 OTel 追踪。
Prometheus / PromQL
prometheus_range_query— 对任意指标执行 PromQL 范围查询prometheus_instant_query— 即时查询;使用诸如avg_over_time、sum_over_time的聚合函数prometheus_label_values— 给定序列的标签值prometheus_labels— 序列可用的所有标签
通过设置 LAST9_DATASOURCE 将这些指向不同于默认值的数据源/集群。
日志
get_logs— 完整的 JSON 管道日志查询(聚合、过滤、字段提取)get_service_logs— 服务的原始日志行,可按严重级别和正文内容过滤get_log_attributes— 时间窗口内日志架构中属性的全局目录get_log_attributes_for_pipeline— 进行中管道实际存在的日志字段(范围发现),每个字段都有其精确的filter_fieldget_drop_rules— 来自 Last9 控制平面 的日志丢弃规则add_drop_rule— 创建新的丢弃规则,从源头削减日志量
追踪
get_traces— 用于广泛搜索和聚合的 JSON 管道追踪查询get_service_traces— 通过精确的追踪 ID 或服务名称进行追踪。当你拥有追踪 ID 时使用此方法——它更快get_trace_attributes— 追踪架构中属性的全局目录get_trace_attributes_for_pipeline— 进行中管道实际存在的属性(范围发现),每个属性都有其精确的filter_fieldget_trace_attribute_values— 追踪属性的不同值,可选地限定在管道范围内get_trace_attribute_deviations— 在两个有界跨度队列之间对不同的属性值进行排名(慢与快、错误与非错误,或两个时间窗口)。关联,而非因果get_trace_waterfall— 一条精确的追踪,以父/子瀑布形式显示,包含区间联合自身时间、最慢跨度以及图警告
变更事件与告警
get_change_events— 部署、配置更改、回滚。将事件与变更相关联get_alert_config— 告警规则配置——可按名称、严重级别、类型、标签搜索get_alerts— 时间窗口内当前正在触发的告警get_alert_rule_state— 每个告警规则在时间范围内的历史触发状态(1/0),按rule_id分组。可按告警组、规则名称、标签过滤器和状态过滤。get_notification_channels— 已配置的通知渠道(Slack、PagerDuty、电子邮件等)
自定义仪表板
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— 当代理不确定实体名称时,此工具返回你目录中最接近的匹配(服务、环境、主机、数据库、K8s 部署/命名空间、作业)。最多 3 个建议,带有相似度分数。当名称查找返回空结果时,服务器会在大多数工具之前自动调用此功能。
工作原理
每个响应上都有深度链接。 每个工具都返回一个 deep_link 字段——指向 Last9 仪表板的直接 URL,针对该精确查询和时间范围。代理可以将链接交给你;你点击它;你就到了那里。
工具集。 默认情况下,服务器暴露所有工具。只需要调查(日志/追踪/指标)的自动化主机可以设置 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 资源(last9://reference/logjson、last9://reference/tracejson、last9://reference/service_logs、last9://reference/metrics),而不是常驻工具描述文本。关键的查询规则保留在工具描述中,这样从不调用 resources/read 的代理仍然能获得正确的构建指导。使用 get_log_attributes / get_log_attributes_for_pipeline(以及相应的追踪等价物)发现组织特定字段——它们不会被注入到描述中。
分块的大结果集。 get_logs 和 get_traces 通过分块而不是截断来处理大型结果集。默认限制为日志的 5000 条;可通过 LAST9_MAX_GET_LOGS_ENTRIES 配置。
开发
HTTP 模式、curl 测试、从源码构建
以 HTTP 模式运行
export LAST9_REFRESH_TOKEN="your_refresh_token"
export LAST9_HTTP=true
export LAST9_PORT=8080
./last9-mcp-server
服务器在 http://localhost:8080/mcp 启动。
使用 curl 测试
Streamable HTTP 处理器以无状态模式运行,任何请求都会被独立处理。initialize 握手和 Mcp-Session-Id 请求头是可选的——发送这些请求头的客户端仍然可以正常工作(该请求头会被接受并忽略),客户端也可以直接跳到 tools/list / tools/call。每个工具都是独立的请求/响应查询;服务器不会发出服务器到客户端的通知,因此 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-server
LAST9_HTTP=true 用于本地开发。实际使用时,托管 HTTP 端点 更简单。
工具参考
所有参数、时间输入标准和详细信息
时间输入
- 绝对时间(
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(整数,可选):最大异常数。默认值:20。lookback_minutes(整数,可选):默认值:60。start_time_iso/end_time_iso(字符串,可选):绝对时间范围。service_name(字符串,可选):按服务过滤。span_name(字符串,可选):按 span 名称过滤。env(字符串,可选):按环境过滤。
get_service_summary
start_time_iso/end_time_iso(字符串,可选)env(字符串,可选):PromQL 正则表达式。默认为.*。精确匹配需要锚点(例如^prod$)。sort_by(字符串,可选):request_count(默认)、throughput_rpm、http_4xx_count、http_5xx_count或grpc_error_count。limit(整数,可选):最大排名行数。省略或为 0 表示 10;超过 100 的值会被限制为 100。
get_service_environments
start_time_iso/end_time_iso(字符串,可选)
所有其他 APM 工具都需要
env值。如果此处返回空结果,请使用""。
get_service_performance_details
service_name(字符串,必填)lookback_minutes(整数,可选):默认值:60。start_time_iso/end_time_iso(字符串,可选)env(字符串,可选):默认为prod。
get_service_operations_summary
service_name(字符串,必填)lookback_minutes(整数,可选):默认值:60。start_time_iso/end_time_iso(字符串,可选)env(字符串,可选):默认为prod。
get_service_dependency_graph
service_name(字符串,可选)lookback_minutes(整数,可选):默认值:60。start_time_iso/end_time_iso(字符串,可选)env(字符串,可选):默认为prod。
get_apm_service_deviations
service_name(字符串,可选):省略则作用于整个服务群;提供则作用于单个服务及其操作关联。lookback_minutes(整数,可选):当前时间窗口。默认值:60。start_time_iso/end_time_iso(字符串,可选):显式当前时间窗口。baseline_start_time_iso/baseline_end_time_iso(字符串,可选):显式基线。默认为紧邻的前一个等时长窗口。datasource(字符串,可选):将比较限制为单一数据源。env(字符串,可选):默认为prod。max_services/max_operations(整数,可选):默认 10,每个最大 10。
get_databases
env(字符串,可选):按环境过滤。默认:全部。lookback_minutes(整数,可选):默认值:60。start_time_iso/end_time_iso(字符串,可选)
get_database_slow_queries
db_system(字符串,可选):例如postgresql、mysql、mongodb、redis。host(字符串,可选):数据库主机(net_peer_name)。service_name(字符串,可选):调用服务名称。env(字符串,可选)min_duration_ms(浮点数,可选):最小查询时长(毫秒)。lookback_minutes(整数,可选):默认值:60。start_time_iso/end_time_iso(字符串,可选)limit(整数,可选):默认值:20。
get_database_queries
db_system(字符串,可选)host(字符串,可选)service_name(字符串,可选)env(字符串,可选)lookback_minutes(整数,可选):默认值:60。start_time_iso/end_time_iso(字符串,可选)limit(整数,可选):默认值:20。
get_database_server_metrics
db_system(字符串,必填):例如postgresql、mysql、mongodb、redis、aerospike。host(字符串,可选)lookback_minutes(整数,可选):默认值:60。start_time_iso/end_time_iso(字符串,可选)
prometheus_range_query
query(字符串,必填):PromQL 查询。start_time_iso/end_time_iso(字符串,可选):默认为最近 60 分钟。lookback_minutes(浮点数,可选):默认值:60。
prometheus_instant_query
query(字符串,必填)time_iso(字符串,可选):默认为当前时间。lookback_minutes(浮点数,可选)
prometheus_label_values
match_query(字符串,可选):PromQL 过滤器。label(字符串,必填):标签名称。start_time_iso/end_time_iso(字符串,可选)
prometheus_labels
match_query(字符串,可选):PromQL 过滤器。start_time_iso/end_time_iso(字符串,可选)
get_logs
logjson_query(数组,必填):JSON 管道查询。lookback_minutes(整数,可选):默认值:5。start_time_iso/end_time_iso(字符串,可选)limit(整数,可选):服务器默认值:5000。index(字符串,可选):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(字符串,必填)lookback_minutes(整数,可选):默认值:60。limit(整数,可选):默认值:20。env(字符串,可选)severity_filters(数组,可选):例如["error", "warn"]。OR 逻辑。body_filters(数组,可选):例如["timeout", "failed"]。OR 逻辑。start_time_iso/end_time_iso(字符串,可选)index(字符串,可选)
多种过滤类型使用 AND 组合。每个数组内部使用 OR。
先使用 get_logs 获取广泛的聚合计数;仅在缩小到特定服务/环境/索引和小样本集后使用 get_service_logs。
get_log_attributes
lookback_minutes(整数,可选):默认值:15。start_time_iso/end_time_iso(字符串,可选)region(字符串,可选)index(字符串,可选)
get_log_attributes_for_pipeline
pipeline(数组,必填):用于限定发现范围的先前过滤阶段,例如[{"type":"filter","query":{"$eq":["ServiceName","<service>"]}}]。lookback_minutes(整数,可选):默认值:15。start_time_iso/end_time_iso(字符串,可选)region(字符串,可选)index(字符串,可选)
get_drop_rules
无参数。通过 GET /otel_settings/drop?region=... 列出丢弃规则。
add_drop_rule
name(字符串,必填)filters(数组,必填):每个过滤器:key、value、operator(equals/not_equals)、conjunction(and)。- 过滤键必须使用
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(数组,必填)start_time_iso/end_time_iso(字符串,可选)lookback_minutes(整数,可选):默认值:60。limit(整数,可选):默认值:5000。
get_service_traces
trace_id 或 service_name 中必须且只能提供其中一个。
trace_id(字符串,可选):默认回看时间:72 小时。service_name(字符串,可选):默认回看时间:60 分钟。lookback_minutes(整数,可选)start_time_iso/end_time_iso(字符串,可选)limit(整数,可选):默认值:10。env(字符串,可选)
get_trace_attributes
lookback_minutes(整数,可选):默认值:15。start_time_iso/end_time_iso(字符串,可选)region(字符串,可选)
get_trace_attributes_for_pipeline
pipeline(数组,必填):用于限定发现范围的先前过滤阶段,例如[{"type":"filter","query":{"$eq":["ServiceName","<service>"]}}]。lookback_minutes(整数,可选):默认值:15。start_time_iso/end_time_iso(字符串,可选)region(字符串,可选)
get_trace_attribute_values
tag_name(字符串,必填):来自get_trace_attributes的属性名称(例如resource_department或attributes['http.method'])。pipeline(数组,可选):用于限定值范围的先前过滤阶段;省略则获取全局值。region(字符串,可选)
get_trace_attribute_deviations
comparison_mode(字符串,必填):latency、errors或time。service_name(字符串,必填)environment(字符串,必填):精确的deployment.environment值。operation(字符串,可选)filters(数组,可选):Trace JSON 过滤条件。candidate_attributes(数组,可选):最多 8 个;省略以进行有界发现。latency_threshold_ms(数字,可选):latency模式必需;其他模式拒绝。start_time_iso/end_time_iso(字符串,可选)lookback_minutes(整数,可选):默认值:15。最大值:15。baseline_start_time_iso/baseline_end_time_iso(字符串,可选):time模式必需;与目标窗口不重叠且时长相等。minimum_cohort_size(整数,可选):默认值:100。最小值:20。minimum_value_support(整数,可选):默认值:20。最小值:10。limit(整数,可选):默认值:10。最大值:10。
需要启用配套的后端功能。
get_trace_waterfall
trace_id(字符串,必填)environment(字符串,可选)start_time_iso/end_time_iso(字符串,可选)lookback_minutes(整数,可选):默认值:4320(72 小时)。selected_span_id(字符串,可选):仅返回该 span 的属性、事件和链接。max_spans(整数,可选):默认值:500。最大值:1000。
返回 investigation-evidence/v1 信封;瀑布图位于 data 下。
get_change_events
start_time_iso/end_time_iso(字符串,可选)lookback_minutes(整数,可选):默认值:60。service_name(字符串,可选)env(字符串,可选)event_name(字符串,可选):先在不带此参数的情况下调用以获取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, 必填):范围起始的 Unix 纪元时间(含)。end_time(integer, 必填):范围结束的 Unix 纪元时间(含)。step(integer, 必填):样本之间的分辨率(秒)。((end_time - start_time) / step + 1)的样本数上限为 100。alert_group_id(string, 可选):按告警组 ID 过滤。rule_name(string, 可选):按规则名称的正则表达式过滤。alert_group_name(string, 可选):按告警组名称的正则表达式过滤。label_filters(string, 可选):逗号分隔的key=value标签过滤器。state(string, 可选):按状态过滤(例如firing)。
返回 rule_id -> [{timestamp, is_firing}] 的 JSON 映射。规则在上游响应中缺失的时间戳会报告为 is_firing=0——这表示“未观察到触发”,而非确认的正常状态。
get_notification_channels
无参数。返回所有已配置的通知渠道(Slack、PagerDuty、电子邮件、Webhook 等)。
did_you_mean
query(string, 必填):要搜索的名称——可以是部分、拼写错误或缩写。type(string, 可选):限制实体类型:service、environment、host、database、k8s_deployment、k8s_namespace、job。
返回最多 3 个最接近的匹配项及相似度分数。在实体名称不确定的任何工具调用之前使用此功能。如果之前的调用返回空结果,请在重试前先尝试此功能。
list_dashboards
无参数。返回组织中所有自定义仪表板,以 JSON 数组形式呈现,包含 id、name 和元数据。
get_dashboard
id(string, 必填):仪表板 UUID。region(string, 可选):面板查询填充的区域。默认为已配置的数据源区域。
create_dashboard
dashboard(object, 必填):包含name和panels[]的仪表板定义。每个面板需要name、version、layout(x、y、w、h)、visualization.type和queries[]。metadata(object, 可选):仪表板元数据——_category和_type字段(例如{"_category":"custom","_type":"metrics"})。
update_dashboard
id(string, 必填):要更新的仪表板 UUID。dashboard(object, 必填):完整的替换仪表板主体(与创建时结构相同)。metadata(object, 可选):替换元数据。只读系统仪表板将返回 403 错误。
delete_dashboard
id(string, 必填):要删除的仪表板 UUID。只读系统仪表板无法删除。
list_dashboard_snapshots
dashboard_id(string, 必填):要列出其快照的仪表板 UUID。
仅返回元数据(id、name、expires_at 等)。如需冻结的面板数据,请使用 get_dashboard_snapshot。
get_dashboard_snapshot
id(string, 必填):快照 UUID。
返回完整的冻结快照,包括 dashboard_definition、panel_data、time_range 和 variables。
delete_dashboard_snapshot
id(string, 必填):要删除的快照 UUID。
测试
有关集成测试设置和说明,请参阅 TESTING.md。
