nginx.json 41 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631
  1. {
  2. "__inputs": [
  3. {
  4. "name": "DS_PROMETHEUS",
  5. "label": "Prometheus",
  6. "description": "",
  7. "type": "datasource",
  8. "pluginId": "prometheus",
  9. "pluginName": "Prometheus"
  10. }
  11. ],
  12. "__requires": [
  13. {
  14. "type": "grafana",
  15. "id": "grafana",
  16. "name": "Grafana",
  17. "version": "5.2.1"
  18. },
  19. {
  20. "type": "datasource",
  21. "id": "prometheus",
  22. "name": "Prometheus",
  23. "version": "5.0.0"
  24. },
  25. {
  26. "type": "panel",
  27. "id": "singlestat",
  28. "name": "Singlestat",
  29. "version": "5.0.0"
  30. }
  31. ],
  32. "annotations": {
  33. "list": [
  34. {
  35. "builtIn": 1,
  36. "datasource": "-- Grafana --",
  37. "enable": true,
  38. "hide": true,
  39. "iconColor": "rgba(0, 211, 255, 1)",
  40. "name": "Annotations & Alerts",
  41. "type": "dashboard"
  42. },
  43. {
  44. "datasource": "${DS_PROMETHEUS}",
  45. "enable": true,
  46. "expr": "sum(changes(nginx_ingress_controller_config_last_reload_successful_timestamp_seconds{instance!=\"unknown\",controller_class=~\"$controller_class\",namespace=~\"$namespace\"}[30s])) by (controller_class)",
  47. "hide": false,
  48. "iconColor": "rgba(255, 96, 96, 1)",
  49. "limit": 100,
  50. "name": "Config Reloads",
  51. "showIn": 0,
  52. "step": "30s",
  53. "tagKeys": "controller_class",
  54. "tags": [],
  55. "titleFormat": "Config Reloaded",
  56. "type": "tags"
  57. }
  58. ]
  59. },
  60. "editable": true,
  61. "gnetId": null,
  62. "graphTooltip": 0,
  63. "iteration": 1534359654832,
  64. "links": [],
  65. "panels": [
  66. {
  67. "cacheTimeout": null,
  68. "colorBackground": false,
  69. "colorValue": false,
  70. "colors": [
  71. "rgba(245, 54, 54, 0.9)",
  72. "rgba(237, 129, 40, 0.89)",
  73. "rgba(50, 172, 45, 0.97)"
  74. ],
  75. "datasource": "${DS_PROMETHEUS}",
  76. "format": "ops",
  77. "gauge": {
  78. "maxValue": 100,
  79. "minValue": 0,
  80. "show": false,
  81. "thresholdLabels": false,
  82. "thresholdMarkers": true
  83. },
  84. "gridPos": {
  85. "h": 3,
  86. "w": 6,
  87. "x": 0,
  88. "y": 0
  89. },
  90. "id": 20,
  91. "interval": null,
  92. "links": [],
  93. "mappingType": 1,
  94. "mappingTypes": [
  95. {
  96. "name": "value to text",
  97. "value": 1
  98. },
  99. {
  100. "name": "range to text",
  101. "value": 2
  102. }
  103. ],
  104. "maxDataPoints": 100,
  105. "nullPointMode": "connected",
  106. "nullText": null,
  107. "postfix": "",
  108. "postfixFontSize": "50%",
  109. "prefix": "",
  110. "prefixFontSize": "50%",
  111. "rangeMaps": [
  112. {
  113. "from": "null",
  114. "text": "N/A",
  115. "to": "null"
  116. }
  117. ],
  118. "sparkline": {
  119. "fillColor": "rgba(31, 118, 189, 0.18)",
  120. "full": true,
  121. "lineColor": "rgb(31, 120, 193)",
  122. "show": true
  123. },
  124. "tableColumn": "",
  125. "targets": [
  126. {
  127. "expr": "round(sum(irate(nginx_ingress_controller_requests{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",namespace=~\"$namespace\"}[2m])), 0.001)",
  128. "format": "time_series",
  129. "intervalFactor": 1,
  130. "refId": "A",
  131. "step": 4
  132. }
  133. ],
  134. "thresholds": "",
  135. "title": "Controller Request Volume",
  136. "transparent": false,
  137. "type": "singlestat",
  138. "valueFontSize": "80%",
  139. "valueMaps": [
  140. {
  141. "op": "=",
  142. "text": "N/A",
  143. "value": "null"
  144. }
  145. ],
  146. "valueName": "avg"
  147. },
  148. {
  149. "cacheTimeout": null,
  150. "colorBackground": false,
  151. "colorValue": false,
  152. "colors": [
  153. "rgba(245, 54, 54, 0.9)",
  154. "rgba(237, 129, 40, 0.89)",
  155. "rgba(50, 172, 45, 0.97)"
  156. ],
  157. "datasource": "${DS_PROMETHEUS}",
  158. "format": "none",
  159. "gauge": {
  160. "maxValue": 100,
  161. "minValue": 0,
  162. "show": false,
  163. "thresholdLabels": false,
  164. "thresholdMarkers": true
  165. },
  166. "gridPos": {
  167. "h": 3,
  168. "w": 6,
  169. "x": 6,
  170. "y": 0
  171. },
  172. "id": 82,
  173. "interval": null,
  174. "links": [],
  175. "mappingType": 1,
  176. "mappingTypes": [
  177. {
  178. "name": "value to text",
  179. "value": 1
  180. },
  181. {
  182. "name": "range to text",
  183. "value": 2
  184. }
  185. ],
  186. "maxDataPoints": 100,
  187. "nullPointMode": "connected",
  188. "nullText": null,
  189. "postfix": "",
  190. "postfixFontSize": "50%",
  191. "prefix": "",
  192. "prefixFontSize": "50%",
  193. "rangeMaps": [
  194. {
  195. "from": "null",
  196. "text": "N/A",
  197. "to": "null"
  198. }
  199. ],
  200. "sparkline": {
  201. "fillColor": "rgba(31, 118, 189, 0.18)",
  202. "full": true,
  203. "lineColor": "rgb(31, 120, 193)",
  204. "show": true
  205. },
  206. "tableColumn": "",
  207. "targets": [
  208. {
  209. "expr": "sum(avg_over_time(nginx_ingress_controller_nginx_process_connections{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",state=\"active\"}[2m]))",
  210. "format": "time_series",
  211. "instant": false,
  212. "intervalFactor": 1,
  213. "refId": "A",
  214. "step": 4
  215. }
  216. ],
  217. "thresholds": "",
  218. "title": "Controller Connections",
  219. "transparent": false,
  220. "type": "singlestat",
  221. "valueFontSize": "80%",
  222. "valueMaps": [
  223. {
  224. "op": "=",
  225. "text": "N/A",
  226. "value": "null"
  227. }
  228. ],
  229. "valueName": "avg"
  230. },
  231. {
  232. "cacheTimeout": null,
  233. "colorBackground": false,
  234. "colorValue": false,
  235. "colors": [
  236. "rgba(245, 54, 54, 0.9)",
  237. "rgba(237, 129, 40, 0.89)",
  238. "rgba(50, 172, 45, 0.97)"
  239. ],
  240. "datasource": "${DS_PROMETHEUS}",
  241. "format": "percentunit",
  242. "gauge": {
  243. "maxValue": 100,
  244. "minValue": 80,
  245. "show": false,
  246. "thresholdLabels": false,
  247. "thresholdMarkers": false
  248. },
  249. "gridPos": {
  250. "h": 3,
  251. "w": 6,
  252. "x": 12,
  253. "y": 0
  254. },
  255. "id": 21,
  256. "interval": null,
  257. "links": [],
  258. "mappingType": 1,
  259. "mappingTypes": [
  260. {
  261. "name": "value to text",
  262. "value": 1
  263. },
  264. {
  265. "name": "range to text",
  266. "value": 2
  267. }
  268. ],
  269. "maxDataPoints": 100,
  270. "nullPointMode": "connected",
  271. "nullText": null,
  272. "postfix": "",
  273. "postfixFontSize": "50%",
  274. "prefix": "",
  275. "prefixFontSize": "50%",
  276. "rangeMaps": [
  277. {
  278. "from": "null",
  279. "text": "N/A",
  280. "to": "null"
  281. }
  282. ],
  283. "sparkline": {
  284. "fillColor": "rgba(31, 118, 189, 0.18)",
  285. "full": true,
  286. "lineColor": "rgb(31, 120, 193)",
  287. "show": true
  288. },
  289. "tableColumn": "",
  290. "targets": [
  291. {
  292. "expr": "sum(rate(nginx_ingress_controller_requests{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",namespace=~\"$namespace\",status!~\"[4-5].*\"}[2m])) / sum(rate(nginx_ingress_controller_requests{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",namespace=~\"$namespace\"}[2m]))",
  293. "format": "time_series",
  294. "intervalFactor": 1,
  295. "refId": "A",
  296. "step": 4
  297. }
  298. ],
  299. "thresholds": "95, 99, 99.5",
  300. "title": "Controller Success Rate (non-4|5xx responses)",
  301. "transparent": false,
  302. "type": "singlestat",
  303. "valueFontSize": "80%",
  304. "valueMaps": [
  305. {
  306. "op": "=",
  307. "text": "N/A",
  308. "value": "null"
  309. }
  310. ],
  311. "valueName": "avg"
  312. },
  313. {
  314. "cacheTimeout": null,
  315. "colorBackground": false,
  316. "colorValue": false,
  317. "colors": [
  318. "rgba(245, 54, 54, 0.9)",
  319. "rgba(237, 129, 40, 0.89)",
  320. "rgba(50, 172, 45, 0.97)"
  321. ],
  322. "datasource": "${DS_PROMETHEUS}",
  323. "decimals": 0,
  324. "format": "none",
  325. "gauge": {
  326. "maxValue": 100,
  327. "minValue": 0,
  328. "show": false,
  329. "thresholdLabels": false,
  330. "thresholdMarkers": true
  331. },
  332. "gridPos": {
  333. "h": 3,
  334. "w": 3,
  335. "x": 18,
  336. "y": 0
  337. },
  338. "id": 81,
  339. "interval": null,
  340. "links": [],
  341. "mappingType": 1,
  342. "mappingTypes": [
  343. {
  344. "name": "value to text",
  345. "value": 1
  346. },
  347. {
  348. "name": "range to text",
  349. "value": 2
  350. }
  351. ],
  352. "maxDataPoints": 100,
  353. "nullPointMode": "connected",
  354. "nullText": null,
  355. "postfix": "",
  356. "postfixFontSize": "50%",
  357. "prefix": "",
  358. "prefixFontSize": "50%",
  359. "rangeMaps": [
  360. {
  361. "from": "null",
  362. "text": "N/A",
  363. "to": "null"
  364. }
  365. ],
  366. "sparkline": {
  367. "fillColor": "rgba(31, 118, 189, 0.18)",
  368. "full": true,
  369. "lineColor": "rgb(31, 120, 193)",
  370. "show": true
  371. },
  372. "tableColumn": "",
  373. "targets": [
  374. {
  375. "expr": "avg(irate(nginx_ingress_controller_success{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\"}[1m])) * 60",
  376. "format": "time_series",
  377. "instant": false,
  378. "intervalFactor": 1,
  379. "refId": "A",
  380. "step": 4
  381. }
  382. ],
  383. "thresholds": "",
  384. "title": "Config Reloads",
  385. "transparent": false,
  386. "type": "singlestat",
  387. "valueFontSize": "80%",
  388. "valueMaps": [
  389. {
  390. "op": "=",
  391. "text": "N/A",
  392. "value": "null"
  393. }
  394. ],
  395. "valueName": "total"
  396. },
  397. {
  398. "cacheTimeout": null,
  399. "colorBackground": false,
  400. "colorValue": false,
  401. "colors": [
  402. "rgba(245, 54, 54, 0.9)",
  403. "rgba(237, 129, 40, 0.89)",
  404. "rgba(50, 172, 45, 0.97)"
  405. ],
  406. "datasource": "${DS_PROMETHEUS}",
  407. "decimals": 0,
  408. "format": "none",
  409. "gauge": {
  410. "maxValue": 100,
  411. "minValue": 0,
  412. "show": false,
  413. "thresholdLabels": false,
  414. "thresholdMarkers": true
  415. },
  416. "gridPos": {
  417. "h": 3,
  418. "w": 3,
  419. "x": 21,
  420. "y": 0
  421. },
  422. "id": 83,
  423. "interval": null,
  424. "links": [],
  425. "mappingType": 1,
  426. "mappingTypes": [
  427. {
  428. "name": "value to text",
  429. "value": 1
  430. },
  431. {
  432. "name": "range to text",
  433. "value": 2
  434. }
  435. ],
  436. "maxDataPoints": 100,
  437. "nullPointMode": "connected",
  438. "nullText": null,
  439. "postfix": "",
  440. "postfixFontSize": "50%",
  441. "prefix": "",
  442. "prefixFontSize": "50%",
  443. "rangeMaps": [
  444. {
  445. "from": "null",
  446. "text": "N/A",
  447. "to": "null"
  448. }
  449. ],
  450. "sparkline": {
  451. "fillColor": "rgba(31, 118, 189, 0.18)",
  452. "full": true,
  453. "lineColor": "rgb(31, 120, 193)",
  454. "show": true
  455. },
  456. "tableColumn": "",
  457. "targets": [
  458. {
  459. "expr": "count(nginx_ingress_controller_config_last_reload_successful{controller_pod=~\"$controller\",controller_namespace=~\"$namespace\"} == 0)",
  460. "format": "time_series",
  461. "instant": true,
  462. "intervalFactor": 1,
  463. "refId": "A",
  464. "step": 4
  465. }
  466. ],
  467. "thresholds": "",
  468. "title": "Last Config Failed",
  469. "transparent": false,
  470. "type": "singlestat",
  471. "valueFontSize": "80%",
  472. "valueMaps": [
  473. {
  474. "op": "=",
  475. "text": "N/A",
  476. "value": "null"
  477. }
  478. ],
  479. "valueName": "avg"
  480. },
  481. {
  482. "aliasColors": {},
  483. "bars": false,
  484. "dashLength": 10,
  485. "dashes": false,
  486. "datasource": "${DS_PROMETHEUS}",
  487. "decimals": 2,
  488. "editable": true,
  489. "error": false,
  490. "fill": 1,
  491. "grid": {},
  492. "gridPos": {
  493. "h": 7,
  494. "w": 12,
  495. "x": 0,
  496. "y": 3
  497. },
  498. "height": "200px",
  499. "id": 86,
  500. "isNew": true,
  501. "legend": {
  502. "alignAsTable": true,
  503. "avg": true,
  504. "current": false,
  505. "hideEmpty": false,
  506. "hideZero": true,
  507. "max": false,
  508. "min": false,
  509. "rightSide": true,
  510. "show": true,
  511. "sideWidth": 300,
  512. "sort": "current",
  513. "sortDesc": true,
  514. "total": false,
  515. "values": true
  516. },
  517. "lines": true,
  518. "linewidth": 2,
  519. "links": [],
  520. "nullPointMode": "connected",
  521. "percentage": false,
  522. "pointradius": 5,
  523. "points": false,
  524. "renderer": "flot",
  525. "repeat": null,
  526. "repeatDirection": "h",
  527. "seriesOverrides": [],
  528. "spaceLength": 10,
  529. "stack": false,
  530. "steppedLine": false,
  531. "targets": [
  532. {
  533. "expr": "round(sum(irate(nginx_ingress_controller_requests{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\"}[2m])) by (ingress), 0.001)",
  534. "format": "time_series",
  535. "hide": false,
  536. "instant": false,
  537. "interval": "",
  538. "intervalFactor": 1,
  539. "legendFormat": "{{ ingress }}",
  540. "metric": "network",
  541. "refId": "A",
  542. "step": 10
  543. }
  544. ],
  545. "thresholds": [],
  546. "timeFrom": null,
  547. "timeShift": null,
  548. "title": "Ingress Request Volume",
  549. "tooltip": {
  550. "msResolution": false,
  551. "shared": true,
  552. "sort": 2,
  553. "value_type": "cumulative"
  554. },
  555. "transparent": false,
  556. "type": "graph",
  557. "xaxis": {
  558. "buckets": null,
  559. "mode": "time",
  560. "name": null,
  561. "show": true,
  562. "values": []
  563. },
  564. "yaxes": [
  565. {
  566. "format": "reqps",
  567. "label": null,
  568. "logBase": 1,
  569. "max": null,
  570. "min": null,
  571. "show": true
  572. },
  573. {
  574. "format": "Bps",
  575. "label": null,
  576. "logBase": 1,
  577. "max": null,
  578. "min": null,
  579. "show": false
  580. }
  581. ],
  582. "yaxis": {
  583. "align": false,
  584. "alignLevel": null
  585. }
  586. },
  587. {
  588. "aliasColors": {
  589. "max - istio-proxy": "#890f02",
  590. "max - master": "#bf1b00",
  591. "max - prometheus": "#bf1b00"
  592. },
  593. "bars": false,
  594. "dashLength": 10,
  595. "dashes": false,
  596. "datasource": "${DS_PROMETHEUS}",
  597. "decimals": 2,
  598. "editable": false,
  599. "error": false,
  600. "fill": 0,
  601. "grid": {},
  602. "gridPos": {
  603. "h": 7,
  604. "w": 12,
  605. "x": 12,
  606. "y": 3
  607. },
  608. "id": 87,
  609. "isNew": true,
  610. "legend": {
  611. "alignAsTable": true,
  612. "avg": true,
  613. "current": false,
  614. "hideEmpty": true,
  615. "hideZero": false,
  616. "max": false,
  617. "min": false,
  618. "rightSide": true,
  619. "show": true,
  620. "sideWidth": 300,
  621. "sort": "avg",
  622. "sortDesc": true,
  623. "total": false,
  624. "values": true
  625. },
  626. "lines": true,
  627. "linewidth": 2,
  628. "links": [],
  629. "nullPointMode": "connected",
  630. "percentage": false,
  631. "pointradius": 5,
  632. "points": false,
  633. "renderer": "flot",
  634. "seriesOverrides": [],
  635. "spaceLength": 10,
  636. "stack": false,
  637. "steppedLine": false,
  638. "targets": [
  639. {
  640. "expr": "sum(rate(nginx_ingress_controller_requests{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",namespace=~\"$namespace\",ingress=~\"$ingress\",status!~\"[4-5].*\"}[2m])) by (ingress) / sum(rate(nginx_ingress_controller_requests{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",namespace=~\"$namespace\",ingress=~\"$ingress\"}[2m])) by (ingress)",
  641. "format": "time_series",
  642. "instant": false,
  643. "interval": "10s",
  644. "intervalFactor": 1,
  645. "legendFormat": "{{ ingress }}",
  646. "metric": "container_memory_usage:sort_desc",
  647. "refId": "A",
  648. "step": 10
  649. }
  650. ],
  651. "thresholds": [],
  652. "timeFrom": null,
  653. "timeShift": null,
  654. "title": "Ingress Success Rate (non-4|5xx responses)",
  655. "tooltip": {
  656. "msResolution": false,
  657. "shared": true,
  658. "sort": 1,
  659. "value_type": "cumulative"
  660. },
  661. "type": "graph",
  662. "xaxis": {
  663. "buckets": null,
  664. "mode": "time",
  665. "name": null,
  666. "show": true,
  667. "values": []
  668. },
  669. "yaxes": [
  670. {
  671. "format": "percentunit",
  672. "label": null,
  673. "logBase": 1,
  674. "max": null,
  675. "min": null,
  676. "show": true
  677. },
  678. {
  679. "format": "short",
  680. "label": null,
  681. "logBase": 1,
  682. "max": null,
  683. "min": null,
  684. "show": false
  685. }
  686. ],
  687. "yaxis": {
  688. "align": false,
  689. "alignLevel": null
  690. }
  691. },
  692. {
  693. "aliasColors": {},
  694. "bars": false,
  695. "dashLength": 10,
  696. "dashes": false,
  697. "datasource": "${DS_PROMETHEUS}",
  698. "decimals": 2,
  699. "editable": true,
  700. "error": false,
  701. "fill": 1,
  702. "grid": {},
  703. "gridPos": {
  704. "h": 6,
  705. "w": 8,
  706. "x": 0,
  707. "y": 10
  708. },
  709. "height": "200px",
  710. "id": 32,
  711. "isNew": true,
  712. "legend": {
  713. "alignAsTable": false,
  714. "avg": true,
  715. "current": true,
  716. "max": false,
  717. "min": false,
  718. "rightSide": false,
  719. "show": false,
  720. "sideWidth": 200,
  721. "sort": "current",
  722. "sortDesc": true,
  723. "total": false,
  724. "values": true
  725. },
  726. "lines": true,
  727. "linewidth": 2,
  728. "links": [],
  729. "nullPointMode": "connected",
  730. "percentage": false,
  731. "pointradius": 5,
  732. "points": false,
  733. "renderer": "flot",
  734. "seriesOverrides": [],
  735. "spaceLength": 10,
  736. "stack": false,
  737. "steppedLine": false,
  738. "targets": [
  739. {
  740. "expr": "sum (irate (nginx_ingress_controller_request_size_sum{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\"}[2m]))",
  741. "format": "time_series",
  742. "instant": false,
  743. "interval": "10s",
  744. "intervalFactor": 1,
  745. "legendFormat": "Received",
  746. "metric": "network",
  747. "refId": "A",
  748. "step": 10
  749. },
  750. {
  751. "expr": "- sum (irate (nginx_ingress_controller_response_size_sum{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\"}[2m]))",
  752. "format": "time_series",
  753. "hide": false,
  754. "interval": "10s",
  755. "intervalFactor": 1,
  756. "legendFormat": "Sent",
  757. "metric": "network",
  758. "refId": "B",
  759. "step": 10
  760. }
  761. ],
  762. "thresholds": [],
  763. "timeFrom": null,
  764. "timeShift": null,
  765. "title": "Network I/O pressure",
  766. "tooltip": {
  767. "msResolution": false,
  768. "shared": true,
  769. "sort": 0,
  770. "value_type": "cumulative"
  771. },
  772. "transparent": false,
  773. "type": "graph",
  774. "xaxis": {
  775. "buckets": null,
  776. "mode": "time",
  777. "name": null,
  778. "show": true,
  779. "values": []
  780. },
  781. "yaxes": [
  782. {
  783. "format": "Bps",
  784. "label": null,
  785. "logBase": 1,
  786. "max": null,
  787. "min": null,
  788. "show": true
  789. },
  790. {
  791. "format": "Bps",
  792. "label": null,
  793. "logBase": 1,
  794. "max": null,
  795. "min": null,
  796. "show": false
  797. }
  798. ],
  799. "yaxis": {
  800. "align": false,
  801. "alignLevel": null
  802. }
  803. },
  804. {
  805. "aliasColors": {
  806. "max - istio-proxy": "#890f02",
  807. "max - master": "#bf1b00",
  808. "max - prometheus": "#bf1b00"
  809. },
  810. "bars": false,
  811. "dashLength": 10,
  812. "dashes": false,
  813. "datasource": "${DS_PROMETHEUS}",
  814. "decimals": 2,
  815. "editable": false,
  816. "error": false,
  817. "fill": 0,
  818. "grid": {},
  819. "gridPos": {
  820. "h": 6,
  821. "w": 8,
  822. "x": 8,
  823. "y": 10
  824. },
  825. "id": 77,
  826. "isNew": true,
  827. "legend": {
  828. "alignAsTable": true,
  829. "avg": true,
  830. "current": true,
  831. "max": false,
  832. "min": false,
  833. "rightSide": false,
  834. "show": false,
  835. "sideWidth": 200,
  836. "sort": "current",
  837. "sortDesc": true,
  838. "total": false,
  839. "values": true
  840. },
  841. "lines": true,
  842. "linewidth": 2,
  843. "links": [],
  844. "nullPointMode": "connected",
  845. "percentage": false,
  846. "pointradius": 5,
  847. "points": false,
  848. "renderer": "flot",
  849. "seriesOverrides": [],
  850. "spaceLength": 10,
  851. "stack": false,
  852. "steppedLine": false,
  853. "targets": [
  854. {
  855. "expr": "avg(nginx_ingress_controller_nginx_process_resident_memory_bytes{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\"}) ",
  856. "format": "time_series",
  857. "instant": false,
  858. "interval": "10s",
  859. "intervalFactor": 1,
  860. "legendFormat": "nginx",
  861. "metric": "container_memory_usage:sort_desc",
  862. "refId": "A",
  863. "step": 10
  864. }
  865. ],
  866. "thresholds": [],
  867. "timeFrom": null,
  868. "timeShift": null,
  869. "title": "Average Memory Usage",
  870. "tooltip": {
  871. "msResolution": false,
  872. "shared": true,
  873. "sort": 2,
  874. "value_type": "cumulative"
  875. },
  876. "type": "graph",
  877. "xaxis": {
  878. "buckets": null,
  879. "mode": "time",
  880. "name": null,
  881. "show": true,
  882. "values": []
  883. },
  884. "yaxes": [
  885. {
  886. "format": "bytes",
  887. "label": null,
  888. "logBase": 1,
  889. "max": null,
  890. "min": null,
  891. "show": true
  892. },
  893. {
  894. "format": "short",
  895. "label": null,
  896. "logBase": 1,
  897. "max": null,
  898. "min": null,
  899. "show": false
  900. }
  901. ],
  902. "yaxis": {
  903. "align": false,
  904. "alignLevel": null
  905. }
  906. },
  907. {
  908. "aliasColors": {
  909. "max - istio-proxy": "#890f02",
  910. "max - master": "#bf1b00"
  911. },
  912. "bars": false,
  913. "dashLength": 10,
  914. "dashes": false,
  915. "datasource": "${DS_PROMETHEUS}",
  916. "decimals": 3,
  917. "editable": false,
  918. "error": false,
  919. "fill": 0,
  920. "grid": {},
  921. "gridPos": {
  922. "h": 6,
  923. "w": 8,
  924. "x": 16,
  925. "y": 10
  926. },
  927. "height": "",
  928. "id": 79,
  929. "isNew": true,
  930. "legend": {
  931. "alignAsTable": true,
  932. "avg": true,
  933. "current": true,
  934. "max": false,
  935. "min": false,
  936. "rightSide": false,
  937. "show": false,
  938. "sort": null,
  939. "sortDesc": null,
  940. "total": false,
  941. "values": true
  942. },
  943. "lines": true,
  944. "linewidth": 2,
  945. "links": [],
  946. "nullPointMode": "connected",
  947. "percentage": false,
  948. "pointradius": 5,
  949. "points": false,
  950. "renderer": "flot",
  951. "seriesOverrides": [],
  952. "spaceLength": 10,
  953. "stack": false,
  954. "steppedLine": false,
  955. "targets": [
  956. {
  957. "expr": "avg (rate (nginx_ingress_controller_nginx_process_cpu_seconds_total{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\"}[2m])) ",
  958. "format": "time_series",
  959. "interval": "10s",
  960. "intervalFactor": 1,
  961. "legendFormat": "nginx",
  962. "metric": "container_cpu",
  963. "refId": "A",
  964. "step": 10
  965. }
  966. ],
  967. "thresholds": [
  968. {
  969. "colorMode": "critical",
  970. "fill": true,
  971. "line": true,
  972. "op": "gt"
  973. }
  974. ],
  975. "timeFrom": null,
  976. "timeShift": null,
  977. "title": "Average CPU Usage",
  978. "tooltip": {
  979. "msResolution": true,
  980. "shared": true,
  981. "sort": 2,
  982. "value_type": "cumulative"
  983. },
  984. "transparent": false,
  985. "type": "graph",
  986. "xaxis": {
  987. "buckets": null,
  988. "mode": "time",
  989. "name": null,
  990. "show": true,
  991. "values": []
  992. },
  993. "yaxes": [
  994. {
  995. "format": "none",
  996. "label": "cores",
  997. "logBase": 1,
  998. "max": null,
  999. "min": null,
  1000. "show": true
  1001. },
  1002. {
  1003. "format": "short",
  1004. "label": null,
  1005. "logBase": 1,
  1006. "max": null,
  1007. "min": null,
  1008. "show": true
  1009. }
  1010. ],
  1011. "yaxis": {
  1012. "align": false,
  1013. "alignLevel": null
  1014. }
  1015. },
  1016. {
  1017. "columns": [],
  1018. "datasource": "${DS_PROMETHEUS}",
  1019. "description": "This data is real time, independent of dashboard time range",
  1020. "fontSize": "100%",
  1021. "gridPos": {
  1022. "h": 8,
  1023. "w": 24,
  1024. "x": 0,
  1025. "y": 16
  1026. },
  1027. "hideTimeOverride": false,
  1028. "id": 75,
  1029. "links": [],
  1030. "pageSize": 7,
  1031. "repeat": null,
  1032. "repeatDirection": "h",
  1033. "scroll": true,
  1034. "showHeader": true,
  1035. "sort": {
  1036. "col": 1,
  1037. "desc": true
  1038. },
  1039. "styles": [
  1040. {
  1041. "alias": "Ingress",
  1042. "colorMode": null,
  1043. "colors": [
  1044. "rgba(245, 54, 54, 0.9)",
  1045. "rgba(237, 129, 40, 0.89)",
  1046. "rgba(50, 172, 45, 0.97)"
  1047. ],
  1048. "dateFormat": "YYYY-MM-DD HH:mm:ss",
  1049. "decimals": 2,
  1050. "pattern": "ingress",
  1051. "preserveFormat": false,
  1052. "sanitize": false,
  1053. "thresholds": [],
  1054. "type": "string",
  1055. "unit": "short"
  1056. },
  1057. {
  1058. "alias": "Requests",
  1059. "colorMode": null,
  1060. "colors": [
  1061. "rgba(245, 54, 54, 0.9)",
  1062. "rgba(237, 129, 40, 0.89)",
  1063. "rgba(50, 172, 45, 0.97)"
  1064. ],
  1065. "dateFormat": "YYYY-MM-DD HH:mm:ss",
  1066. "decimals": 2,
  1067. "pattern": "Value #A",
  1068. "thresholds": [
  1069. ""
  1070. ],
  1071. "type": "number",
  1072. "unit": "ops"
  1073. },
  1074. {
  1075. "alias": "Errors",
  1076. "colorMode": null,
  1077. "colors": [
  1078. "rgba(245, 54, 54, 0.9)",
  1079. "rgba(237, 129, 40, 0.89)",
  1080. "rgba(50, 172, 45, 0.97)"
  1081. ],
  1082. "dateFormat": "YYYY-MM-DD HH:mm:ss",
  1083. "decimals": 2,
  1084. "pattern": "Value #B",
  1085. "thresholds": [],
  1086. "type": "number",
  1087. "unit": "ops"
  1088. },
  1089. {
  1090. "alias": "P50 Latency",
  1091. "colorMode": null,
  1092. "colors": [
  1093. "rgba(245, 54, 54, 0.9)",
  1094. "rgba(237, 129, 40, 0.89)",
  1095. "rgba(50, 172, 45, 0.97)"
  1096. ],
  1097. "dateFormat": "YYYY-MM-DD HH:mm:ss",
  1098. "decimals": 0,
  1099. "link": false,
  1100. "pattern": "Value #C",
  1101. "thresholds": [],
  1102. "type": "number",
  1103. "unit": "dtdurations"
  1104. },
  1105. {
  1106. "alias": "P90 Latency",
  1107. "colorMode": null,
  1108. "colors": [
  1109. "rgba(245, 54, 54, 0.9)",
  1110. "rgba(237, 129, 40, 0.89)",
  1111. "rgba(50, 172, 45, 0.97)"
  1112. ],
  1113. "dateFormat": "YYYY-MM-DD HH:mm:ss",
  1114. "decimals": 0,
  1115. "pattern": "Value #D",
  1116. "thresholds": [],
  1117. "type": "number",
  1118. "unit": "dtdurations"
  1119. },
  1120. {
  1121. "alias": "P99 Latency",
  1122. "colorMode": null,
  1123. "colors": [
  1124. "rgba(245, 54, 54, 0.9)",
  1125. "rgba(237, 129, 40, 0.89)",
  1126. "rgba(50, 172, 45, 0.97)"
  1127. ],
  1128. "dateFormat": "YYYY-MM-DD HH:mm:ss",
  1129. "decimals": 0,
  1130. "pattern": "Value #E",
  1131. "thresholds": [],
  1132. "type": "number",
  1133. "unit": "dtdurations"
  1134. },
  1135. {
  1136. "alias": "IN",
  1137. "colorMode": null,
  1138. "colors": [
  1139. "rgba(245, 54, 54, 0.9)",
  1140. "rgba(237, 129, 40, 0.89)",
  1141. "rgba(50, 172, 45, 0.97)"
  1142. ],
  1143. "dateFormat": "YYYY-MM-DD HH:mm:ss",
  1144. "decimals": 2,
  1145. "pattern": "Value #F",
  1146. "thresholds": [
  1147. ""
  1148. ],
  1149. "type": "number",
  1150. "unit": "Bps"
  1151. },
  1152. {
  1153. "alias": "",
  1154. "colorMode": null,
  1155. "colors": [
  1156. "rgba(245, 54, 54, 0.9)",
  1157. "rgba(237, 129, 40, 0.89)",
  1158. "rgba(50, 172, 45, 0.97)"
  1159. ],
  1160. "dateFormat": "YYYY-MM-DD HH:mm:ss",
  1161. "decimals": 2,
  1162. "pattern": "Time",
  1163. "thresholds": [],
  1164. "type": "hidden",
  1165. "unit": "short"
  1166. },
  1167. {
  1168. "alias": "OUT",
  1169. "colorMode": null,
  1170. "colors": [
  1171. "rgba(245, 54, 54, 0.9)",
  1172. "rgba(237, 129, 40, 0.89)",
  1173. "rgba(50, 172, 45, 0.97)"
  1174. ],
  1175. "dateFormat": "YYYY-MM-DD HH:mm:ss",
  1176. "decimals": 2,
  1177. "mappingType": 1,
  1178. "pattern": "Value #G",
  1179. "thresholds": [],
  1180. "type": "number",
  1181. "unit": "Bps"
  1182. }
  1183. ],
  1184. "targets": [
  1185. {
  1186. "expr": "histogram_quantile(0.50, sum(rate(nginx_ingress_controller_request_duration_seconds_bucket{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\"}[2m])) by (le, ingress))",
  1187. "format": "table",
  1188. "hide": false,
  1189. "instant": true,
  1190. "intervalFactor": 1,
  1191. "legendFormat": "{{ ingress }}",
  1192. "refId": "C"
  1193. },
  1194. {
  1195. "expr": "histogram_quantile(0.90, sum(rate(nginx_ingress_controller_request_duration_seconds_bucket{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\"}[2m])) by (le, ingress))",
  1196. "format": "table",
  1197. "hide": false,
  1198. "instant": true,
  1199. "intervalFactor": 1,
  1200. "legendFormat": "{{ ingress }}",
  1201. "refId": "D"
  1202. },
  1203. {
  1204. "expr": "histogram_quantile(0.99, sum(rate(nginx_ingress_controller_request_duration_seconds_bucket{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\"}[2m])) by (le, ingress))",
  1205. "format": "table",
  1206. "hide": false,
  1207. "instant": true,
  1208. "intervalFactor": 1,
  1209. "legendFormat": "{{ destination_service }}",
  1210. "refId": "E"
  1211. },
  1212. {
  1213. "expr": "sum(irate(nginx_ingress_controller_request_size_sum{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\"}[2m])) by (ingress)",
  1214. "format": "table",
  1215. "hide": false,
  1216. "instant": true,
  1217. "interval": "",
  1218. "intervalFactor": 1,
  1219. "legendFormat": "{{ ingress }}",
  1220. "refId": "F"
  1221. },
  1222. {
  1223. "expr": "sum(irate(nginx_ingress_controller_response_size_sum{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\"}[2m])) by (ingress)",
  1224. "format": "table",
  1225. "instant": true,
  1226. "intervalFactor": 1,
  1227. "legendFormat": "{{ ingress }}",
  1228. "refId": "G"
  1229. }
  1230. ],
  1231. "timeFrom": null,
  1232. "title": "Ingress Percentile Response Times and Transfer Rates",
  1233. "transform": "table",
  1234. "transparent": false,
  1235. "type": "table"
  1236. },
  1237. {
  1238. "datasource": "${DS_PROMETHEUS}",
  1239. "fieldConfig": {
  1240. "defaults": {
  1241. "color": {
  1242. "mode": "palette-classic"
  1243. },
  1244. "custom": {
  1245. "axisLabel": "",
  1246. "axisPlacement": "auto",
  1247. "barAlignment": 0,
  1248. "drawStyle": "line",
  1249. "fillOpacity": 0,
  1250. "gradientMode": "none",
  1251. "hideFrom": {
  1252. "legend": false,
  1253. "tooltip": false,
  1254. "viz": false
  1255. },
  1256. "lineInterpolation": "linear",
  1257. "lineWidth": 1,
  1258. "pointSize": 5,
  1259. "scaleDistribution": {
  1260. "type": "linear"
  1261. },
  1262. "showPoints": "auto",
  1263. "spanNulls": false,
  1264. "stacking": {
  1265. "group": "A",
  1266. "mode": "none"
  1267. },
  1268. "thresholdsStyle": {
  1269. "mode": "off"
  1270. }
  1271. },
  1272. "mappings": [],
  1273. "thresholds": {
  1274. "mode": "absolute",
  1275. "steps": [
  1276. {
  1277. "color": "green",
  1278. "value": null
  1279. },
  1280. {
  1281. "color": "red",
  1282. "value": 80
  1283. }
  1284. ]
  1285. },
  1286. "unit": "s"
  1287. },
  1288. "overrides": []
  1289. },
  1290. "gridPos": {
  1291. "h": 7,
  1292. "w": 12,
  1293. "x": 0,
  1294. "y": 24
  1295. },
  1296. "hideTimeOverride": false,
  1297. "id": 91,
  1298. "links": [],
  1299. "options": {
  1300. "legend": {
  1301. "calcs": [],
  1302. "displayMode": "list",
  1303. "placement": "bottom"
  1304. },
  1305. "tooltip": {
  1306. "mode": "multi",
  1307. "sort": "none"
  1308. }
  1309. },
  1310. "pluginVersion": "8.3.4",
  1311. "repeatDirection": "h",
  1312. "targets": [
  1313. {
  1314. "exemplar": true,
  1315. "expr": "histogram_quantile(0.80, sum(rate(nginx_ingress_controller_request_duration_seconds_bucket{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\"}[2m])) by (le))",
  1316. "format": "time_series",
  1317. "hide": false,
  1318. "instant": false,
  1319. "interval": "",
  1320. "intervalFactor": 1,
  1321. "legendFormat": "P80",
  1322. "refId": "C"
  1323. },
  1324. {
  1325. "exemplar": true,
  1326. "expr": "histogram_quantile(0.90, sum(rate(nginx_ingress_controller_request_duration_seconds_bucket{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\"}[2m])) by (le))",
  1327. "format": "time_series",
  1328. "hide": false,
  1329. "instant": false,
  1330. "interval": "",
  1331. "intervalFactor": 1,
  1332. "legendFormat": "P90",
  1333. "refId": "D"
  1334. },
  1335. {
  1336. "editorMode": "code",
  1337. "exemplar": true,
  1338. "expr": "histogram_quantile(0.99, sum(rate(nginx_ingress_controller_request_duration_seconds_bucket{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\"}[2m])) by (le))",
  1339. "format": "time_series",
  1340. "hide": false,
  1341. "instant": false,
  1342. "interval": "",
  1343. "intervalFactor": 1,
  1344. "legendFormat": "P99",
  1345. "refId": "E"
  1346. }
  1347. ],
  1348. "title": "Ingress Percentile Response Times",
  1349. "type": "timeseries"
  1350. },
  1351. {
  1352. "cards": {},
  1353. "color": {
  1354. "cardColor": "#b4ff00",
  1355. "colorScale": "sqrt",
  1356. "colorScheme": "interpolateWarm",
  1357. "exponent": 0.5,
  1358. "mode": "spectrum"
  1359. },
  1360. "dataFormat": "tsbuckets",
  1361. "datasource": "${DS_PROMETHEUS}",
  1362. "description": "",
  1363. "gridPos": {
  1364. "h": 7,
  1365. "w": 12,
  1366. "x": 12,
  1367. "y": 24
  1368. },
  1369. "heatmap": {},
  1370. "hideZeroBuckets": false,
  1371. "highlightCards": true,
  1372. "id": 89,
  1373. "legend": {
  1374. "show": true
  1375. },
  1376. "reverseYBuckets": false,
  1377. "targets": [
  1378. {
  1379. "exemplar": true,
  1380. "expr": "sum(increase(nginx_ingress_controller_request_duration_seconds_bucket{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\"}[2m])) by (le)",
  1381. "format": "heatmap",
  1382. "interval": "",
  1383. "legendFormat": "{{le}}",
  1384. "refId": "A"
  1385. }
  1386. ],
  1387. "title": "Ingress Request Latency Heatmap",
  1388. "tooltip": {
  1389. "show": true,
  1390. "showHistogram": true
  1391. },
  1392. "type": "heatmap",
  1393. "xAxis": {
  1394. "show": true
  1395. },
  1396. "yAxis": {
  1397. "format": "s",
  1398. "logBase": 1,
  1399. "show": true
  1400. },
  1401. "yBucketBound": "auto"
  1402. },
  1403. {
  1404. "columns": [
  1405. {
  1406. "text": "Current",
  1407. "value": "current"
  1408. }
  1409. ],
  1410. "datasource": "${DS_PROMETHEUS}",
  1411. "fontSize": "100%",
  1412. "gridPos": {
  1413. "h": 8,
  1414. "w": 24,
  1415. "x": 0,
  1416. "y": 31
  1417. },
  1418. "height": "1024",
  1419. "id": 85,
  1420. "links": [],
  1421. "pageSize": 7,
  1422. "scroll": true,
  1423. "showHeader": true,
  1424. "sort": {
  1425. "col": 1,
  1426. "desc": false
  1427. },
  1428. "styles": [
  1429. {
  1430. "alias": "Time",
  1431. "dateFormat": "YYYY-MM-DD HH:mm:ss",
  1432. "pattern": "Time",
  1433. "type": "date"
  1434. },
  1435. {
  1436. "alias": "TTL",
  1437. "colorMode": "cell",
  1438. "colors": [
  1439. "rgba(245, 54, 54, 0.9)",
  1440. "rgba(237, 129, 40, 0.89)",
  1441. "rgba(50, 172, 45, 0.97)"
  1442. ],
  1443. "dateFormat": "YYYY-MM-DD HH:mm:ss",
  1444. "decimals": 0,
  1445. "pattern": "Current",
  1446. "thresholds": [
  1447. "0",
  1448. "691200"
  1449. ],
  1450. "type": "number",
  1451. "unit": "s"
  1452. },
  1453. {
  1454. "alias": "",
  1455. "colorMode": null,
  1456. "colors": [
  1457. "rgba(245, 54, 54, 0.9)",
  1458. "rgba(237, 129, 40, 0.89)",
  1459. "rgba(50, 172, 45, 0.97)"
  1460. ],
  1461. "decimals": 2,
  1462. "pattern": "/.*/",
  1463. "thresholds": [],
  1464. "type": "number",
  1465. "unit": "short"
  1466. }
  1467. ],
  1468. "targets": [
  1469. {
  1470. "expr": "avg(nginx_ingress_controller_ssl_expire_time_seconds{kubernetes_pod_name=~\"$controller\",namespace=~\"$namespace\",ingress=~\"$ingress\"}) by (host) - time()",
  1471. "format": "time_series",
  1472. "intervalFactor": 1,
  1473. "legendFormat": "{{ host }}",
  1474. "metric": "gke_letsencrypt_cert_expiration",
  1475. "refId": "A",
  1476. "step": 1
  1477. }
  1478. ],
  1479. "title": "Ingress Certificate Expiry",
  1480. "transform": "timeseries_aggregations",
  1481. "type": "table"
  1482. }
  1483. ],
  1484. "refresh": "5s",
  1485. "schemaVersion": 16,
  1486. "style": "dark",
  1487. "tags": [
  1488. "nginx"
  1489. ],
  1490. "templating": {
  1491. "list": [
  1492. {
  1493. "hide": 0,
  1494. "label": "datasource",
  1495. "name": "DS_PROMETHEUS",
  1496. "options": [],
  1497. "query": "prometheus",
  1498. "refresh": 1,
  1499. "regex": "",
  1500. "type": "datasource"
  1501. },
  1502. {
  1503. "allValue": ".*",
  1504. "current": {
  1505. "text": "All",
  1506. "value": "$__all"
  1507. },
  1508. "datasource": "${DS_PROMETHEUS}",
  1509. "hide": 0,
  1510. "includeAll": true,
  1511. "label": "Namespace",
  1512. "multi": false,
  1513. "name": "namespace",
  1514. "options": [],
  1515. "query": "label_values(nginx_ingress_controller_config_hash, controller_namespace)",
  1516. "refresh": 1,
  1517. "regex": "",
  1518. "sort": 0,
  1519. "tagValuesQuery": "",
  1520. "tags": [],
  1521. "tagsQuery": "",
  1522. "type": "query",
  1523. "useTags": false
  1524. },
  1525. {
  1526. "allValue": ".*",
  1527. "current": {
  1528. "text": "All",
  1529. "value": "$__all"
  1530. },
  1531. "datasource": "${DS_PROMETHEUS}",
  1532. "hide": 0,
  1533. "includeAll": true,
  1534. "label": "Controller Class",
  1535. "multi": false,
  1536. "name": "controller_class",
  1537. "options": [],
  1538. "query": "label_values(nginx_ingress_controller_config_hash{namespace=~\"$namespace\"}, controller_class) ",
  1539. "refresh": 1,
  1540. "regex": "",
  1541. "sort": 0,
  1542. "tagValuesQuery": "",
  1543. "tags": [],
  1544. "tagsQuery": "",
  1545. "type": "query",
  1546. "useTags": false
  1547. },
  1548. {
  1549. "allValue": ".*",
  1550. "current": {
  1551. "text": "All",
  1552. "value": "$__all"
  1553. },
  1554. "datasource": "${DS_PROMETHEUS}",
  1555. "hide": 0,
  1556. "includeAll": true,
  1557. "label": "Controller",
  1558. "multi": false,
  1559. "name": "controller",
  1560. "options": [],
  1561. "query": "label_values(nginx_ingress_controller_config_hash{namespace=~\"$namespace\",controller_class=~\"$controller_class\"}, controller_pod) ",
  1562. "refresh": 1,
  1563. "regex": "",
  1564. "sort": 0,
  1565. "tagValuesQuery": "",
  1566. "tags": [],
  1567. "tagsQuery": "",
  1568. "type": "query",
  1569. "useTags": false
  1570. },
  1571. {
  1572. "allValue": ".*",
  1573. "current": {
  1574. "tags": [],
  1575. "text": "All",
  1576. "value": "$__all"
  1577. },
  1578. "datasource": "${DS_PROMETHEUS}",
  1579. "hide": 0,
  1580. "includeAll": true,
  1581. "label": "Ingress",
  1582. "multi": false,
  1583. "name": "ingress",
  1584. "options": [],
  1585. "query": "label_values(nginx_ingress_controller_requests{namespace=~\"$namespace\",controller_class=~\"$controller_class\",controller_pod=~\"$controller\"}, ingress) ",
  1586. "refresh": 1,
  1587. "regex": "",
  1588. "sort": 2,
  1589. "tagValuesQuery": "",
  1590. "tags": [],
  1591. "tagsQuery": "",
  1592. "type": "query",
  1593. "useTags": false
  1594. }
  1595. ]
  1596. },
  1597. "time": {
  1598. "from": "now-1h",
  1599. "to": "now"
  1600. },
  1601. "timepicker": {
  1602. "refresh_intervals": [
  1603. "5s",
  1604. "10s",
  1605. "30s",
  1606. "2m",
  1607. "5m",
  1608. "15m",
  1609. "30m",
  1610. "1h",
  1611. "2h",
  1612. "1d"
  1613. ],
  1614. "time_options": [
  1615. "5m",
  1616. "15m",
  1617. "1h",
  1618. "6h",
  1619. "12h",
  1620. "24h",
  1621. "2d",
  1622. "7d",
  1623. "30d"
  1624. ]
  1625. },
  1626. "timezone": "browser",
  1627. "title": "NGINX Ingress controller",
  1628. "uid": "nginx",
  1629. "version": 1
  1630. }