Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 24 additions & 14 deletions install/54_create_finops_views.sql
Original file line number Diff line number Diff line change
Expand Up @@ -157,15 +157,11 @@ CREATE OR ALTER VIEW
AS
WITH
/*
CPU utilization over last 24 hours
CPU p95 via window function (must be separate from aggregates)
*/
cpu_stats AS
cpu_p95 AS
(
SELECT
avg_cpu_pct =
AVG(CONVERT(decimal(5,2), cus.sqlserver_cpu_utilization)),
max_cpu_pct =
MAX(cus.sqlserver_cpu_utilization),
p95_cpu_pct =
CONVERT
(
Expand All @@ -175,23 +171,37 @@ WITH
ORDER BY
cus.sqlserver_cpu_utilization
) OVER ()
),
)
FROM collect.cpu_utilization_stats AS cus
WHERE cus.collection_time >= DATEADD(HOUR, -24, SYSDATETIME())
),
/*
CPU aggregates
*/
cpu_agg AS
(
SELECT
avg_cpu_pct =
AVG(CONVERT(decimal(5,2), cus.sqlserver_cpu_utilization)),
max_cpu_pct =
MAX(cus.sqlserver_cpu_utilization),
sample_count =
COUNT_BIG(*)
FROM collect.cpu_utilization_stats AS cus
WHERE cus.collection_time >= DATEADD(HOUR, -24, SYSDATETIME())
),
/*
Deduplicate CPU stats (PERCENTILE_CONT is a window function)
Combine CPU stats
*/
cpu_dedup AS
(
SELECT TOP (1)
cs.avg_cpu_pct,
cs.max_cpu_pct,
cs.p95_cpu_pct,
cs.sample_count
FROM cpu_stats AS cs
SELECT
ca.avg_cpu_pct,
ca.max_cpu_pct,
p95_cpu_pct =
(SELECT TOP (1) cp.p95_cpu_pct FROM cpu_p95 AS cp),
ca.sample_count
FROM cpu_agg AS ca
),
/*
Latest memory stats
Expand Down
Loading