Skip to main content
Glama
agarwalvivek29

OpenTelemetry MCP Server

query_prometheus_range

Retrieve Prometheus metrics over specified time ranges using PromQL queries to analyze historical performance data and identify trends.

Instructions

Execute PromQL query over a time range. Returns time series data. Use this for getting metrics over time.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryYesPromQL query string
startNoStart time. Can be: relative like '1h' (last hour), '30m', '7d', or absolute RFC3339/Unix timestamp. Default: 1h ago
endNoEnd time. Can be: 'now', relative, or absolute. Default: now
stepNoQuery resolution step (e.g., '15s', '1m', '5m'). Default: 15s

Implementation Reference

  • The implementation of the `query_prometheus_range` function in `prometheus_tools.py`. It handles range query execution, time parsing, and error reporting.
    async def query_prometheus_range(
        client: PrometheusClient,
        query: str,
        start: Optional[str] = None,
        end: Optional[str] = None,
        step: str = "15s"
    ) -> Dict[str, Any]:
        """
        Execute PromQL range query.
        
        Args:
            client: Prometheus client
            query: PromQL query string
            start: Start time (relative like '1h' or absolute)
            end: End time (relative like 'now' or absolute)
            step: Query resolution step
            
        Returns:
            Query results with time series data
        """
        try:
            # Parse time range
            start_dt, end_dt = parse_time_range(start, end)
            start_ts = to_prometheus_time(start_dt)
            end_ts = to_prometheus_time(end_dt)
            
            result = await client.query_range(query, start_ts, end_ts, step)
            
            return {
                "success": True,
                "query": query,
                "start": start or "auto",
                "end": end or "now",
                "step": step,
                "result": result
            }
        except Exception as e:
            logger.error(f"Error executing Prometheus range query: {e}")
            return {
                "success": False,
                "error": str(e),
                "query": query
            }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/agarwalvivek29/opentelemetry-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server