wellarchitected_lens_inputwellarchitected_workload_answered_question_countwellarchitected_workload_countwellarchitected_workload_high_issue_countwellarchitected_workload_high_medium_risk_countswellarchitected_workload_high_risk_countwellarchitected_workload_inputwellarchitected_workload_lens_risk_tablewellarchitected_workload_medium_issue_countwellarchitected_workload_medium_risk_countwellarchitected_workload_milestone_lens_review_risk_countswellarchitected_workload_milestone_risk_countswellarchitected_workload_milestone_risk_tablewellarchitected_workload_milestone_unanswered_tablewellarchitected_workload_no_improvements_risk_countwellarchitected_workload_not_applicable_risk_countwellarchitected_workload_pillar_risk_tablewellarchitected_workload_risk_count_tablewellarchitected_workload_risks_by_lenswellarchitected_workload_risks_by_milestonewellarchitected_workload_risks_by_pillarwellarchitected_workload_unanswered_by_milestonewellarchitected_workload_with_high_issue_countwellarchitected_workload_with_medium_issue_count
Query: wellarchitected_workload_milestone_risk_table
Usage
powerpipe query aws_well_architected.query.wellarchitected_workload_milestone_risk_table
SQL
with milestone_info as ( select workload_id, milestone_number, milestone_name, recorded_at from aws_wellarchitected_milestone where workload_id = $1
union
select $1 as workload_id, 0 as milestone_number, -- Lens review API returns latest milestone as 0 'latest' as milestone_name, current_timestamp as recorded_at), lens_review as ( select * from aws_wellarchitected_lens_review where milestone_number in (select milestone_number from aws_wellarchitected_milestone where workload_id = $1 union select 0 as milestone_number) -- Latest milestone is returned as 0 and workload_id = (select workload_id from aws_wellarchitected_workload where workload_id = $1)), risk_data as ( select milestone_number, sum((risk_counts ->> 'HIGH')::int) as high_risks, sum((risk_counts ->> 'MEDIUM')::int) as medium_risks, sum((risk_counts ->> 'NONE')::int) as no_improvements_risks, sum((risk_counts ->> 'NOT_APPLICABLE')::int) as not_applicable_risks from lens_review as r where r.lens_arn = any(string_to_array($2, ',')) group by r.milestone_number order by r.milestone_number) select case when m.milestone_number = 0 then null -- Instead of showing milestone number as 0 for latest, show null to avoid confusion else m.milestone_number end as "Milestone Number", case when m.milestone_number = 0 then 'latest' else m.milestone_name end as "Milestone Name", r.high_risks as "High", r.medium_risks as "Medium", r.no_improvements_risks as "No Improvements", r.not_applicable_risks as "Not Applicable", to_char(m.recorded_at, 'YYYY-MM-DD HH24:MI') as "Date Saved"from risk_data r left join milestone_info m on r.milestone_number = m.milestone_numberorder by m.recorded_at desc;
Params
Args | Name | Default | Description | Variable |
---|---|---|---|---|
$1 | workload_id | |||
$2 | lens_arn |
Dashboards
The query is used in the dashboards: