1

I am trying to convert a SQL Server query to Flux

SQL Server query:

SELECT 
    CAST(100.0 * SUM(signal_wait_time_ms) / SUM (wait_time_ms) AS NUMERIC(20, 2)) AS [%signal (cpu) waits]
FROM 
    sys.dm_os_wait_stats 
OPTION (RECOMPILE);

My version of the Flux query

    from(bucket: "mssql")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r["sql_instance"] == "wp000081511")
  |> filter(fn: (r) => r["_measurement"] == "sqlserver_waitstats")
  |> aggregateWindow(every: 1s, fn: sum, column: "signal_wait_time_ms")
  |> yield(name: "sum_signal_wait_time_ms")
  |> aggregateWindow(every:1s, fn: sum, column: "wait_time_ms")
  |> yield(name: "sum_wait_time_ms")
  |> map(fn: (r) => ({r with ratio: r.signal_wait_time_ms/r.sum_wait_time_ms}))
  |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)
  |> yield(name: "last")

The error produced by Flux query

 runtime error: column "signal_wait_time_ms" does not exist

I am sure my syntax here has issues I just don't know how to address. I have not properly formulated the map function. The query was working before I added the map function.

Leo Torres
  • 673
  • 1
  • 6
  • 18

0 Answers0