pinpoint-apm/pinpoint · error · UnsupportedOperationException

unsupported metric :

Error message

unsupported metric :

What it means

Thrown by YMLSystemMetricBasicGroupManager.findElementOfBasicGroup when a requested metric definition id cannot be found in the mappings loaded from the system-metric YAML configuration. It fires when web queries reference a definitionId (or name-to-definition grouping) that the loaded yml does not declare, typically after a metric id rename or a missing/incorrect config file. The input at fault is the unknown metric definition id; add the metric to the yml or correct the requested id.

Source

Thrown at metric-module/metric/src/main/java/com/navercorp/pinpoint/metric/web/service/YMLSystemMetricBasicGroupManager.java:80

            String definitionId = metric.getDefinitionId();
            List<String> definitionIdList = metricIdMap.computeIfAbsent(metric.getName(), s -> new ArrayList<>());
            definitionIdList.add(definitionId);
        }
        this.metricIdMap = metricIdMap;

        List<String> metricIdSortOrder = mappings
                .stream()
                .map(Metric::getDefinitionId)
                .collect(Collectors.toList());
        metricInfoComparator = Comparator.comparing(metricInfo -> metricIdSortOrder.indexOf(metricInfo.getMetricDefinitionId()));
    }

    public Metric findElementOfBasicGroup(String metricDefinitionId) {
        Metric metric = this.definitionIdMap.get(metricDefinitionId);
        if (metric != null) {
            return metric;
        }
        throw new UnsupportedOperationException("unsupported metric :" + metricDefinitionId);
    }

    public String findMetricName(String metricDefinitionId) {
        Metric metric = this.definitionIdMap.get(metricDefinitionId);
        if (metric != null) {
            return metric.getName();
        }


        throw new UnsupportedOperationException("unsupported metric :" + metricDefinitionId);
    }

    public String findMetricTitle(String metricDefinitionId) {
        Metric metric = this.definitionIdMap.get(metricDefinitionId);
        if (metric != null) {
            return metric.getTitle();
        }

View on GitHub (pinned to 744c3d3075)

Solutions

  1. Add the metric definition to the YML basic-group configuration
  2. Check the metric name spelling in the query/API call
  3. Reload or verify the metric configuration loaded at startup
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at metric-module/metric/src/main/java/com/navercorp/pinpoint/metric/web/service/YMLSystemMetricBasicGroupManager.java:80 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of pinpoint-apm/pinpoint@744c3d3075 (2026-09-07). Data as JSON: /api/errors/8a89619319e24e45. Report an issue: GitHub.