Skip to main content
Glama

redis_memory_pressure_rca

Read-only

Diagnose Redis memory pressure by comparing used vs maxmemory, evictions, fragmentation, and big keys, then return evidence-backed causes and actions for live or telemetry data.

Instructions

[READ] Diagnose redis memory pressure → cause + action, with numbers.

The flagship memory RCA: used vs maxmemory (+ eviction policy — noeviction near the limit means writes will OOM), evicted-keys pressure, fragmentation ratio (high = defrag, below 1 = likely swapping), and the SCAN-budgeted big-key sample. Every finding carries its numbers, not a black-box verdict. Pass 'telemetry' for pure analysis, or a target to pull live.

Args: used_pct: used/maxmemory %% at/above which pressure is flagged (default 85). telemetry: Injected {memory:{...memory_stats fields}, evictedKeys, bigKeys:{topKeys:[...]}}; skips the live pull. target: redis target name from config; omit for the default.

Returns dict: {pressure, usedPctOfMax, maxmemoryPolicy, fragmentationRatio, evictedKeys, thresholds, findings:[{cause, action, evidence}], note}.

Input Schema

NameRequiredDescriptionDefault
targetNo
used_pctNo
telemetryNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.6.0

TDQS

A4.4/5.0
Behavior4/5

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

Annotations only declare readOnlyHint=true; the description adds genuine behavioral context beyond that, decoding eviction policy ('noeviction near the limit means writes will OOM') and fragmentation (below 1 = likely swapping), and noting the big-key sample is SCAN-budgeted. It stops short of auth/permission or execution-cost disclosure.

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

Conciseness4/5

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

Front-loads the purpose, then signals, then Args and Returns in labeled blocks, so scanning is easy. Slightly verbose in the opening paragraph but no sentence is pure filler.

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

Completeness5/5

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

No output schema exists, yet the description spells out the return dict keys (pressure, usedPctOfMax, maxmemoryPolicy, fragmentationRatio, evictedKeys, thresholds, findings, note), closing the gap. For a 3-param read-only diagnostic this is complete.

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?

With 0% schema coverage the description must carry the parameter burden and largely does: used_pct default and meaning, target origin ('from config; omit for the default'), and the nested telemetry shape ({memory:{...memory_stats fields}, evictedKeys, bigKeys:{topKeys:[...]}}). The 'memory_stats fields' reference is slightly hand-wavy, keeping it from a 5.

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?

States a specific verb (Diagnose) and resource (redis memory pressure) and the concrete output (cause + action, with numbers). It explicitly positions itself as the RCA over raw metric siblings by contrasting with a 'black-box verdict', so an agent can distinguish it from redis_memory_stats or redis_big_keys without opening either schema.

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

Usage Guidelines4/5

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

Gives clear operational branching: 'Pass telemetry for pure analysis, or a target to pull live', plus the used_pct threshold semantics. It does not name specific sibling alternatives (e.g. redis_memory_stats as the raw-data counterpart) or state when-not-to-use, so it falls short of a 5.

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