工具:query_range
在一定时间范围内评估 PromQL 查询
以下示例演示了如何使用 curl 调用 query_range MCP 工具。
| Curl 请求 |
|---|
curl --location 'https://monitoring.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "query_range", "arguments": { // provide these details according to the tool's MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
输入架构
QueryRangeRequest 包含 Prometheus 上游范围查询 API 的所有参数以及 GCM 特有的参数。
QueryRangeRequest
| JSON 表示法 |
|---|
{ "name": string, "query": string, "start": string, "end": string, "step": string, "timeout": string, "location": string } |
| 字段 | |
|---|---|
name |
必需。在其中执行请求的项目。与项目的工作区相关联的数据,存储在以下格式的路径下:projects/[PROJECT_ID_OR_NUMBER]。开源 API,但用作请求路径前缀,以区分 Google Prometheus Engine 的不同虚拟 Prometheus 实例。 |
query |
PromQL 查询字符串。查询语言文档:https://prometheus.io/docs/prometheus/latest/querying/basics/。 |
start |
评估查询的开始时间。浮点 UNIX 秒数或 RFC3339 格式的时间戳。 |
end |
评估查询的结束时间。浮点 UNIX 秒数或 RFC3339 格式的时间戳。 |
step |
查询结果的解析。Prometheus 时长字符串(https://prometheus.io/docs/prometheus/latest/querying/basics/#time-durations)或浮点秒数。必须使用此非标准编码才能与开源 API 兼容。客户端可能仍会在连接级别实现超时,同时忽略此字段。 |
timeout |
查询的超时时间上限。Prometheus 时长字符串(https://prometheus.io/docs/prometheus/latest/querying/basics/#time-durations)或浮点秒数。必须使用此非标准编码才能与开源 API 兼容。客户端可能仍会在连接级别实现超时,同时忽略此字段。 |
location |
资源信息的位置。现在必须是“global”。 |
输出架构
表示任意 HTTP 正文的消息。它应仅用于无法表示为 JSON 的负载格式,例如原始二进制文件或 HTML 网页。
此消息可同时用于请求和响应中的流式传输和非流式传输 API 方法。
它可以用作顶级请求字段,如果想要将网址或 HTTP 模板中的参数提取到请求字段中,并且还希望访问原始 HTTP 正文,这会很方便。
示例:
message GetResourceRequest {
// A unique request id.
string request_id = 1;
// The raw HTTP body is bound to this field.
google.api.HttpBody http_body = 2;
}
service ResourceService {
rpc GetResource(GetResourceRequest)
returns (google.api.HttpBody);
rpc UpdateResource(google.api.HttpBody)
returns (google.protobuf.Empty);
}
流式传输方法示例:
service CaldavService {
rpc GetCalendar(stream google.api.HttpBody)
returns (stream google.api.HttpBody);
rpc UpdateCalendar(stream google.api.HttpBody)
returns (stream google.api.HttpBody);
}
使用此类型仅会更改请求和响应正文的处理方式,所有其他功能将继续保持不变。
HttpBody
| JSON 表示法 |
|---|
{ "contentType": string, "data": string, "extensions": [ { "@type": string, field1: ..., ... } ] } |
| 字段 | |
|---|---|
contentType |
指定正文内容类型的 HTTP Content-Type 标头值。 |
data |
作为原始二进制文件的 HTTP 请求/响应正文。 base64 编码的字符串。 |
extensions[] |
应用专用响应元数据。必须在流式传输 API 的第一个响应中设置。 此对象可以包含任意类型的字段。附加字段 |
不限
| JSON 表示法 |
|---|
{ "typeUrl": string, "value": string } |
| 字段 | |
|---|---|
typeUrl |
通过 URI 引用(包含以斜杠结尾的前缀和完全限定的类型名称)来标识序列化 Protobuf 消息的类型。 示例:type.googleapis.com/google.protobuf.StringValue 此字符串必须包含至少一个 前缀是任意的,Protobuf 实现应仅剥离最后一个 所有类型网址字符串都必须是合法的 URI 引用,并且(对于文本格式)还必须满足以下额外限制:引用的内容只能包含字母数字字符、百分号编码的转义字符以及以下集合中的字符(不包括外侧的反引号): 在 |
value |
包含由 type_url 描述的类型的 Protobuf 序列化。 使用 base64 编码的字符串。 |
工具注释
破坏性提示:❌ | 等幂性提示:✅ | 只读提示:✅ | 开放世界提示:❌