mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-11-21 14:44:00 +00:00
29 lines
739 B
Go
29 lines
739 B
Go
|
package metricsql_test
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"log"
|
||
|
|
||
|
"github.com/VictoriaMetrics/VictoriaMetrics/lib/metricsql"
|
||
|
)
|
||
|
|
||
|
func ExampleExpandWithExprs() {
|
||
|
// mql can contain arbitrary MetricsQL extensions - see https://github.com/VictoriaMetrics/VictoriaMetrics/wiki/ExtendedPromQL
|
||
|
mql := `WITH (
|
||
|
commonFilters = {job="$job", instance="$instance"},
|
||
|
f(a, b) = 100*(a/b),
|
||
|
)
|
||
|
f(disk_free_bytes{commonFilters}, disk_total_bytes{commonFilters})`
|
||
|
|
||
|
// Convert mql to PromQL
|
||
|
pql, err := metricsql.ExpandWithExprs(mql)
|
||
|
if err != nil {
|
||
|
log.Fatalf("cannot expand with expressions: %s", err)
|
||
|
}
|
||
|
|
||
|
fmt.Printf("%s\n", pql)
|
||
|
|
||
|
// Output:
|
||
|
// 100 * (disk_free_bytes{job="$job", instance="$instance"} / disk_total_bytes{job="$job", instance="$instance"})
|
||
|
}
|