Disk_Performance.json 38 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945
  1. {
  2. "annotations": {
  3. "list": []
  4. },
  5. "editable": true,
  6. "gnetId": null,
  7. "hideControls": true,
  8. "id": null,
  9. "links": [
  10. {
  11. "asDropdown": true,
  12. "icon": "external link",
  13. "includeVars": true,
  14. "keepTime": true,
  15. "tags": [
  16. "OS"
  17. ],
  18. "targetBlank": true,
  19. "title": "OS",
  20. "type": "dashboards"
  21. },
  22. {
  23. "asDropdown": true,
  24. "icon": "external link",
  25. "includeVars": true,
  26. "keepTime": true,
  27. "tags": [
  28. "MySQL"
  29. ],
  30. "targetBlank": true,
  31. "title": "MySQL",
  32. "type": "dashboards"
  33. },
  34. {
  35. "asDropdown": true,
  36. "icon": "external link",
  37. "includeVars": true,
  38. "keepTime": true,
  39. "tags": [
  40. "MongoDB"
  41. ],
  42. "targetBlank": true,
  43. "title": "MongoDB",
  44. "type": "dashboards"
  45. },
  46. {
  47. "asDropdown": true,
  48. "icon": "external link",
  49. "includeVars": true,
  50. "keepTime": true,
  51. "tags": [
  52. "HA"
  53. ],
  54. "targetBlank": true,
  55. "title": "HA",
  56. "type": "dashboards"
  57. }
  58. ],
  59. "refresh": false,
  60. "rows": [
  61. {
  62. "collapse": false,
  63. "height": "250px",
  64. "panels": [
  65. {
  66. "content": "You can click on an individual disk device on the legend to filter on it or multiple ones by holding Alt button.",
  67. "datasource": "Prometheus",
  68. "editable": true,
  69. "error": false,
  70. "height": "50px",
  71. "id": 8,
  72. "links": [],
  73. "mode": "text",
  74. "span": 12,
  75. "style": {},
  76. "title": "",
  77. "transparent": true,
  78. "type": "text"
  79. },
  80. {
  81. "aliasColors": {},
  82. "bars": false,
  83. "datasource": "Prometheus",
  84. "decimals": 2,
  85. "editable": true,
  86. "error": false,
  87. "fill": 2,
  88. "grid": {},
  89. "id": 11,
  90. "legend": {
  91. "alignAsTable": true,
  92. "avg": true,
  93. "current": false,
  94. "hideEmpty": true,
  95. "hideZero": true,
  96. "max": true,
  97. "min": true,
  98. "rightSide": true,
  99. "show": true,
  100. "sort": null,
  101. "sortDesc": null,
  102. "total": false,
  103. "values": true
  104. },
  105. "lines": false,
  106. "linewidth": 2,
  107. "links": [],
  108. "nullPointMode": "null",
  109. "percentage": false,
  110. "pointradius": 1,
  111. "points": true,
  112. "renderer": "flot",
  113. "seriesOverrides": [],
  114. "span": 12,
  115. "stack": false,
  116. "steppedLine": false,
  117. "targets": [
  118. {
  119. "calculatedInterval": "2m",
  120. "datasourceErrors": {},
  121. "errors": {},
  122. "expr": "(rate(node_disk_read_time_ms{device=~\"$device\", instance=\"$host\"}[$interval]) / rate(node_disk_reads_completed{device=~\"$device\", instance=\"$host\"}[$interval])) or (irate(node_disk_read_time_ms{device=~\"$device\", instance=\"$host\"}[5m]) / irate(node_disk_reads_completed{device=~\"$device\", instance=\"$host\"}[5m]))",
  123. "interval": "$interval",
  124. "intervalFactor": 1,
  125. "legendFormat": "Read: {{ device }}",
  126. "metric": "",
  127. "refId": "A",
  128. "step": 300,
  129. "target": ""
  130. },
  131. {
  132. "calculatedInterval": "2m",
  133. "datasourceErrors": {},
  134. "errors": {},
  135. "expr": "(rate(node_disk_write_time_ms{device=~\"$device\", instance=\"$host\"}[$interval]) / rate(node_disk_writes_completed{device=~\"$device\", instance=\"$host\"}[$interval])) or (irate(node_disk_write_time_ms{device=~\"$device\", instance=\"$host\"}[5m]) / irate(node_disk_writes_completed{device=~\"$device\", instance=\"$host\"}[5m]))",
  136. "interval": "$interval",
  137. "intervalFactor": 1,
  138. "legendFormat": "Write: {{ device }}",
  139. "metric": "",
  140. "refId": "B",
  141. "step": 300,
  142. "target": ""
  143. }
  144. ],
  145. "thresholds": [],
  146. "timeFrom": null,
  147. "timeShift": null,
  148. "title": "Disk Latency",
  149. "description": "Shows average latency for Reads and Writes IO Devices. Higher than typical latency for highly loaded storage indicates saturation (overload) and is frequent cause of performance problems. Higher than normal latency also can indicate internal storage problems.",
  150. "tooltip": {
  151. "msResolution": false,
  152. "shared": true,
  153. "sort": 0,
  154. "value_type": "individual"
  155. },
  156. "transparent": false,
  157. "type": "graph",
  158. "xaxis": {
  159. "mode": "time",
  160. "name": null,
  161. "show": true,
  162. "values": []
  163. },
  164. "yaxes": [
  165. {
  166. "format": "ms",
  167. "label": "",
  168. "logBase": 2,
  169. "max": null,
  170. "min": 0,
  171. "show": true
  172. },
  173. {
  174. "format": "ms",
  175. "label": "",
  176. "logBase": 1,
  177. "max": null,
  178. "min": 0,
  179. "show": true
  180. }
  181. ]
  182. },
  183. {
  184. "aliasColors": {},
  185. "bars": false,
  186. "datasource": "Prometheus",
  187. "decimals": 2,
  188. "editable": true,
  189. "error": false,
  190. "fill": 2,
  191. "grid": {},
  192. "id": 15,
  193. "legend": {
  194. "alignAsTable": true,
  195. "avg": true,
  196. "current": false,
  197. "hideEmpty": false,
  198. "hideZero": true,
  199. "max": true,
  200. "min": true,
  201. "rightSide": true,
  202. "show": true,
  203. "sort": null,
  204. "sortDesc": null,
  205. "total": false,
  206. "values": true
  207. },
  208. "lines": true,
  209. "linewidth": 2,
  210. "links": [],
  211. "nullPointMode": "null",
  212. "percentage": false,
  213. "pointradius": 1,
  214. "points": false,
  215. "renderer": "flot",
  216. "seriesOverrides": [],
  217. "span": 12,
  218. "stack": false,
  219. "steppedLine": false,
  220. "targets": [
  221. {
  222. "calculatedInterval": "2m",
  223. "datasourceErrors": {},
  224. "errors": {},
  225. "expr": "rate(node_disk_reads_completed{device=~\"$device\", instance=\"$host\"}[$interval]) or irate(node_disk_reads_completed{device=~\"$device\", instance=\"$host\"}[5m])",
  226. "interval": "$interval",
  227. "intervalFactor": 1,
  228. "legendFormat": "Read: {{ device }}",
  229. "metric": "",
  230. "refId": "A",
  231. "step": 300,
  232. "target": ""
  233. },
  234. {
  235. "calculatedInterval": "2m",
  236. "datasourceErrors": {},
  237. "errors": {},
  238. "expr": "rate(node_disk_writes_completed{device=~\"$device\", instance=\"$host\"}[$interval]) or irate(node_disk_writes_completed{device=~\"$device\", instance=\"$host\"}[5m])",
  239. "interval": "$interval",
  240. "intervalFactor": 1,
  241. "legendFormat": "Write: {{ device }}",
  242. "metric": "",
  243. "refId": "B",
  244. "step": 300,
  245. "target": ""
  246. }
  247. ],
  248. "thresholds": [],
  249. "timeFrom": null,
  250. "timeShift": null,
  251. "title": "Disk Operations",
  252. "description": "Shows amount of physical IOs (reads and writes) different devices are serving. Spikes in number of IOs served often corresponds to performance problems due to IO subsystem overload.",
  253. "tooltip": {
  254. "msResolution": false,
  255. "shared": true,
  256. "sort": 0,
  257. "value_type": "individual"
  258. },
  259. "transparent": false,
  260. "type": "graph",
  261. "xaxis": {
  262. "mode": "time",
  263. "name": null,
  264. "show": true,
  265. "values": []
  266. },
  267. "yaxes": [
  268. {
  269. "format": "iops",
  270. "label": "",
  271. "logBase": 1,
  272. "max": null,
  273. "min": 0,
  274. "show": true
  275. },
  276. {
  277. "format": "short",
  278. "label": "",
  279. "logBase": 1,
  280. "max": null,
  281. "min": 0,
  282. "show": true
  283. }
  284. ]
  285. },
  286. {
  287. "aliasColors": {},
  288. "bars": false,
  289. "datasource": "Prometheus",
  290. "decimals": 2,
  291. "editable": true,
  292. "error": false,
  293. "fill": 2,
  294. "grid": {},
  295. "id": 16,
  296. "legend": {
  297. "alignAsTable": true,
  298. "avg": true,
  299. "current": false,
  300. "hideEmpty": false,
  301. "hideZero": true,
  302. "max": true,
  303. "min": true,
  304. "rightSide": true,
  305. "show": true,
  306. "sort": null,
  307. "sortDesc": null,
  308. "total": false,
  309. "values": true
  310. },
  311. "lines": true,
  312. "linewidth": 2,
  313. "links": [],
  314. "nullPointMode": "null",
  315. "percentage": false,
  316. "pointradius": 1,
  317. "points": false,
  318. "renderer": "flot",
  319. "seriesOverrides": [],
  320. "span": 12,
  321. "stack": false,
  322. "steppedLine": false,
  323. "targets": [
  324. {
  325. "calculatedInterval": "2m",
  326. "datasourceErrors": {},
  327. "errors": {},
  328. "expr": "rate(node_disk_bytes_read{device=~\"$device\", instance=\"$host\"}[$interval]) or irate(node_disk_bytes_read{device=~\"$device\", instance=\"$host\"}[5m])",
  329. "interval": "$interval",
  330. "intervalFactor": 1,
  331. "legendFormat": "Read: {{ device }}",
  332. "metric": "",
  333. "refId": "A",
  334. "step": 300,
  335. "target": ""
  336. },
  337. {
  338. "calculatedInterval": "2m",
  339. "datasourceErrors": {},
  340. "errors": {},
  341. "expr": "rate(node_disk_bytes_written{device=~\"$device\", instance=\"$host\"}[$interval]) or irate(node_disk_bytes_written{device=~\"$device\", instance=\"$host\"}[5m])",
  342. "interval": "$interval",
  343. "intervalFactor": 1,
  344. "legendFormat": "Write: {{ device }}",
  345. "metric": "",
  346. "refId": "B",
  347. "step": 300,
  348. "target": ""
  349. }
  350. ],
  351. "thresholds": [],
  352. "timeFrom": null,
  353. "timeShift": null,
  354. "title": "Disk Bandwidth",
  355. "description": "Shows volume of reads and writes the storage is handling. This can be better measure of IO capacity usage for network attached and SSD storage as it is often bandwidth limited. Amount of data being written to the disk can be used to estimate Flash storage life time.",
  356. "tooltip": {
  357. "msResolution": false,
  358. "shared": true,
  359. "sort": 0,
  360. "value_type": "individual"
  361. },
  362. "transparent": false,
  363. "type": "graph",
  364. "xaxis": {
  365. "mode": "time",
  366. "name": null,
  367. "show": true,
  368. "values": []
  369. },
  370. "yaxes": [
  371. {
  372. "format": "Bps",
  373. "label": "",
  374. "logBase": 1,
  375. "max": null,
  376. "min": 0,
  377. "show": true
  378. },
  379. {
  380. "format": "short",
  381. "label": "",
  382. "logBase": 1,
  383. "max": null,
  384. "min": 0,
  385. "show": true
  386. }
  387. ]
  388. },
  389. {
  390. "aliasColors": {},
  391. "bars": false,
  392. "datasource": "Prometheus",
  393. "decimals": 2,
  394. "editable": true,
  395. "error": false,
  396. "fill": 2,
  397. "grid": {},
  398. "id": 14,
  399. "legend": {
  400. "alignAsTable": true,
  401. "avg": true,
  402. "current": false,
  403. "hideEmpty": false,
  404. "hideZero": true,
  405. "max": true,
  406. "min": true,
  407. "rightSide": true,
  408. "show": true,
  409. "total": false,
  410. "values": true
  411. },
  412. "lines": false,
  413. "linewidth": 2,
  414. "links": [],
  415. "nullPointMode": "null",
  416. "percentage": false,
  417. "pointradius": 1,
  418. "points": true,
  419. "renderer": "flot",
  420. "seriesOverrides": [],
  421. "span": 12,
  422. "stack": false,
  423. "steppedLine": false,
  424. "targets": [
  425. {
  426. "calculatedInterval": "2m",
  427. "datasourceErrors": {},
  428. "errors": {},
  429. "expr": "rate(node_disk_read_time_ms{device=~\"$device\", instance=\"$host\"}[$interval])/1000 or irate(node_disk_read_time_ms{device=~\"$device\", instance=\"$host\"}[5m])/1000",
  430. "interval": "$interval",
  431. "intervalFactor": 1,
  432. "legendFormat": "Read: {{ device }}",
  433. "metric": "",
  434. "refId": "A",
  435. "step": 300,
  436. "target": ""
  437. },
  438. {
  439. "calculatedInterval": "2m",
  440. "datasourceErrors": {},
  441. "errors": {},
  442. "expr": "rate(node_disk_write_time_ms{device=~\"$device\", instance=\"$host\"}[$interval])/1000 or irate(node_disk_write_time_ms{device=~\"$device\", instance=\"$host\"}[5m])/1000",
  443. "interval": "$interval",
  444. "intervalFactor": 1,
  445. "legendFormat": "Write: {{ device }}",
  446. "metric": "",
  447. "refId": "B",
  448. "step": 300,
  449. "target": ""
  450. }
  451. ],
  452. "thresholds": [],
  453. "timeFrom": null,
  454. "timeShift": null,
  455. "title": "Disk Load",
  456. "description": "Shows how much disk was loaded for reads or writes as average number of outstanding requests at different period of time. High disk load is a good measure of actual storage utilization. Different storage types handle load differently - some will show latency increases on low loads others can handle higher load with no problems.",
  457. "tooltip": {
  458. "msResolution": false,
  459. "shared": true,
  460. "sort": 0,
  461. "value_type": "individual"
  462. },
  463. "transparent": false,
  464. "type": "graph",
  465. "xaxis": {
  466. "mode": "time",
  467. "name": null,
  468. "show": true,
  469. "values": []
  470. },
  471. "yaxes": [
  472. {
  473. "format": "short",
  474. "label": "",
  475. "logBase": 1,
  476. "max": null,
  477. "min": 0,
  478. "show": true
  479. },
  480. {
  481. "format": "short",
  482. "label": "",
  483. "logBase": 1,
  484. "max": null,
  485. "min": 0,
  486. "show": true
  487. }
  488. ]
  489. },
  490. {
  491. "aliasColors": {},
  492. "bars": false,
  493. "datasource": "Prometheus",
  494. "decimals": 2,
  495. "editable": true,
  496. "error": false,
  497. "fill": 2,
  498. "grid": {},
  499. "id": 17,
  500. "legend": {
  501. "alignAsTable": true,
  502. "avg": true,
  503. "current": false,
  504. "hideEmpty": false,
  505. "hideZero": true,
  506. "max": true,
  507. "min": true,
  508. "rightSide": true,
  509. "show": true,
  510. "sort": "avg",
  511. "sortDesc": true,
  512. "total": false,
  513. "values": true
  514. },
  515. "lines": true,
  516. "linewidth": 2,
  517. "links": [],
  518. "nullPointMode": "null",
  519. "percentage": false,
  520. "pointradius": 1,
  521. "points": false,
  522. "renderer": "flot",
  523. "seriesOverrides": [],
  524. "span": 12,
  525. "stack": false,
  526. "steppedLine": false,
  527. "targets": [
  528. {
  529. "calculatedInterval": "2m",
  530. "datasourceErrors": {},
  531. "errors": {},
  532. "expr": "rate(node_disk_io_time_ms{device=~\"$device\", instance=\"$host\"}[$interval])/1000 or irate(node_disk_io_time_ms{device=~\"$device\", instance=\"$host\"}[5m])/1000",
  533. "interval": "$interval",
  534. "intervalFactor": 1,
  535. "legendFormat": "{{ device }}",
  536. "metric": "",
  537. "refId": "A",
  538. "step": 300,
  539. "target": ""
  540. }
  541. ],
  542. "thresholds": [],
  543. "timeFrom": null,
  544. "timeShift": null,
  545. "title": "Disk IO Utilization",
  546. "description": "Shows disk Utilization as percent of the time when there was at least one IO request in flight. It is designed to match utilization available in iostat tool. It is not very good measure of true IO Capacity Utilization. Consider looking at IO latency and Disk Load Graphs instead.",
  547. "tooltip": {
  548. "msResolution": false,
  549. "shared": true,
  550. "sort": 0,
  551. "value_type": "individual"
  552. },
  553. "transparent": false,
  554. "type": "graph",
  555. "xaxis": {
  556. "mode": "time",
  557. "name": null,
  558. "show": true,
  559. "values": []
  560. },
  561. "yaxes": [
  562. {
  563. "format": "percentunit",
  564. "label": "",
  565. "logBase": 1,
  566. "max": null,
  567. "min": 0,
  568. "show": true
  569. },
  570. {
  571. "format": "short",
  572. "label": "",
  573. "logBase": 1,
  574. "max": null,
  575. "min": 0,
  576. "show": true
  577. }
  578. ]
  579. },
  580. {
  581. "aliasColors": {},
  582. "bars": false,
  583. "datasource": "Prometheus",
  584. "decimals": 2,
  585. "editable": true,
  586. "error": false,
  587. "fill": 2,
  588. "grid": {},
  589. "id": 18,
  590. "legend": {
  591. "alignAsTable": true,
  592. "avg": true,
  593. "current": false,
  594. "hideEmpty": true,
  595. "hideZero": true,
  596. "max": true,
  597. "min": true,
  598. "rightSide": true,
  599. "show": true,
  600. "total": false,
  601. "values": true
  602. },
  603. "lines": false,
  604. "linewidth": 2,
  605. "links": [],
  606. "nullPointMode": "null",
  607. "percentage": false,
  608. "pointradius": 1,
  609. "points": true,
  610. "renderer": "flot",
  611. "seriesOverrides": [],
  612. "span": 12,
  613. "stack": false,
  614. "steppedLine": false,
  615. "targets": [
  616. {
  617. "calculatedInterval": "2m",
  618. "datasourceErrors": {},
  619. "errors": {},
  620. "expr": "(1 + rate(node_disk_reads_merged{device=~\"$device\", instance=\"$host\"}[$interval]) / rate(node_disk_reads_completed{device=~\"$device\", instance=\"$host\"}[$interval])) or (1 + irate(node_disk_reads_merged{device=~\"$device\", instance=\"$host\"}[5m]) / irate(node_disk_reads_completed{device=~\"$device\", instance=\"$host\"}[5m]))",
  621. "interval": "$interval",
  622. "intervalFactor": 1,
  623. "legendFormat": "Read Ratio: {{ device }}",
  624. "metric": "",
  625. "refId": "A",
  626. "step": 300,
  627. "target": ""
  628. },
  629. {
  630. "calculatedInterval": "2m",
  631. "datasourceErrors": {},
  632. "errors": {},
  633. "expr": "(1 + rate(node_disk_writes_merged{device=~\"$device\", instance=\"$host\"}[$interval]) / rate(node_disk_writes_completed{device=~\"$device\", instance=\"$host\"}[$interval])) or (1 + irate(node_disk_writes_merged{device=~\"$device\", instance=\"$host\"}[5m]) / irate(node_disk_writes_completed{device=~\"$device\", instance=\"$host\"}[5m]))",
  634. "interval": "$interval",
  635. "intervalFactor": 1,
  636. "legendFormat": "Write Ratio: {{ device }}",
  637. "metric": "",
  638. "refId": "B",
  639. "step": 300,
  640. "target": ""
  641. }
  642. ],
  643. "thresholds": [],
  644. "timeFrom": null,
  645. "timeShift": null,
  646. "title": "Disk Operations Merge Ratio",
  647. "description": "Shows how effectively Operating System is able to merge logical IO requests into physical requests. This is a good measure of the IO locality which can be used for workload characterization.",
  648. "tooltip": {
  649. "msResolution": false,
  650. "shared": true,
  651. "sort": 0,
  652. "value_type": "individual"
  653. },
  654. "transparent": false,
  655. "type": "graph",
  656. "xaxis": {
  657. "mode": "time",
  658. "name": null,
  659. "show": true,
  660. "values": []
  661. },
  662. "yaxes": [
  663. {
  664. "format": "short",
  665. "label": "",
  666. "logBase": 1,
  667. "max": null,
  668. "min": 0,
  669. "show": true
  670. },
  671. {
  672. "format": "short",
  673. "label": "",
  674. "logBase": 1,
  675. "max": null,
  676. "min": 0,
  677. "show": true
  678. }
  679. ]
  680. },
  681. {
  682. "aliasColors": {
  683. "Read IO size: sdb": "#2F575E",
  684. "Read: sdb": "#3F6833"
  685. },
  686. "bars": false,
  687. "datasource": "Prometheus",
  688. "decimals": 2,
  689. "editable": true,
  690. "error": false,
  691. "fill": 2,
  692. "grid": {},
  693. "id": 20,
  694. "legend": {
  695. "alignAsTable": true,
  696. "avg": true,
  697. "current": false,
  698. "hideEmpty": true,
  699. "hideZero": true,
  700. "max": true,
  701. "min": true,
  702. "rightSide": true,
  703. "show": true,
  704. "total": false,
  705. "values": true
  706. },
  707. "lines": false,
  708. "linewidth": 2,
  709. "links": [],
  710. "nullPointMode": "null",
  711. "percentage": false,
  712. "pointradius": 1,
  713. "points": true,
  714. "renderer": "flot",
  715. "seriesOverrides": [],
  716. "span": 12,
  717. "stack": false,
  718. "steppedLine": false,
  719. "targets": [
  720. {
  721. "calculatedInterval": "2m",
  722. "datasourceErrors": {},
  723. "errors": {},
  724. "expr": "rate(node_disk_sectors_read{instance=\"$host\", device=~\"$device\"}[$interval]) * 512 / rate(node_disk_reads_completed{instance=\"$host\", device=~\"$device\"}[$interval]) or irate(node_disk_sectors_read{instance=\"$host\", device=~\"$device\"}[5m]) * 512 / irate(node_disk_reads_completed{instance=\"$host\", device=~\"$device\"}[5m]) ",
  725. "interval": "$interval",
  726. "intervalFactor": 1,
  727. "legendFormat": "Read size: {{ device }}",
  728. "metric": "",
  729. "refId": "A",
  730. "step": 300,
  731. "target": ""
  732. },
  733. {
  734. "calculatedInterval": "2m",
  735. "datasourceErrors": {},
  736. "errors": {},
  737. "expr": "rate(node_disk_sectors_written{instance=\"$host\", device=~\"$device\"}[$interval]) * 512 / rate(node_disk_writes_completed{instance=\"$host\", device=~\"$device\"}[$interval]) or irate(node_disk_sectors_written{instance=\"$host\", device=~\"$device\"}[5m]) * 512 / irate(node_disk_writes_completed{instance=\"$host\", device=~\"$device\"}[5m]) ",
  738. "interval": "$interval",
  739. "intervalFactor": 1,
  740. "legendFormat": "Write size: {{ device }}",
  741. "metric": "",
  742. "refId": "B",
  743. "step": 300,
  744. "target": ""
  745. }
  746. ],
  747. "thresholds": [],
  748. "timeFrom": null,
  749. "timeShift": null,
  750. "title": "Disk IO Size",
  751. "description": "Shows average size of a single disk operation.",
  752. "tooltip": {
  753. "msResolution": false,
  754. "shared": true,
  755. "sort": 0,
  756. "value_type": "individual"
  757. },
  758. "transparent": false,
  759. "type": "graph",
  760. "xaxis": {
  761. "mode": "time",
  762. "name": null,
  763. "show": true,
  764. "values": []
  765. },
  766. "yaxes": [
  767. {
  768. "format": "bytes",
  769. "label": "",
  770. "logBase": 1,
  771. "max": null,
  772. "min": 0,
  773. "show": true
  774. },
  775. {
  776. "format": "short",
  777. "label": "",
  778. "logBase": 1,
  779. "max": null,
  780. "min": 0,
  781. "show": true
  782. }
  783. ]
  784. }
  785. ],
  786. "repeat": null,
  787. "repeatIteration": null,
  788. "repeatRowId": null,
  789. "showTitle": false,
  790. "title": "Disk Stats",
  791. "titleSize": "h6"
  792. }
  793. ],
  794. "schemaVersion": 13,
  795. "sharedCrosshair": true,
  796. "style": "dark",
  797. "tags": [
  798. "OS",
  799. "Percona"
  800. ],
  801. "templating": {
  802. "list": [
  803. {
  804. "allFormat": "glob",
  805. "auto": true,
  806. "auto_count": 200,
  807. "auto_min": "1s",
  808. "current": {
  809. "text": "auto",
  810. "value": "$__auto_interval"
  811. },
  812. "datasource": "Prometheus",
  813. "hide": 0,
  814. "includeAll": false,
  815. "label": "Interval",
  816. "multi": false,
  817. "multiFormat": "glob",
  818. "name": "interval",
  819. "options": [
  820. {
  821. "selected": true,
  822. "text": "auto",
  823. "value": "$__auto_interval"
  824. },
  825. {
  826. "selected": false,
  827. "text": "1s",
  828. "value": "1s"
  829. },
  830. {
  831. "selected": false,
  832. "text": "5s",
  833. "value": "5s"
  834. },
  835. {
  836. "selected": false,
  837. "text": "1m",
  838. "value": "1m"
  839. },
  840. {
  841. "selected": false,
  842. "text": "5m",
  843. "value": "5m"
  844. },
  845. {
  846. "selected": false,
  847. "text": "1h",
  848. "value": "1h"
  849. },
  850. {
  851. "selected": false,
  852. "text": "6h",
  853. "value": "6h"
  854. },
  855. {
  856. "selected": false,
  857. "text": "1d",
  858. "value": "1d"
  859. }
  860. ],
  861. "query": "1s,5s,1m,5m,1h,6h,1d",
  862. "refresh": 2,
  863. "type": "interval"
  864. },
  865. {
  866. "allFormat": "glob",
  867. "allValue": null,
  868. "datasource": "Prometheus",
  869. "hide": 0,
  870. "includeAll": false,
  871. "label": "Host",
  872. "multi": false,
  873. "multiFormat": "regex values",
  874. "name": "host",
  875. "query": "label_values(node_disk_reads_completed, instance)",
  876. "refresh": 1,
  877. "refresh_on_load": false,
  878. "regex": "",
  879. "sort": 1,
  880. "tagValuesQuery": "instance",
  881. "tagsQuery": "up",
  882. "type": "query",
  883. "useTags": false
  884. },
  885. {
  886. "allFormat": "glob",
  887. "allValue": null,
  888. "datasource": "Prometheus",
  889. "hide": 0,
  890. "includeAll": true,
  891. "label": "Device",
  892. "multi": true,
  893. "multiFormat": "regex values",
  894. "name": "device",
  895. "query": "label_values(node_disk_reads_completed{instance=\"$host\", device!~\"dm-.+\"}, device)",
  896. "refresh": 1,
  897. "refresh_on_load": false,
  898. "regex": "",
  899. "sort": 1,
  900. "tagValuesQuery": "instance",
  901. "tagsQuery": "up",
  902. "type": "query",
  903. "useTags": false
  904. }
  905. ]
  906. },
  907. "time": {
  908. "from": "now-12h",
  909. "to": "now"
  910. },
  911. "timepicker": {
  912. "collapse": false,
  913. "enable": true,
  914. "notice": false,
  915. "now": true,
  916. "refresh_intervals": [
  917. "5s",
  918. "10s",
  919. "30s",
  920. "1m",
  921. "5m",
  922. "15m",
  923. "30m",
  924. "1h",
  925. "2h",
  926. "1d"
  927. ],
  928. "status": "Stable",
  929. "time_options": [
  930. "5m",
  931. "15m",
  932. "1h",
  933. "6h",
  934. "12h",
  935. "24h",
  936. "2d",
  937. "7d",
  938. "30d"
  939. ],
  940. "type": "timepicker"
  941. },
  942. "timezone": "browser",
  943. "title": "Disk Performance",
  944. "version": 0
  945. }