{"id":"f5a6ec09e22f90eb","repo":"redis/redis-py","slug":"latency-graph-is-intentionally-not-implemented-in","errorCode":null,"errorMessage":"LATENCY GRAPH is intentionally not implemented in the client. For more information, see https://redis.io/commands/latency-graph","messagePattern":"LATENCY GRAPH is intentionally not implemented in the client\\. For more information, see https://redis\\.io/commands/latency-graph","errorType":"exception","errorClass":"NotImplementedError","httpStatus":null,"severity":"error","filePath":"redis/commands/core.py","lineNumber":1731,"sourceCode":"        This function is best used within the redis-cli.\n\n        For more information, see https://redis.io/commands/latency-doctor\n        \"\"\"\n        raise NotImplementedError(\n            \"\"\"\n            LATENCY DOCTOR is intentionally not implemented in the client.\n\n            For more information, see https://redis.io/commands/latency-doctor\n            \"\"\"\n        )\n\n    def latency_graph(self):\n        \"\"\"Raise a NotImplementedError, as the client will not support LATENCY GRAPH.\n        This function is best used within the redis-cli.\n\n        For more information, see https://redis.io/commands/latency-graph.\n        \"\"\"\n        raise NotImplementedError(\n            \"\"\"\n            LATENCY GRAPH is intentionally not implemented in the client.\n\n            For more information, see https://redis.io/commands/latency-graph\n            \"\"\"\n        )\n\n    @overload\n    def lolwut(\n        self: SyncClientProtocol, *version_numbers: Union[str, float], **kwargs\n    ) -> bytes | str: ...\n\n    @overload\n    def lolwut(\n        self: AsyncClientProtocol, *version_numbers: Union[str, float], **kwargs\n    ) -> Awaitable[bytes | str]: ...\n\n    def lolwut(self, *version_numbers: Union[str, float], **kwargs) -> (","sourceCodeStart":1713,"sourceCodeEnd":1749,"githubUrl":"https://github.com/redis/redis-py/blob/da03cdc7e8731092b13e395605c3c1fb2de25de1/redis/commands/core.py#L1713-L1749","documentation":"latency_graph is a stub that always raises NotImplementedError. LATENCY GRAPH returns an ASCII-art graph meant for the redis-cli console; it has no structured value for a programmatic client, so redis-py does not implement it.","triggerScenarios":"Calling r.latency_graph() directly. Enumerating latency_* methods for a monitoring tool.","commonSituations":"Operator wants a latency visualization and calls the method expecting a data structure. Copying redis-cli LATENCY GRAPH workflow into Python.","solutions":["Use r.execute_command('LATENCY', 'GRAPH') for the raw ASCII output.","For numeric latency series, use r.latency_history(event) and render your own graph.","Use redis-cli for the built-in ASCII graph."],"exampleFix":"# before\nr.latency_graph()\n# after\nascii_graph = r.execute_command('LATENCY', 'GRAPH')","handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":"try:\n    r.latency_graph()\nexcept NotImplementedError:\n    graph = r.execute_command('LATENCY', 'GRAPH')","preventionTips":["LATENCY GRAPH is ASCII art — use latency_history for numeric data.","Reach for execute_command for console-oriented latency subcommands."],"tags":["not-implemented","latency","api-gap"],"analyzedSha":"da03cdc7e8731092b13e395605c3c1fb2de25de1","analyzedAt":"2026-08-04T20:26:47.563Z","schemaVersion":2}