TICKScript: Cannot call function "float"

var measurement = 'swap'

var groupBy = ['host']

var whereFilter = lambda: ("os" == 'linux')

var convert_GiB = 0.0000000009313225746154785

var data = stream
    |from()
        .database(db)
        .retentionPolicy(rp)
        .measurement(measurement)
        .groupBy(groupBy)
        .where(whereFilter)
    |eval(lambda: float("free") * convert_GiB, lambda: float("total") * convert_GiB, lambda: ceil("used_percent"))
        .as('free', 'total', 'usage')
    |window()
        .period(3m)
        .every(2m)
    |percentile('usage', 90.0)
        .as('stat')

Error it returns:

lvl=error msg="error evaluating expression" service=kapacitor task_master=main task=SWAP_USAGE_LNX node=alert5 err="Cannot call function \"float\" argument \"free\" is missing, values in scope are [\"used_percent\", \"total\", \"usage\", \"usage\"]"

Up.

Any help on this? There is a field called “free”.