Add experimental view_matching_mode (composable metric views) support

Abierto
#9,013 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 2 días

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
35/100
Tipo de issue
Nueva funcionalidad
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
java

Línea de trabajo

Start with ViewRegistry.findViews(...) in sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/internal/view/ViewRegistry.java, then read the specification sections linked in the issue for stream grouping and merging rules. Inspect ViewBuilder and View for configured-property tracking, and SdkMeterProviderUtil for the experimental setter pattern; wire MeterProviderModelAccessor.getViewMatchingMode(model) from MeterProviderFactory.create(...). Done means composable matching, precedence, attribute filtering, and advisory fallback follow the specification while independent remains the default.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Description

The OpenTelemetry Metrics SDK specification defines an experimental (Development) view_matching_mode configuration parameter (independent vs. composable) on MeterProvider to compose multiple matching Views (for example, combining a broad policy View that filters attributes or disables instruments with an instrument-specific View that customizes aggregation) into merged metric streams rather than emitting duplicate/conflicting streams (specification/metrics/sdk.md#L519-L543, introduced in https://github.com/open-telemetry/opentelemetry-specification/pull/5173).

Currently in opentelemetry-java:

Proposal

Implement experimental support for view_matching_mode (independent default, composable opt-in) in opentelemetry-sdk-metrics and wire it in opentelemetry-sdk-extension-declarative-config:

  • Expose an experimental view_matching_mode setter on SdkMeterProviderBuilder via SdkMeterProviderUtil (following the pattern in https://github.com/open-telemetry/opentelemetry-java/blob/f02bddc4091f56d68b60b4c433afcec64c8d97b9/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/internal/SdkMeterProviderUtil.java#L70-L84).
  • Implement composable View grouping and stream merging in opentelemetry-sdk-metrics (ViewBuilder / View and ViewRegistry) per the specification:
    • Form a stream group for each distinct configured View name containing matching Views with that name plus all matching Views with name == null (or a single default-named group if no matching View sets name).
    • Track explicitly configured ViewBuilder properties (distinguishing unset properties from ViewBuilder's default field values in ViewBuilder.java#L26-L30) to apply atomic last-wins precedence across non-attribute_keys stream settings, falling back per-aspect to the preceding valid View in the group (or default) with a warning on semantic errors rather than discarding the entire RegisteredView.
    • Compose specified attribute_keys predicates via logical AND, and override instrument advisory parameters only for aspects configured by matching Views in the group (falling back to instrument advisory parameters otherwise).
  • Wire MeterProviderModelAccessor.getViewMatchingMode(model) in MeterProviderFactory.create(...).
Additional Context
Lenguaje dominante
Java
Estrellas
2.5k
Forks
1k
Merge medio
4 d 3 h
PR fusionados (30 d)
52

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de open-telemetry/opentelemetry-java

Todos los issues de open-telemetry/opentelemetry-java

Issues similares

Más issues de Java

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.