Guest User

Untitled

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