JoinNode is destroying values

I have a simple measurement in stream:
{"series":[{"name":"maintenance","tags":{"env":"pre","host":"hostname"},"columns":["time","value"],"values":[["2019-01-28T17:27:40Z","localhost.localdomain"]]}]}
The other is cpu measurement. When I join two nodes I am loosing my values except one value.

// Dataframe
var data = stream
    |from()
        .database(db)
        .retentionPolicy(rp)
        .measurement(measurement)
        .groupBy(groups)
        .where(whereFilter)
    |window()
        .period(period)
        .every(every)
        .align()
    |join(maintlock)
        .as('m1','m2')
        .tolerance(1s)
        .fill('none')
    |eval(lambda: 100.0 - "m1.usage_idle")
        .as('cpuUsed')
    |mean('cpuUsed')
        .as('stat')
    |httpOut('outdata')

So the JoinNode is destroying my values, only one value left from random host. How can I join my cpu metrics and my simple custom measurement AND save all values from all hosts I have in this stream?