{"record":{"id":"57053ef1b5ced719","repo":"apache/cassandra","slug":"unknown-metric-name","errorCode":null,"errorMessage":"Unknown metric name: ","messagePattern":"Unknown metric name: ","errorType":"exception","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"src/java/org/apache/cassandra/tools/NodeProbe.java","lineNumber":2078,"sourceCode":"    private Object getSaiMetricValue(String metricName, ObjectName oName) throws IOException\n    {\n        switch (metricName)\n        {\n            case \"QueryLatency\":\n                return JMX.newMBeanProxy(mbeanServerConn, oName, CassandraMetricsRegistry.JmxTimerMBean.class);\n            case \"PostFilteringReadLatency\":\n            case \"SSTableIndexesHit\":\n            case \"IndexSegmentsHit\":\n            case \"RowsFiltered\":\n                return JMX.newMBeanProxy(mbeanServerConn, oName, CassandraMetricsRegistry.JmxHistogramMBean.class);\n            case \"DiskUsedBytes\":\n            case \"TotalIndexCount\":\n            case \"TotalQueryableIndexCount\":\n                return JMX.newMBeanProxy(mbeanServerConn, oName, CassandraMetricsRegistry.JmxGaugeMBean.class).getValue();\n            case \"TotalQueryTimeouts\":\n                return JMX.newMBeanProxy(mbeanServerConn, oName, CassandraMetricsRegistry.JmxCounterMBean.class).getCount();\n            default:\n                throw new IllegalArgumentException(\"Unknown metric name: \" + metricName);\n        }\n    }\n\n    private String getSaiMetricScope(String metricName)\n    {\n        switch (metricName)\n        {\n            case \"QueryLatency\":\n            case \"SSTableIndexesHit\":\n            case \"IndexSegmentsHit\":\n            case \"RowsFiltered\":\n                return TableQueryMetrics.PerQueryMetrics.PER_QUERY_METRICS_TYPE;\n            case \"PostFilteringReadLatency\":\n            case \"TotalQueryTimeouts\":\n                return TableQueryMetrics.TABLE_QUERY_METRIC_TYPE;\n            case \"DiskUsedBytes\":\n                return IndexGroupMetrics.INDEX_GROUP_METRICS_TYPE;\n            case \"TotalIndexCount\":","sourceCodeStart":2060,"sourceCodeEnd":2096,"githubUrl":"https://github.com/apache/cassandra/blob/88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1/src/java/org/apache/cassandra/tools/NodeProbe.java#L2060-L2096","documentation":"RuntimeException from NodeProbe.getSaiMetricValue's switch when the metric name is not one of the recognized SAI metric names (QueryLatency, PostFilteringReadLatency, DiskUsedBytes, etc.). This is a guard over user-supplied metric names for nodetool SAI metric lookups.","triggerScenarios":"Thrown at src/java/org/apache/cassandra/tools/NodeProbe.java:2078 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use one of the supported SAI metric names (see nodetool help / StorageAttachedIndexMetrics)","Check spelling and case of the metric argument","Extend the switch if a newly added SAI metric must be exposed"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1","analyzedAt":"2026-09-10T07:29:22.284Z","contentChangedAt":"2026-09-10T07:29:22.284Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}