{"record":{"id":"aab578c3f6b20555","repo":"pinpoint-apm/pinpoint","slug":"unsupported-groupingrule","errorCode":null,"errorMessage":"unsupported groupingRule :","messagePattern":"unsupported groupingRule :","errorType":"exception","errorClass":"UnsupportedOperationException","httpStatus":null,"severity":"error","filePath":"metric-module/metric/src/main/java/com/navercorp/pinpoint/metric/web/service/SystemMetricDataServiceImpl.java","lineNumber":148,"sourceCode":"                    CompletableFuture<List<DataPoint<Double>>> doubleFuture = systemMetricDoubleDao.getAsyncSampledSystemMetricData(metricDataSearchKey, metricTag);\n                    invokeList.add(new QueryResult<>(metricDataType, doubleFuture, metricTag));\n                } else {\n                    throw new RuntimeException(\"No Such Metric\");\n                }\n            }\n        }\n        return (List<QueryResult<Number>>)(List<?>) invokeList;\n    }\n\n    private record QueryResult<T extends Number>(MetricDataType type, CompletableFuture<List<DataPoint<T>>> future, MetricTag tag) {\n    }\n\n\n    private List<MetricValueGroup<? extends Number>> groupingMetricValue(List<MetricValue<?>> metricValueList, GroupingRule groupingRule) {\n        if (GroupingRule.TAG == groupingRule) {\n            return groupingByTag(metricValueList);\n        }\n        throw new UnsupportedOperationException(\"unsupported groupingRule :\" + groupingRule);\n    }\n\n    private List<MetricValueGroup<? extends Number>> groupingByTag(List<MetricValue<? extends Number>> metricValueList) {\n        List<TagGroup> uniqueTagGroupList = createUniqueTagGroupList(metricValueList);\n\n        Map<TagGroup, List<MetricValue<?>>> metricValueGroupMap = new HashMap<>();\n        for (MetricValue<?> metricValue : metricValueList) {\n            TagGroup tagGroup = findTagGroup(uniqueTagGroupList, new TagGroup(metricValue.getTagList()));\n\n            List<MetricValue<?>> metricValues = metricValueGroupMap.computeIfAbsent(tagGroup, v -> new ArrayList<>(1));\n            metricValues.add(metricValue);\n        }\n\n        Collection<List<MetricValue<?>>> valueList = metricValueGroupMap.values();\n\n        List<MetricValueGroup<?>> metricValueGroupList = new ArrayList<>(valueList.size());\n        for (Map.Entry<TagGroup, List<MetricValue<?>>> entry : metricValueGroupMap.entrySet()) {\n            String groupName = entry.getKey().groupName();","sourceCodeStart":130,"sourceCodeEnd":166,"githubUrl":"https://github.com/pinpoint-apm/pinpoint/blob/744c3d3075e595656abb1ae331ad2c0e4c9eb996/metric-module/metric/src/main/java/com/navercorp/pinpoint/metric/web/service/SystemMetricDataServiceImpl.java#L130-L166","documentation":"Sentinel RuntimeException in groupingMetricValue: the metric's grouping rule (field.getMatchingRule()) is not one of the supported MatchingRule enum branches, so the code cannot decide how to group values — a configuration/definition mismatch.","triggerScenarios":"Thrown at metric-module/metric/src/main/java/com/navercorp/pinpoint/metric/web/service/SystemMetricDataServiceImpl.java:148 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set a supported matchingRule value in the metric definition","Add a handler branch for the new MatchingRule in the service","Validate matching rules at YML load time to fail earlier"],"exampleFix":null,"handlingStrategy":"type-guard","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"744c3d3075e595656abb1ae331ad2c0e4c9eb996","analyzedAt":"2026-09-07T18:48:45.289Z","contentChangedAt":"2026-09-07T18:48:45.289Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}