spanmetrics-dashboard.json 25 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003
  1. {
  2. "annotations": {
  3. "list": [
  4. {
  5. "builtIn": 1,
  6. "datasource": {
  7. "type": "grafana",
  8. "uid": "-- Grafana --"
  9. },
  10. "enable": true,
  11. "hide": true,
  12. "iconColor": "rgba(0, 211, 255, 1)",
  13. "name": "Annotations & Alerts",
  14. "target": {
  15. "limit": 100,
  16. "matchAny": false,
  17. "tags": [],
  18. "type": "dashboard"
  19. },
  20. "type": "dashboard"
  21. }
  22. ]
  23. },
  24. "description": "Spanmetrics way of demo application view.",
  25. "author": {
  26. "name": "devrimdemiroz"
  27. },
  28. "editable": true,
  29. "fiscalYearStartMonth": 0,
  30. "graphTooltip": 0,
  31. "links": [],
  32. "liveNow": false,
  33. "panels": [
  34. {
  35. "collapsed": false,
  36. "gridPos": {
  37. "h": 1,
  38. "w": 24,
  39. "x": 0,
  40. "y": 0
  41. },
  42. "id": 24,
  43. "panels": [],
  44. "title": "Service Level - Throughput and Latencies",
  45. "type": "row"
  46. },
  47. {
  48. "datasource": {
  49. "type": "prometheus",
  50. "uid": "webstore-metrics"
  51. },
  52. "fieldConfig": {
  53. "defaults": {
  54. "color": {
  55. "mode": "continuous-BlYlRd"
  56. },
  57. "mappings": [],
  58. "thresholds": {
  59. "mode": "absolute",
  60. "steps": [
  61. {
  62. "color": "blue",
  63. "value": null
  64. },
  65. {
  66. "color": "green",
  67. "value": 2
  68. },
  69. {
  70. "color": "#EAB839",
  71. "value": 64
  72. },
  73. {
  74. "color": "orange",
  75. "value": 128
  76. },
  77. {
  78. "color": "red",
  79. "value": 256
  80. }
  81. ]
  82. },
  83. "unit": "ms"
  84. },
  85. "overrides": []
  86. },
  87. "gridPos": {
  88. "h": 20,
  89. "w": 12,
  90. "x": 0,
  91. "y": 1
  92. },
  93. "id": 2,
  94. "interval": "5m",
  95. "options": {
  96. "orientation": "auto",
  97. "reduceOptions": {
  98. "calcs": [
  99. "lastNotNull"
  100. ],
  101. "fields": "",
  102. "values": false
  103. },
  104. "showThresholdLabels": false,
  105. "showThresholdMarkers": true
  106. },
  107. "pluginVersion": "9.1.0",
  108. "targets": [
  109. {
  110. "datasource": {
  111. "type": "prometheus",
  112. "uid": "webstore-metrics"
  113. },
  114. "editorMode": "code",
  115. "exemplar": false,
  116. "expr": "topk(7,histogram_quantile(0.50, sum(rate(duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval])) by (le,service_name)))",
  117. "format": "time_series",
  118. "hide": true,
  119. "instant": false,
  120. "interval": "",
  121. "legendFormat": "{{service_name}}-quantile_0.50",
  122. "range": true,
  123. "refId": "A"
  124. },
  125. {
  126. "datasource": {
  127. "type": "prometheus",
  128. "uid": "webstore-metrics"
  129. },
  130. "editorMode": "code",
  131. "exemplar": false,
  132. "expr": "topk(7,histogram_quantile(0.95, sum(rate(duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__range])) by (le,service_name)))",
  133. "hide": false,
  134. "instant": true,
  135. "interval": "",
  136. "legendFormat": "{{le}} - {{service_name}}",
  137. "range": false,
  138. "refId": "B"
  139. },
  140. {
  141. "datasource": {
  142. "type": "prometheus",
  143. "uid": "webstore-metrics"
  144. },
  145. "editorMode": "code",
  146. "exemplar": false,
  147. "expr": "histogram_quantile(0.99, sum(rate(duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval])) by (le,service_name))",
  148. "hide": true,
  149. "interval": "",
  150. "legendFormat": "quantile99",
  151. "range": true,
  152. "refId": "C"
  153. },
  154. {
  155. "datasource": {
  156. "type": "prometheus",
  157. "uid": "webstore-metrics"
  158. },
  159. "editorMode": "code",
  160. "exemplar": false,
  161. "expr": "histogram_quantile(0.999, sum(rate(duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval])) by (le,service_name))",
  162. "hide": true,
  163. "interval": "",
  164. "legendFormat": "quantile999",
  165. "range": true,
  166. "refId": "D"
  167. }
  168. ],
  169. "title": "Top 3x3 - Service Latency - quantile95",
  170. "type": "gauge"
  171. },
  172. {
  173. "datasource": {
  174. "type": "prometheus",
  175. "uid": "webstore-metrics"
  176. },
  177. "fieldConfig": {
  178. "defaults": {
  179. "color": {
  180. "mode": "continuous-BlYlRd"
  181. },
  182. "decimals": 2,
  183. "mappings": [],
  184. "thresholds": {
  185. "mode": "absolute",
  186. "steps": [
  187. {
  188. "color": "green",
  189. "value": null
  190. },
  191. {
  192. "color": "super-light-blue",
  193. "value": 1
  194. },
  195. {
  196. "color": "#EAB839",
  197. "value": 2
  198. },
  199. {
  200. "color": "red",
  201. "value": 10
  202. }
  203. ]
  204. },
  205. "unit": "reqps"
  206. },
  207. "overrides": []
  208. },
  209. "gridPos": {
  210. "h": 13,
  211. "w": 12,
  212. "x": 12,
  213. "y": 1
  214. },
  215. "id": 4,
  216. "interval": "5m",
  217. "options": {
  218. "displayMode": "lcd",
  219. "minVizHeight": 10,
  220. "minVizWidth": 0,
  221. "orientation": "horizontal",
  222. "reduceOptions": {
  223. "calcs": [
  224. "mean"
  225. ],
  226. "fields": "",
  227. "values": false
  228. },
  229. "showUnfilled": true,
  230. "text": {}
  231. },
  232. "pluginVersion": "9.1.0",
  233. "targets": [
  234. {
  235. "datasource": {
  236. "type": "prometheus",
  237. "uid": "webstore-metrics"
  238. },
  239. "editorMode": "code",
  240. "exemplar": false,
  241. "expr": "topk(7,sum by (service_name) (rate(calls_total{service_name=~\"$service\", span_name=~\"$span_name\"}[$__range])))",
  242. "format": "time_series",
  243. "instant": true,
  244. "interval": "",
  245. "legendFormat": "{{service_name}}",
  246. "range": false,
  247. "refId": "A"
  248. }
  249. ],
  250. "title": "Top 7 Services Mean Rate over Range",
  251. "transformations": [],
  252. "type": "bargauge"
  253. },
  254. {
  255. "datasource": {
  256. "type": "prometheus",
  257. "uid": "webstore-metrics"
  258. },
  259. "fieldConfig": {
  260. "defaults": {
  261. "color": {
  262. "mode": "continuous-reds"
  263. },
  264. "decimals": 4,
  265. "mappings": [],
  266. "thresholds": {
  267. "mode": "absolute",
  268. "steps": [
  269. {
  270. "color": "green",
  271. "value": null
  272. },
  273. {
  274. "color": "#EAB839",
  275. "value": 1
  276. },
  277. {
  278. "color": "red",
  279. "value": 15
  280. }
  281. ]
  282. },
  283. "unit": "reqps"
  284. },
  285. "overrides": []
  286. },
  287. "gridPos": {
  288. "h": 7,
  289. "w": 12,
  290. "x": 12,
  291. "y": 14
  292. },
  293. "id": 15,
  294. "interval": "5m",
  295. "options": {
  296. "displayMode": "lcd",
  297. "minVizHeight": 10,
  298. "minVizWidth": 0,
  299. "orientation": "vertical",
  300. "reduceOptions": {
  301. "calcs": [
  302. "mean"
  303. ],
  304. "fields": "",
  305. "values": false
  306. },
  307. "showUnfilled": true,
  308. "text": {}
  309. },
  310. "pluginVersion": "9.1.0",
  311. "targets": [
  312. {
  313. "datasource": {
  314. "type": "prometheus",
  315. "uid": "webstore-metrics"
  316. },
  317. "editorMode": "code",
  318. "exemplar": false,
  319. "expr": "topk(7,sum(rate(calls_total{status_code=\"STATUS_CODE_ERROR\",service_name=~\"$service\", span_name=~\"$span_name\"}[$__range])) by (service_name))",
  320. "instant": true,
  321. "interval": "",
  322. "legendFormat": "{{service_name}}",
  323. "range": false,
  324. "refId": "A"
  325. }
  326. ],
  327. "title": "Top 7 Services Mean ERROR Rate over Range",
  328. "transformations": [],
  329. "type": "bargauge"
  330. },
  331. {
  332. "collapsed": false,
  333. "datasource": {
  334. "type": "prometheus",
  335. "uid": "webstore-metrics"
  336. },
  337. "gridPos": {
  338. "h": 1,
  339. "w": 24,
  340. "x": 0,
  341. "y": 21
  342. },
  343. "id": 14,
  344. "panels": [],
  345. "targets": [
  346. {
  347. "datasource": {
  348. "type": "prometheus",
  349. "uid": "webstore-metrics"
  350. },
  351. "refId": "A"
  352. }
  353. ],
  354. "title": "span_names Level - Throughput",
  355. "type": "row"
  356. },
  357. {
  358. "datasource": {
  359. "type": "prometheus",
  360. "uid": "webstore-metrics"
  361. },
  362. "description": "",
  363. "fieldConfig": {
  364. "defaults": {
  365. "color": {
  366. "mode": "thresholds"
  367. },
  368. "custom": {
  369. "align": "auto",
  370. "displayMode": "auto",
  371. "inspect": false
  372. },
  373. "decimals": 2,
  374. "mappings": [],
  375. "thresholds": {
  376. "mode": "absolute",
  377. "steps": [
  378. {
  379. "color": "green",
  380. "value": null
  381. },
  382. {
  383. "color": "red",
  384. "value": 80
  385. }
  386. ]
  387. },
  388. "unit": "reqps"
  389. },
  390. "overrides": [
  391. {
  392. "matcher": {
  393. "id": "byName",
  394. "options": "bRate"
  395. },
  396. "properties": [
  397. {
  398. "id": "custom.displayMode",
  399. "value": "lcd-gauge"
  400. },
  401. {
  402. "id": "color",
  403. "value": {
  404. "mode": "continuous-BlYlRd"
  405. }
  406. }
  407. ]
  408. },
  409. {
  410. "matcher": {
  411. "id": "byName",
  412. "options": "eRate"
  413. },
  414. "properties": [
  415. {
  416. "id": "custom.displayMode",
  417. "value": "lcd-gauge"
  418. },
  419. {
  420. "id": "color",
  421. "value": {
  422. "mode": "continuous-RdYlGr"
  423. }
  424. }
  425. ]
  426. },
  427. {
  428. "matcher": {
  429. "id": "byName",
  430. "options": "Error Rate"
  431. },
  432. "properties": [
  433. {
  434. "id": "custom.width",
  435. "value": 663
  436. }
  437. ]
  438. },
  439. {
  440. "matcher": {
  441. "id": "byName",
  442. "options": "Rate"
  443. },
  444. "properties": [
  445. {
  446. "id": "custom.width",
  447. "value": 667
  448. }
  449. ]
  450. },
  451. {
  452. "matcher": {
  453. "id": "byName",
  454. "options": "Service"
  455. },
  456. "properties": [
  457. {
  458. "id": "custom.width",
  459. "value": null
  460. }
  461. ]
  462. }
  463. ]
  464. },
  465. "gridPos": {
  466. "h": 11,
  467. "w": 24,
  468. "x": 0,
  469. "y": 22
  470. },
  471. "id": 22,
  472. "interval": "5m",
  473. "options": {
  474. "footer": {
  475. "fields": "",
  476. "reducer": [
  477. "sum"
  478. ],
  479. "show": false
  480. },
  481. "showHeader": true,
  482. "sortBy": []
  483. },
  484. "pluginVersion": "9.1.0",
  485. "targets": [
  486. {
  487. "datasource": {
  488. "type": "prometheus",
  489. "uid": "webstore-metrics"
  490. },
  491. "exemplar": false,
  492. "expr": "topk(7, sum(rate(calls_total{service_name=~\"$service\", span_name=~\"$span_name\"}[$__range])) by (span_name,service_name)) ",
  493. "format": "table",
  494. "instant": true,
  495. "interval": "",
  496. "legendFormat": "",
  497. "refId": "Rate"
  498. },
  499. {
  500. "datasource": {
  501. "type": "prometheus",
  502. "uid": "webstore-metrics"
  503. },
  504. "exemplar": false,
  505. "expr": "topk(7, sum(rate(calls_total{status_code=\"STATUS_CODE_ERROR\",service_name=~\"$service\", span_name=~\"$span_name\"}[$__range])) by (span_name,service_name))",
  506. "format": "table",
  507. "hide": false,
  508. "instant": true,
  509. "interval": "",
  510. "legendFormat": "",
  511. "refId": "Error Rate"
  512. }
  513. ],
  514. "title": "Top 7 span_names and Errors (APM Table)",
  515. "transformations": [
  516. {
  517. "id": "seriesToColumns",
  518. "options": {
  519. "byField": "span_name"
  520. }
  521. },
  522. {
  523. "id": "organize",
  524. "options": {
  525. "excludeByName": {
  526. "Time 1": true,
  527. "Time 2": true
  528. },
  529. "indexByName": {},
  530. "renameByName": {
  531. "Value #Error Rate": "Error Rate",
  532. "Value #Rate": "Rate",
  533. "service_name 1": "Rate in Service",
  534. "service_name 2": "Error Rate in Service"
  535. }
  536. }
  537. },
  538. {
  539. "id": "calculateField",
  540. "options": {
  541. "alias": "bRate",
  542. "mode": "reduceRow",
  543. "reduce": {
  544. "include": [
  545. "Rate"
  546. ],
  547. "reducer": "sum"
  548. }
  549. }
  550. },
  551. {
  552. "id": "calculateField",
  553. "options": {
  554. "alias": "eRate",
  555. "mode": "reduceRow",
  556. "reduce": {
  557. "include": [
  558. "Error Rate"
  559. ],
  560. "reducer": "sum"
  561. }
  562. }
  563. },
  564. {
  565. "id": "organize",
  566. "options": {
  567. "excludeByName": {
  568. "Error Rate": true,
  569. "Rate": true,
  570. "bRate": false
  571. },
  572. "indexByName": {
  573. "Error Rate": 4,
  574. "Error Rate in Service": 6,
  575. "Rate": 1,
  576. "Rate in Service": 5,
  577. "bRate": 2,
  578. "eRate": 3,
  579. "span_name": 0
  580. },
  581. "renameByName": {
  582. "Rate in Service": "Service",
  583. "bRate": "Rate",
  584. "eRate": "Error Rate",
  585. "span_name": "span_name Name"
  586. }
  587. }
  588. },
  589. {
  590. "id": "sortBy",
  591. "options": {
  592. "fields": {},
  593. "sort": [
  594. {
  595. "desc": true,
  596. "field": "Rate"
  597. }
  598. ]
  599. }
  600. }
  601. ],
  602. "type": "table"
  603. },
  604. {
  605. "collapsed": false,
  606. "datasource": {
  607. "type": "prometheus",
  608. "uid": "webstore-metrics"
  609. },
  610. "gridPos": {
  611. "h": 1,
  612. "w": 24,
  613. "x": 0,
  614. "y": 33
  615. },
  616. "id": 20,
  617. "panels": [],
  618. "targets": [
  619. {
  620. "datasource": {
  621. "type": "prometheus",
  622. "uid": "webstore-metrics"
  623. },
  624. "refId": "A"
  625. }
  626. ],
  627. "title": "span_name Level - Latencies",
  628. "type": "row"
  629. },
  630. {
  631. "datasource": {
  632. "type": "prometheus",
  633. "uid": "webstore-metrics"
  634. },
  635. "fieldConfig": {
  636. "defaults": {
  637. "color": {
  638. "mode": "continuous-BlYlRd"
  639. },
  640. "mappings": [],
  641. "thresholds": {
  642. "mode": "absolute",
  643. "steps": [
  644. {
  645. "color": "blue",
  646. "value": null
  647. },
  648. {
  649. "color": "green",
  650. "value": 2
  651. },
  652. {
  653. "color": "#EAB839",
  654. "value": 64
  655. },
  656. {
  657. "color": "orange",
  658. "value": 128
  659. },
  660. {
  661. "color": "red",
  662. "value": 256
  663. }
  664. ]
  665. },
  666. "unit": "ms"
  667. },
  668. "overrides": []
  669. },
  670. "gridPos": {
  671. "h": 13,
  672. "w": 12,
  673. "x": 0,
  674. "y": 34
  675. },
  676. "id": 25,
  677. "interval": "5m",
  678. "options": {
  679. "orientation": "auto",
  680. "reduceOptions": {
  681. "calcs": [
  682. "lastNotNull"
  683. ],
  684. "fields": "",
  685. "values": false
  686. },
  687. "showThresholdLabels": false,
  688. "showThresholdMarkers": true
  689. },
  690. "pluginVersion": "9.1.0",
  691. "targets": [
  692. {
  693. "datasource": {
  694. "type": "prometheus",
  695. "uid": "webstore-metrics"
  696. },
  697. "editorMode": "code",
  698. "exemplar": false,
  699. "expr": "topk(7,histogram_quantile(0.50, sum(rate(duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval])) by (le,service_name)))",
  700. "format": "time_series",
  701. "hide": true,
  702. "instant": false,
  703. "interval": "",
  704. "legendFormat": "{{service_name}}-quantile_0.50",
  705. "range": true,
  706. "refId": "A"
  707. },
  708. {
  709. "datasource": {
  710. "type": "prometheus",
  711. "uid": "webstore-metrics"
  712. },
  713. "editorMode": "code",
  714. "exemplar": false,
  715. "expr": "topk(7,histogram_quantile(0.95, sum(rate(duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__range])) by (le,span_name)))",
  716. "hide": false,
  717. "instant": true,
  718. "interval": "",
  719. "legendFormat": "{{span_name}}",
  720. "range": false,
  721. "refId": "B"
  722. },
  723. {
  724. "datasource": {
  725. "type": "prometheus",
  726. "uid": "webstore-metrics"
  727. },
  728. "editorMode": "code",
  729. "exemplar": false,
  730. "expr": "histogram_quantile(0.99, sum(rate(duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval])) by (le,service_name))",
  731. "hide": true,
  732. "interval": "",
  733. "legendFormat": "quantile99",
  734. "range": true,
  735. "refId": "C"
  736. },
  737. {
  738. "datasource": {
  739. "type": "prometheus",
  740. "uid": "webstore-metrics"
  741. },
  742. "editorMode": "code",
  743. "exemplar": false,
  744. "expr": "histogram_quantile(0.999, sum(rate(duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval])) by (le,service_name))",
  745. "hide": true,
  746. "interval": "",
  747. "legendFormat": "quantile999",
  748. "range": true,
  749. "refId": "D"
  750. }
  751. ],
  752. "title": "Top 3x3 - span_name Latency - quantile95",
  753. "type": "gauge"
  754. },
  755. {
  756. "datasource": {
  757. "type": "prometheus",
  758. "uid": "webstore-metrics"
  759. },
  760. "fieldConfig": {
  761. "defaults": {
  762. "color": {
  763. "mode": "continuous-BlYlRd"
  764. },
  765. "decimals": 2,
  766. "mappings": [],
  767. "thresholds": {
  768. "mode": "absolute",
  769. "steps": [
  770. {
  771. "color": "green",
  772. "value": null
  773. },
  774. {
  775. "color": "red",
  776. "value": 80
  777. }
  778. ]
  779. },
  780. "unit": "ms"
  781. },
  782. "overrides": []
  783. },
  784. "gridPos": {
  785. "h": 13,
  786. "w": 12,
  787. "x": 12,
  788. "y": 34
  789. },
  790. "id": 10,
  791. "interval": "5m",
  792. "options": {
  793. "displayMode": "lcd",
  794. "minVizHeight": 10,
  795. "minVizWidth": 0,
  796. "orientation": "horizontal",
  797. "reduceOptions": {
  798. "calcs": [
  799. "mean"
  800. ],
  801. "fields": "",
  802. "values": false
  803. },
  804. "showUnfilled": true
  805. },
  806. "pluginVersion": "9.1.0",
  807. "targets": [
  808. {
  809. "datasource": {
  810. "type": "prometheus",
  811. "uid": "webstore-metrics"
  812. },
  813. "editorMode": "code",
  814. "exemplar": false,
  815. "expr": "topk(7, sum by (span_name,service_name)(increase(duration_milliseconds_sum{service_name=~\"${service}\", span_name=~\"$span_name\"}[5m]) / increase(duration_milliseconds_count{service_name=~\"${service}\",span_name=~\"$span_name\"}[5m\n])))",
  816. "instant": true,
  817. "interval": "",
  818. "legendFormat": "{{span_name}} [{{service_name}}]",
  819. "range": false,
  820. "refId": "A"
  821. }
  822. ],
  823. "title": "Top 7 Highest Endpoint Latencies Mean Over Range ",
  824. "transformations": [],
  825. "type": "bargauge"
  826. },
  827. {
  828. "datasource": {
  829. "type": "prometheus",
  830. "uid": "webstore-metrics"
  831. },
  832. "fieldConfig": {
  833. "defaults": {
  834. "color": {
  835. "mode": "palette-classic"
  836. },
  837. "custom": {
  838. "axisCenteredZero": false,
  839. "axisColorMode": "text",
  840. "axisLabel": "",
  841. "axisPlacement": "auto",
  842. "barAlignment": 0,
  843. "drawStyle": "line",
  844. "fillOpacity": 15,
  845. "gradientMode": "none",
  846. "hideFrom": {
  847. "legend": false,
  848. "tooltip": false,
  849. "viz": false
  850. },
  851. "lineInterpolation": "smooth",
  852. "lineWidth": 1,
  853. "pointSize": 5,
  854. "scaleDistribution": {
  855. "type": "linear"
  856. },
  857. "showPoints": "auto",
  858. "spanNulls": false,
  859. "stacking": {
  860. "group": "A",
  861. "mode": "none"
  862. },
  863. "thresholdsStyle": {
  864. "mode": "off"
  865. }
  866. },
  867. "mappings": [],
  868. "thresholds": {
  869. "mode": "absolute",
  870. "steps": [
  871. {
  872. "color": "green",
  873. "value": null
  874. },
  875. {
  876. "color": "red",
  877. "value": 80
  878. }
  879. ]
  880. },
  881. "unit": "ms"
  882. },
  883. "overrides": []
  884. },
  885. "gridPos": {
  886. "h": 12,
  887. "w": 24,
  888. "x": 0,
  889. "y": 47
  890. },
  891. "id": 16,
  892. "interval": "5m",
  893. "options": {
  894. "legend": {
  895. "calcs": [
  896. "mean",
  897. "logmin",
  898. "max",
  899. "delta"
  900. ],
  901. "displayMode": "table",
  902. "placement": "bottom",
  903. "showLegend": true
  904. },
  905. "tooltip": {
  906. "mode": "single",
  907. "sort": "none"
  908. }
  909. },
  910. "pluginVersion": "8.4.7",
  911. "targets": [
  912. {
  913. "datasource": {
  914. "type": "prometheus",
  915. "uid": "webstore-metrics"
  916. },
  917. "editorMode": "code",
  918. "exemplar": true,
  919. "expr": "topk(7,sum by (span_name,service_name)(increase(duration_milliseconds_sum{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval]) / increase(duration_milliseconds_count{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval])))",
  920. "instant": false,
  921. "interval": "",
  922. "legendFormat": "[{{service_name}}] {{span_name}}",
  923. "range": true,
  924. "refId": "A"
  925. }
  926. ],
  927. "title": "Top 7 Latencies Over Range ",
  928. "type": "timeseries"
  929. }
  930. ],
  931. "refresh": "5m",
  932. "schemaVersion": 37,
  933. "style": "dark",
  934. "tags": [],
  935. "templating": {
  936. "list": [
  937. {
  938. "allValue": ".*",
  939. "current": {
  940. "selected": false,
  941. "text": "All",
  942. "value": "$__all"
  943. },
  944. "datasource": {
  945. "type": "prometheus",
  946. "uid": "webstore-metrics"
  947. },
  948. "definition": "query_result(count by (service_name)(count_over_time(calls_total[$__range])))",
  949. "hide": 0,
  950. "includeAll": true,
  951. "multi": true,
  952. "name": "service",
  953. "options": [],
  954. "query": {
  955. "query": "query_result(count by (service_name)(count_over_time(calls_total[$__range])))",
  956. "refId": "StandardVariableQuery"
  957. },
  958. "refresh": 2,
  959. "regex": "/.*service_name=\"(.*)\".*/",
  960. "skipUrlSync": false,
  961. "sort": 1,
  962. "type": "query"
  963. },
  964. {
  965. "allValue": ".*",
  966. "current": {
  967. "selected": false,
  968. "text": "All",
  969. "value": "$__all"
  970. },
  971. "datasource": {
  972. "type": "prometheus",
  973. "uid": "webstore-metrics"
  974. },
  975. "definition": "query_result(sum ({__name__=~\".*calls_total\",service_name=~\"$service\"}) by (span_name))",
  976. "hide": 0,
  977. "includeAll": true,
  978. "multi": true,
  979. "name": "span_name",
  980. "options": [],
  981. "query": {
  982. "query": "query_result(sum ({__name__=~\".*calls_total\",service_name=~\"$service\"}) by (span_name))",
  983. "refId": "StandardVariableQuery"
  984. },
  985. "refresh": 2,
  986. "regex": "/.*span_name=\"(.*)\".*/",
  987. "skipUrlSync": false,
  988. "sort": 0,
  989. "type": "query"
  990. }
  991. ]
  992. },
  993. "time": {
  994. "from": "now-1h",
  995. "to": "now"
  996. },
  997. "timepicker": {},
  998. "timezone": "",
  999. "title": "Spanmetrics Demo Dashboard",
  1000. "uid": "W2gX2zHVk48",
  1001. "version": 1,
  1002. "weekStart": ""
  1003. }