k8s.io/test-infra@v0.0.0-20240520184403-27c6b4c223d8/config/prow/cluster/monitoring/mixins/grafana_dashboards/plank.jsonnet (about) 1 local grafana = import 'grafonnet/grafana.libsonnet'; 2 local dashboard = grafana.dashboard; 3 local graphPanel = grafana.graphPanel; 4 local prometheus = grafana.prometheus; 5 local template = grafana.template; 6 7 local legendConfig = { 8 legend+: { 9 sideWidth: 250 10 }, 11 }; 12 13 local dashboardConfig = { 14 uid: 'e1778910572e3552a935c2035ce80369', 15 }; 16 17 dashboard.new( 18 'plank dashboard', 19 time_from='now-1h', 20 schemaVersion=18, 21 ) 22 .addTemplate( 23 template.new( 24 'cluster', 25 'prometheus', 26 'label_values(prowjobs{job=~"plank|prow-controller-manager"}, cluster)', 27 label='cluster', 28 allValues='.*', 29 includeAll=true, 30 refresh='time', 31 ) 32 ) 33 .addTemplate( 34 template.new( 35 'org', 36 'prometheus', 37 'label_values(prowjobs{job=~"plank|prow-controller-manager"}, org)', 38 label='org', 39 allValues='.*', 40 includeAll=true, 41 refresh='time', 42 ) 43 ) 44 .addTemplate( 45 template.new( 46 'repo', 47 'prometheus', 48 'label_values(prowjobs{job=~"plank|prow-controller-manager"}, repo)', 49 label='repo', 50 allValues='.*', 51 includeAll=true, 52 refresh='time', 53 ) 54 ) 55 .addTemplate( 56 template.custom( 57 'state', 58 'all,aborted,error,failure,pending,success,triggered', 59 'all', 60 label='state', 61 includeAll=true, 62 allValues='.*', 63 ) 64 ) 65 .addTemplate( 66 template.custom( 67 'type', 68 'all,batch,periodic,presubmit,postsubmit', 69 'all', 70 label='type', 71 includeAll=true, 72 allValues='.*', 73 ) 74 ) 75 .addTemplate( 76 template.custom( 77 'group_by_1', 78 'cluster,org,repo,state,type', 79 'type', 80 label='group_by_1', 81 allValues='.*', 82 ) 83 ) 84 .addTemplate( 85 template.custom( 86 'group_by_2', 87 'cluster,org,repo,state,type', 88 'state', 89 label='group_by_2', 90 allValues='.*', 91 ) 92 ) 93 .addTemplate( 94 template.custom( 95 'group_by_3', 96 'cluster,org,repo,state,type', 97 'cluster', 98 label='group_by_3', 99 allValues='.*', 100 ) 101 ) 102 .addPanel( 103 (graphPanel.new( 104 'number of Prow jobs (stacked) by ${group_by_1}', 105 description='sum(prowjobs{...}) by (${group_by_1})', 106 datasource='prometheus', 107 stack=true, 108 legend_alignAsTable=true, 109 legend_rightSide=true, 110 111 ) + legendConfig) 112 .addTarget(prometheus.target( 113 'sum(prowjobs{job=~"plank|prow-controller-manager",cluster=~"${cluster}",org=~"${org}",repo=~"${repo}",state=~"${state}",type=~"${type}"}) by (${group_by_1})', 114 legendFormat='{{${group_by_1}}}', 115 )), gridPos={ 116 h: 9, 117 w: 24, 118 x: 0, 119 y: 9, 120 }) 121 .addPanel( 122 (graphPanel.new( 123 'number of Prow jobs (stacked) by ${group_by_2}', 124 description='sum(prowjobs{...}) by (${group_by_2})', 125 datasource='prometheus', 126 stack=true, 127 legend_alignAsTable=true, 128 legend_rightSide=true, 129 130 ) + legendConfig) 131 .addTarget(prometheus.target( 132 'sum(prowjobs{job=~"plank|prow-controller-manager",cluster=~"${cluster}",org=~"${org}",repo=~"${repo}",state=~"${state}",type=~"${type}"}) by (${group_by_2})', 133 legendFormat='{{${group_by_2}}}', 134 )), gridPos={ 135 h: 9, 136 w: 24, 137 x: 0, 138 y: 9, 139 }) 140 .addPanel( 141 (graphPanel.new( 142 'number of Prow jobs (stacked) by ${group_by_3}', 143 description='sum(prowjobs{...}) by (${group_by_3})', 144 datasource='prometheus', 145 stack=true, 146 legend_alignAsTable=true, 147 legend_rightSide=true, 148 149 ) + legendConfig) 150 .addTarget(prometheus.target( 151 'sum(prowjobs{job=~"plank|prow-controller-manager",cluster=~"${cluster}",org=~"${org}",repo=~"${repo}",state=~"${state}",type=~"${type}"}) by (${group_by_3})', 152 legendFormat='{{${group_by_3}}}', 153 )), gridPos={ 154 h: 9, 155 w: 24, 156 x: 0, 157 y: 9, 158 }) 159 + dashboardConfig