Hi all,

While working on the implementation of metrics API in Spark runner the
question of committed vs. attempted results has come up, sparking (no pun
intended) an interesting conversation.
(See API: MetricResult
<https://github.com/apache/beam/blob/master/sdks/java/core/src/main/java/org/apache/beam/sdk/metrics/MetricResult.java>
and
discussion: PR #1750 <https://github.com/apache/beam/pull/1750>)

The separation of `attempted` and `committed` metric results seems a bit
unclear.

Seeing that current implementations of aggregators in the different runners
do not guarantee correctness, one could assume that the metrics API
implementations will also follow the same guarantees.

If this is correct, then you could assume that only `attempted()` metrics
results can be fulfilled.
Would it then be better to just have a single method such as `get()` in the
API, and have the guarantees of each runner explained in the capability
matrix / documentation?

Reply via email to