I have some metrics with different label sets, for example:
```
label_metric{foo="a", bar="b"} 0
label_metric{foo="a", bar="c"} 0
my_metric{foo="a", bar="b"} 5
my_metric{foo="a"} 3
```
When I use the following aggregation:
```
min by (foo, bar) (
my_metric
)
```
I get an expected result:
```
my_metric{foo="a", bar="b"} 5
my_metric{foo="a"} 3
```
But when I instead use one-to-many operation:
```
label_metric
+ on (foo, bar) group_left()
my_metric
```
I would expect a following result:
```
{foo="a", bar="b"} 5
{foo="a", bar="c"} 3
```
as it would be consistent with the aggregation operation behavior.
But instead, I get the following result:
```
{foo="a", bar="b"} 5
```
This behavior seems inconsistent with the aggregation operation to me.
Is there a reason why `group_left()` silently drops part of the data instead of matching it with the right-hand side?
It looks like one-to-many matching only works with the largest label set and drops the rest of the data. This is very confusing and dangerous imho.
Am I missing something?
Thanks in advance
Simon Let