MCP Tools Reference: monitoring.googleapis.com

Herramienta: query_range

Evalúa una consulta de PromQL en un período determinado

En la siguiente muestra de código, se explica cómo usar curl para llamar a la herramienta query_range de MCP.

Solicitud 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
}'

Esquema de entrada

QueryRangeRequest contiene todos los parámetros de la API de consulta de rango ascendente de Prometheus, además de los parámetros específicos de GCM.

QueryRangeRequest

Representación JSON
{
  "name": string,
  "query": string,
  "start": string,
  "end": string,
  "step": string,
  "timeout": string,
  "location": string
}
Campos
name

string

Obligatorio. Es el proyecto en el que se ejecutará la solicitud. Los datos asociados con el espacio de trabajo del proyecto se almacenan en el formato: projects/[PROJECT_ID_OR_NUMBER]. Es una API de código abierto, pero se usa como un prefijo de ruta de solicitud para distinguir diferentes instancias virtuales de Prometheus de Google Prometheus Engine.

query

string

Es una cadena de consulta de PromQL. Documentación del lenguaje de consulta: https://prometheus.io/docs/prometheus/latest/querying/basics/.

start

string

Es la hora de inicio para evaluar la consulta. Puede ser segundos UNIX de punto flotante o una marca de tiempo con formato RFC3339.

end

string

Es la hora de finalización para evaluar la consulta. Puede ser segundos UNIX de punto flotante o una marca de tiempo con formato RFC3339.

step

string

Es la resolución del resultado de la consulta. Puede ser una cadena de duración de Prometheus (https://prometheus.io/docs/prometheus/latest/querying/basics/#time-durations) o segundos de punto flotante. Esta codificación no estándar se debe usar para la compatibilidad con la API de código abierto. Los clientes aún pueden implementar tiempos de espera a nivel de conexión mientras ignoran este campo.

timeout

string

Es un tiempo de espera máximo para la consulta. Puede ser una cadena de duración de Prometheus (https://prometheus.io/docs/prometheus/latest/querying/basics/#time-durations) o segundos de punto flotante. Esta codificación no estándar se debe usar para la compatibilidad con la API de código abierto. Los clientes aún pueden implementar tiempos de espera a nivel de conexión mientras ignoran este campo.

location

string

Es la ubicación de la información del recurso. Ahora debe ser "global".

Esquema de salida

Mensaje que representa un cuerpo HTTP arbitrario. Solo debería usarse para formatos de carga útil que no pueden representarse como JSON, por ejemplo, datos binarios sin procesar o una página HTML.

Este mensaje se puede usar en métodos de API de transmisión y de no transmisión, en la solicitud y en la respuesta.

Se puede usar como campo de solicitud de alto nivel, que es conveniente si alguien quiere extraer parámetros de la plantilla de URL o HTTP en los campos de solicitudes y también quiere acceder al cuerpo HTTP sin procesar.

Ejemplo:

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);

}

Ejemplo con métodos de transmisión:

service CaldavService {
  rpc GetCalendar(stream google.api.HttpBody)
    returns (stream google.api.HttpBody);
  rpc UpdateCalendar(stream google.api.HttpBody)
    returns (stream google.api.HttpBody);

}

El uso de este tipo solo cambia la manera en que se manejan los cuerpos de la solicitud y la respuesta. Las demás funciones seguirán funcionando sin cambios.

HttpBody

Representación JSON
{
  "contentType": string,
  "data": string,
  "extensions": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}
Campos
contentType

string

El valor del encabezado HTTP de Content-Type que especifica el tipo de contenido del cuerpo.

data

string (bytes format)

El cuerpo de la solicitud/respuesta HTTP como objeto binario sin procesar.

String codificada en base 64.

extensions[]

object

Metadatos de la respuesta específica de la aplicación. Se deben configurar en la primera respuesta para las API de transmisión.

Un objeto que contiene campos de un tipo arbitrario. Un campo adicional "@type" contiene una URI que identifica el tipo. Ejemplo: { "id": 1234, "@type": "types.example.com/standard/id" }.

Cualquiera

Representación JSON
{
  "typeUrl": string,
  "value": string
}
Campos
typeUrl

string

Identifica el tipo del mensaje Protobuf serializado con una referencia URI que consta de un prefijo que termina en una barra y el nombre de tipo completamente calificado.

Ejemplo: type.googleapis.com/google.protobuf.StringValue

Esta cadena debe contener al menos un carácter /, y el contenido después de la última / debe ser el nombre completamente calificado del tipo en forma canónica, sin un punto inicial. No escribas un esquema en estas referencias URI para que los clientes no intenten comunicarse con ellas.

El prefijo es arbitrario y se espera que las implementaciones de Protobuf simplemente quiten todo hasta la última / inclusive para identificar el tipo. type.googleapis.com/ es un prefijo predeterminado común que requieren algunas implementaciones heredadas. Este prefijo no indica el origen del tipo, y no se espera que los URIs que lo contienen respondan a ninguna solicitud.

Todas las cadenas de URL de tipo deben ser referencias URI legales con la restricción adicional (para el formato de texto) de que el contenido de la referencia debe constar solo de caracteres alfanuméricos, escapes codificados como porcentaje y caracteres en el siguiente conjunto (sin incluir las comillas invertidas externas): /-.~_!$&()*+,;=. A pesar de que permitimos las codificaciones de porcentaje, las implementaciones no deben anular el escape para evitar confusiones con los analizadores existentes. Por ejemplo, se debe rechazar type.googleapis.com%2FFoo.

En el diseño original de Any, se consideró la posibilidad de lanzar un servicio de resolución de tipos en estas URLs de tipo, pero Protobuf nunca implementó uno y considera que comunicarse con estas URLs es problemático y un posible problema de seguridad. No intentes comunicarte con las URLs de tipo.

value

string (bytes format)

Contiene una serialización de Protobuf del tipo descrito por type_url.

String codificada en base 64.

Anotaciones de herramientas

Sugerencia destructiva: ❌ | Sugerencia idempotente: ✅ | Sugerencia de solo lectura: ✅ | Sugerencia de mundo abierto: ❌