Skip to main content
Glama

GetOperationMetrics

Read-onlyIdempotent

Top operations by usage/health for a graph over a time window, as compact CSV (header row + one row per operation per day). Columns: start timestamp, end exclusive timestamp, operation name, request count, request latency p50 ms, request latency p99 ms, request with error count. Ranked by orderBy descending: default REQUEST_COUNT (busiest); use REQUEST_WITH_ERROR_COUNT for most error-prone, REQUEST_LATENCY_P99_MS for slowest. Rows are per-DAY buckets, so for a multi-day window sum a column per operation to get the window total. variantName optionally scopes to one or more variants (omit for all). Note: to must be at least 1 day in the past (DAY resolution).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
toYesThe ending timestamp for the report. Must be in the format: 2025-01-01T08:00:00Z (ISO 8601).
fromYesThe starting timestamp for the report. Must be in the format: 2025-01-01T00:00:00Z (ISO 8601).
limitNoMaximum number of records to return (default: 100, max 10000).
graphIdYes
orderByNo
variantNameNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
dataNo
errorsNo
extensionsNo

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the read-only safety profile. The description adds meaningful behavioral context: CSV output format, per-day bucketing, DAY resolution with the 'to must be at least 1 day in the past' constraint, and the default ranking behavior. Slightly below 5 because page/limit behavior is only partially described.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense, information-rich single paragraph that front-loads the purpose, then covers format, ranking options, bucketing guidance, and constraints. Every sentence earns its place — no filler, tautology, or repetition of schema-restated content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so return-value explanation isn't needed. The description covers ranking behavior, CSV columns, per-day bucketing, variant scoping, and time constraints — quite complete. Minor gap: limit behavior and pagination are not described, and graphId semantics are left to the schema definition (which just names the field with no type detail).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 6 params but only describes from/to/limit/orderBy semantics; graphId and variantName are minimally described in schema. The description compensates by explaining variantName ('optionally scopes to one or more variants (omit for all)') and orderBy default semantics including the exact enum values. However, graphId still has no description and the limit default/maximum is only partially explained in schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource: 'Top operations by usage/health for a graph over a time window.' It clearly distinguishes from siblings like GetSubgraphMetrics (subgraph-level) and GetTopOperations by emphasizing the time-window + per-day CSV bucket format and CSV output.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly explains when to use: it names the ranking options (orderBy) and when each is appropriate — REQUEST_COUNT for busiest, REQUEST_WITH_ERROR_COUNT for error-prone, REQUEST_LATENCY_P99_MS for slowest. It also notes the exclusion: 'to must be at least 1 day in the past' and DAY resolution as a constraint. The per-day bucket guidance on summing columns for window totals provides practical usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A3.9/5.0
Disambiguation5/5

Each tool targets a clearly distinct resource and action: docs (search/read), launches (history/get/latest), metrics (operations/subgraphs/top ops), config checks (PQL/lint/variant), and identity resolution. There is no meaningful overlap — GetLaunchHistory, GetLaunch, and GetLatestLaunch are clearly differentiated by scope. The tool set is exceptionally well delineated.

Naming Consistency3/5

The naming follows a mostly consistent pattern, but there is a notable inconsistency: seven tools use the Get* prefix (GetLaunch, GetVariantDetails, GetLintResults, etc.) while two use an inconsistent ApolloDocs* prefix (ApolloDocsSearch, ApolloDocsRead). The Get* tools are uniform, and the camelCase compound names (GetLatestLaunch, GetOperationMetrics) are readable, but the two ApolloDocs tools break the pattern.

Tool Count5/5

13 tools is well within the ideal 3-15 range. Each tool maps to a distinct GraphOS capability: documentation access, identity resolution, launch/deployment inspection, health metrics, linting, PQL status, and variant details. No tool feels extraneous, and the count is appropriate for the broad but bounded domain of GraphOS observability and configuration.

Completeness4/5

The surface covers the core GraphOS operations well: deployments (launch tools), traffic health (metrics tools), configuration (variant/PQL/lint), documentation, and identity. A minor gap is the absence of write/management operations (e.g., no tool to trigger a launch, update PQL, or modify variant configuration), meaning the server is read-only in nature. For a read-only observability/health-check server this is acceptable, but an agent could not act on findings. Also no tool to list graphs/variants directly (only via GetMyIdentity).

Resources