1{2 "uid": "o12-stress",3 "title": "012 stress runs",4 "description": "make stress results over time (stress.results)",5 "tags": [6 "012"7 ],8 "timezone": "browser",9 "schemaVersion": 39,10 "version": 1,11 "editable": true,12 "refresh": "10s",13 "time": {14 "from": "now-30d",15 "to": "now"16 },17 "panels": [18 {19 "id": 1,20 "type": "timeseries",21 "title": "Engine: edit latency by topology",22 "description": "BenchmarkEdit: one Set and its incremental recalc, per run (log scale)",23 "datasource": {24 "type": "grafana-clickhouse-datasource",25 "uid": "clickhouse"26 },27 "gridPos": {28 "x": 0,29 "y": 0,30 "w": 12,31 "h": 832 },33 "targets": [34 {35 "datasource": {36 "type": "grafana-clickhouse-datasource",37 "uid": "clickhouse"38 },39 "editorType": "sql",40 "format": 0,41 "queryType": "timeseries",42 "rawSql": "SELECT ts AS time, name, ns_op / 1e6 AS ms FROM stress.results FINAL WHERE $__timeFilter(ts) AND match(name, '^Edit/') ORDER BY time",43 "refId": "A"44 }45 ],46 "fieldConfig": {47 "defaults": {48 "unit": "ms",49 "custom": {50 "lineWidth": 2,51 "fillOpacity": 8,52 "showPoints": "always",53 "spanNulls": true,54 "scaleDistribution": {55 "type": "log",56 "log": 1057 },58 "pointSize": 659 },60 "displayName": "${__field.labels.name}"61 },62 "overrides": []63 },64 "options": {65 "legend": {66 "displayMode": "list",67 "placement": "bottom"68 },69 "tooltip": {70 "mode": "multi"71 }72 }73 },74 {75 "id": 2,76 "type": "timeseries",77 "title": "UI: frame and keystroke time",78 "description": "Whole frames (View, parse, diff) and key presses through to their frame (log scale)",79 "datasource": {80 "type": "grafana-clickhouse-datasource",81 "uid": "clickhouse"82 },83 "gridPos": {84 "x": 12,85 "y": 0,86 "w": 12,87 "h": 888 },89 "targets": [90 {91 "datasource": {92 "type": "grafana-clickhouse-datasource",93 "uid": "clickhouse"94 },95 "editorType": "sql",96 "format": 0,97 "queryType": "timeseries",98 "rawSql": "SELECT ts AS time, name, ns_op / 1e6 AS ms FROM stress.results FINAL WHERE $__timeFilter(ts) AND match(name, '^(Frame/(dense-8192x256|longtext-8192x500|charts-20)/200x60|Keystroke/(arrow/dense-8192x256|extend-data/dense-8192x256|type/fanin-1000)/80x24)$') ORDER BY time",99 "refId": "A"100 }101 ],102 "fieldConfig": {103 "defaults": {104 "unit": "ms",105 "custom": {106 "lineWidth": 2,107 "fillOpacity": 8,108 "showPoints": "always",109 "spanNulls": true,110 "scaleDistribution": {111 "type": "log",112 "log": 10113 },114 "pointSize": 6115 },116 "displayName": "${__field.labels.name}"117 },118 "overrides": []119 },120 "options": {121 "legend": {122 "displayMode": "list",123 "placement": "bottom"124 },125 "tooltip": {126 "mode": "multi"127 }128 }129 },130 {131 "id": 3,132 "type": "timeseries",133 "title": "Full recalc and file operations",134 "description": "RecalcAll per topology, native save and open of 2.1M cells, CSV imports (log scale)",135 "datasource": {136 "type": "grafana-clickhouse-datasource",137 "uid": "clickhouse"138 },139 "gridPos": {140 "x": 0,141 "y": 8,142 "w": 12,143 "h": 8144 },145 "targets": [146 {147 "datasource": {148 "type": "grafana-clickhouse-datasource",149 "uid": "clickhouse"150 },151 "editorType": "sql",152 "format": 0,153 "queryType": "timeseries",154 "rawSql": "SELECT ts AS time, name, ns_op / 1e6 AS ms FROM stress.results FINAL WHERE $__timeFilter(ts) AND match(name, '^(RecalcAll/|Save/dense-8192x256|Open/dense-8192x256|Import/(owid|airport))') ORDER BY time",155 "refId": "A"156 }157 ],158 "fieldConfig": {159 "defaults": {160 "unit": "ms",161 "custom": {162 "lineWidth": 2,163 "fillOpacity": 8,164 "showPoints": "always",165 "spanNulls": true,166 "scaleDistribution": {167 "type": "log",168 "log": 10169 },170 "pointSize": 6171 },172 "displayName": "${__field.labels.name}"173 },174 "overrides": []175 },176 "options": {177 "legend": {178 "displayMode": "list",179 "placement": "bottom"180 },181 "tooltip": {182 "mode": "multi"183 }184 }185 },186 {187 "id": 4,188 "type": "timeseries",189 "title": "Memory per cell",190 "description": "Live heap per non-blank cell after loading",191 "datasource": {192 "type": "grafana-clickhouse-datasource",193 "uid": "clickhouse"194 },195 "gridPos": {196 "x": 12,197 "y": 8,198 "w": 12,199 "h": 8200 },201 "targets": [202 {203 "datasource": {204 "type": "grafana-clickhouse-datasource",205 "uid": "clickhouse"206 },207 "editorType": "sql",208 "format": 0,209 "queryType": "timeseries",210 "rawSql": "SELECT ts AS time, name, metrics['B/cell'] AS bytes_per_cell FROM stress.results FINAL WHERE $__timeFilter(ts) AND mapContains(metrics, 'B/cell') ORDER BY time",211 "refId": "A"212 }213 ],214 "fieldConfig": {215 "defaults": {216 "unit": "bytes",217 "custom": {218 "lineWidth": 2,219 "fillOpacity": 8,220 "showPoints": "always",221 "spanNulls": true,222 "pointSize": 6223 },224 "displayName": "${__field.labels.name}"225 },226 "overrides": []227 },228 "options": {229 "legend": {230 "displayMode": "list",231 "placement": "bottom"232 },233 "tooltip": {234 "mode": "multi"235 }236 }237 },238 {239 "id": 5,240 "type": "table",241 "title": "Latest run against the previous one",242 "description": "Changes over 10% and 2 us; positive is slower (a regression)",243 "datasource": {244 "type": "grafana-clickhouse-datasource",245 "uid": "clickhouse"246 },247 "gridPos": {248 "x": 0,249 "y": 16,250 "w": 12,251 "h": 8252 },253 "targets": [254 {255 "datasource": {256 "type": "grafana-clickhouse-datasource",257 "uid": "clickhouse"258 },259 "editorType": "sql",260 "format": 1,261 "queryType": "table",262 "rawSql": "SELECT pkg, name, round(before_ns / 1e6, 3) AS before_ms, round(after_ns / 1e6, 3) AS after_ms, round(change * 100, 1) AS change_pct FROM stress.latest_vs_previous WHERE abs(change) > 0.10 AND abs(after_ns - before_ns) > 2000 ORDER BY change DESC",263 "refId": "A"264 }265 ],266 "fieldConfig": {267 "defaults": {},268 "overrides": []269 },270 "options": {271 "showHeader": true,272 "cellHeight": "sm"273 }274 },275 {276 "id": 6,277 "type": "table",278 "title": "Runs",279 "description": "",280 "datasource": {281 "type": "grafana-clickhouse-datasource",282 "uid": "clickhouse"283 },284 "gridPos": {285 "x": 12,286 "y": 16,287 "w": 12,288 "h": 8289 },290 "targets": [291 {292 "datasource": {293 "type": "grafana-clickhouse-datasource",294 "uid": "clickhouse"295 },296 "editorType": "sql",297 "format": 1,298 "queryType": "table",299 "rawSql": "SELECT run_id, min(ts) AS ts, any(git_sha) AS sha, max(git_dirty) AS dirty, any(cpu) AS cpu, any(go_version) AS go, count() AS benchmarks FROM stress.results FINAL GROUP BY run_id ORDER BY ts DESC LIMIT 20",300 "refId": "A"301 }302 ],303 "fieldConfig": {304 "defaults": {},305 "overrides": []306 },307 "options": {308 "showHeader": true,309 "cellHeight": "sm"310 }311 }312 ],313 "templating": {314 "list": []315 },316 "annotations": {317 "list": []318 }319}