github.com/verrazzano/verrazzano@v1.7.0/platform-operator/helm_config/charts/verrazzano-grafana-dashboards/dashboards/NGINX/nginx-v1.3.1.json (about) 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": { 1239 "type": "prometheus", 1240 "uid": "P1809F7CD0C75ACF3" 1241 }, 1242 "fieldConfig": { 1243 "defaults": { 1244 "color": { 1245 "mode": "palette-classic" 1246 }, 1247 "custom": { 1248 "axisLabel": "", 1249 "axisPlacement": "auto", 1250 "barAlignment": 0, 1251 "drawStyle": "line", 1252 "fillOpacity": 0, 1253 "gradientMode": "none", 1254 "hideFrom": { 1255 "legend": false, 1256 "tooltip": false, 1257 "viz": false 1258 }, 1259 "lineInterpolation": "linear", 1260 "lineWidth": 1, 1261 "pointSize": 5, 1262 "scaleDistribution": { 1263 "type": "linear" 1264 }, 1265 "showPoints": "auto", 1266 "spanNulls": false, 1267 "stacking": { 1268 "group": "A", 1269 "mode": "none" 1270 }, 1271 "thresholdsStyle": { 1272 "mode": "off" 1273 } 1274 }, 1275 "mappings": [], 1276 "thresholds": { 1277 "mode": "absolute", 1278 "steps": [ 1279 { 1280 "color": "green", 1281 "value": null 1282 }, 1283 { 1284 "color": "red", 1285 "value": 80 1286 } 1287 ] 1288 }, 1289 "unit": "s" 1290 }, 1291 "overrides": [] 1292 }, 1293 "gridPos": { 1294 "h": 7, 1295 "w": 12, 1296 "x": 0, 1297 "y": 24 1298 }, 1299 "hideTimeOverride": false, 1300 "id": 91, 1301 "links": [], 1302 "options": { 1303 "legend": { 1304 "calcs": [], 1305 "displayMode": "list", 1306 "placement": "bottom" 1307 }, 1308 "tooltip": { 1309 "mode": "multi", 1310 "sort": "none" 1311 } 1312 }, 1313 "pluginVersion": "8.3.4", 1314 "repeatDirection": "h", 1315 "targets": [ 1316 { 1317 "datasource": { 1318 "type": "prometheus", 1319 "uid": "P1809F7CD0C75ACF3" 1320 }, 1321 "exemplar": true, 1322 "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\",exported_namespace=\"uat\"}[2m])) by (le))", 1323 "format": "time_series", 1324 "hide": false, 1325 "instant": false, 1326 "interval": "", 1327 "intervalFactor": 1, 1328 "legendFormat": "P80", 1329 "refId": "C" 1330 }, 1331 { 1332 "datasource": { 1333 "type": "prometheus", 1334 "uid": "P1809F7CD0C75ACF3" 1335 }, 1336 "exemplar": true, 1337 "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\",exported_namespace=\"uat\"}[2m])) by (le))", 1338 "format": "time_series", 1339 "hide": false, 1340 "instant": false, 1341 "interval": "", 1342 "intervalFactor": 1, 1343 "legendFormat": "P90", 1344 "refId": "D" 1345 }, 1346 { 1347 "datasource": { 1348 "type": "prometheus", 1349 "uid": "P1809F7CD0C75ACF3" 1350 }, 1351 "editorMode": "code", 1352 "exemplar": true, 1353 "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\",exported_namespace=\"uat\"}[2m])) by (le))", 1354 "format": "time_series", 1355 "hide": false, 1356 "instant": false, 1357 "interval": "", 1358 "intervalFactor": 1, 1359 "legendFormat": "P99", 1360 "refId": "E" 1361 } 1362 ], 1363 "title": "Ingress Percentile Response Times", 1364 "type": "timeseries" 1365 }, 1366 { 1367 "cards": {}, 1368 "color": { 1369 "cardColor": "#b4ff00", 1370 "colorScale": "sqrt", 1371 "colorScheme": "interpolateWarm", 1372 "exponent": 0.5, 1373 "mode": "spectrum" 1374 }, 1375 "dataFormat": "tsbuckets", 1376 "datasource": { 1377 "type": "prometheus", 1378 "uid": "P1809F7CD0C75ACF3" 1379 }, 1380 "description": "", 1381 "gridPos": { 1382 "h": 7, 1383 "w": 12, 1384 "x": 12, 1385 "y": 24 1386 }, 1387 "heatmap": {}, 1388 "hideZeroBuckets": false, 1389 "highlightCards": true, 1390 "id": 89, 1391 "legend": { 1392 "show": true 1393 }, 1394 "reverseYBuckets": false, 1395 "targets": [ 1396 { 1397 "datasource": { 1398 "type": "prometheus", 1399 "uid": "P1809F7CD0C75ACF3" 1400 }, 1401 "exemplar": true, 1402 "expr": "sum(increase(nginx_ingress_controller_request_duration_seconds_bucket{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\",exported_namespace=\"uat\"}[2m])) by (le)", 1403 "format": "heatmap", 1404 "interval": "", 1405 "legendFormat": "{{le}}", 1406 "refId": "A" 1407 } 1408 ], 1409 "title": "Ingress Request Latency Heatmap", 1410 "tooltip": { 1411 "show": true, 1412 "showHistogram": true 1413 }, 1414 "type": "heatmap", 1415 "xAxis": { 1416 "show": true 1417 }, 1418 "yAxis": { 1419 "format": "s", 1420 "logBase": 1, 1421 "show": true 1422 }, 1423 "yBucketBound": "auto" 1424 }, 1425 { 1426 "columns": [ 1427 { 1428 "text": "Current", 1429 "value": "current" 1430 } 1431 ], 1432 "datasource": "${DS_PROMETHEUS}", 1433 "fontSize": "100%", 1434 "gridPos": { 1435 "h": 8, 1436 "w": 24, 1437 "x": 0, 1438 "y": 31 1439 }, 1440 "height": "1024", 1441 "id": 85, 1442 "links": [], 1443 "pageSize": 7, 1444 "scroll": true, 1445 "showHeader": true, 1446 "sort": { 1447 "col": 1, 1448 "desc": false 1449 }, 1450 "styles": [ 1451 { 1452 "alias": "Time", 1453 "dateFormat": "YYYY-MM-DD HH:mm:ss", 1454 "pattern": "Time", 1455 "type": "date" 1456 }, 1457 { 1458 "alias": "TTL", 1459 "colorMode": "cell", 1460 "colors": [ 1461 "rgba(245, 54, 54, 0.9)", 1462 "rgba(237, 129, 40, 0.89)", 1463 "rgba(50, 172, 45, 0.97)" 1464 ], 1465 "dateFormat": "YYYY-MM-DD HH:mm:ss", 1466 "decimals": 0, 1467 "pattern": "Current", 1468 "thresholds": [ 1469 "0", 1470 "691200" 1471 ], 1472 "type": "number", 1473 "unit": "s" 1474 }, 1475 { 1476 "alias": "", 1477 "colorMode": null, 1478 "colors": [ 1479 "rgba(245, 54, 54, 0.9)", 1480 "rgba(237, 129, 40, 0.89)", 1481 "rgba(50, 172, 45, 0.97)" 1482 ], 1483 "decimals": 2, 1484 "pattern": "/.*/", 1485 "thresholds": [], 1486 "type": "number", 1487 "unit": "short" 1488 } 1489 ], 1490 "targets": [ 1491 { 1492 "expr": "avg(nginx_ingress_controller_ssl_expire_time_seconds{kubernetes_pod_name=~\"$controller\",namespace=~\"$namespace\",ingress=~\"$ingress\"}) by (host) - time()", 1493 "format": "time_series", 1494 "intervalFactor": 1, 1495 "legendFormat": "{{ host }}", 1496 "metric": "gke_letsencrypt_cert_expiration", 1497 "refId": "A", 1498 "step": 1 1499 } 1500 ], 1501 "title": "Ingress Certificate Expiry", 1502 "transform": "timeseries_aggregations", 1503 "type": "table" 1504 } 1505 ], 1506 "refresh": "5s", 1507 "schemaVersion": 16, 1508 "style": "dark", 1509 "tags": [ 1510 "nginx" 1511 ], 1512 "templating": { 1513 "list": [ 1514 { 1515 "hide": 0, 1516 "label": "datasource", 1517 "name": "DS_PROMETHEUS", 1518 "options": [], 1519 "query": "prometheus", 1520 "refresh": 1, 1521 "regex": "", 1522 "type": "datasource" 1523 }, 1524 { 1525 "allValue": ".*", 1526 "current": { 1527 "text": "All", 1528 "value": "$__all" 1529 }, 1530 "datasource": "${DS_PROMETHEUS}", 1531 "hide": 0, 1532 "includeAll": true, 1533 "label": "Namespace", 1534 "multi": false, 1535 "name": "namespace", 1536 "options": [], 1537 "query": "label_values(nginx_ingress_controller_config_hash, controller_namespace)", 1538 "refresh": 1, 1539 "regex": "", 1540 "sort": 0, 1541 "tagValuesQuery": "", 1542 "tags": [], 1543 "tagsQuery": "", 1544 "type": "query", 1545 "useTags": false 1546 }, 1547 { 1548 "allValue": ".*", 1549 "current": { 1550 "text": "All", 1551 "value": "$__all" 1552 }, 1553 "datasource": "${DS_PROMETHEUS}", 1554 "hide": 0, 1555 "includeAll": true, 1556 "label": "Controller Class", 1557 "multi": false, 1558 "name": "controller_class", 1559 "options": [], 1560 "query": "label_values(nginx_ingress_controller_config_hash{namespace=~\"$namespace\"}, controller_class) ", 1561 "refresh": 1, 1562 "regex": "", 1563 "sort": 0, 1564 "tagValuesQuery": "", 1565 "tags": [], 1566 "tagsQuery": "", 1567 "type": "query", 1568 "useTags": false 1569 }, 1570 { 1571 "allValue": ".*", 1572 "current": { 1573 "text": "All", 1574 "value": "$__all" 1575 }, 1576 "datasource": "${DS_PROMETHEUS}", 1577 "hide": 0, 1578 "includeAll": true, 1579 "label": "Controller", 1580 "multi": false, 1581 "name": "controller", 1582 "options": [], 1583 "query": "label_values(nginx_ingress_controller_config_hash{namespace=~\"$namespace\",controller_class=~\"$controller_class\"}, controller_pod) ", 1584 "refresh": 1, 1585 "regex": "", 1586 "sort": 0, 1587 "tagValuesQuery": "", 1588 "tags": [], 1589 "tagsQuery": "", 1590 "type": "query", 1591 "useTags": false 1592 }, 1593 { 1594 "allValue": ".*", 1595 "current": { 1596 "tags": [], 1597 "text": "All", 1598 "value": "$__all" 1599 }, 1600 "datasource": "${DS_PROMETHEUS}", 1601 "hide": 0, 1602 "includeAll": true, 1603 "label": "Ingress", 1604 "multi": false, 1605 "name": "ingress", 1606 "options": [], 1607 "query": "label_values(nginx_ingress_controller_requests{namespace=~\"$namespace\",controller_class=~\"$controller_class\",controller_pod=~\"$controller\"}, ingress) ", 1608 "refresh": 1, 1609 "regex": "", 1610 "sort": 2, 1611 "tagValuesQuery": "", 1612 "tags": [], 1613 "tagsQuery": "", 1614 "type": "query", 1615 "useTags": false 1616 } 1617 ] 1618 }, 1619 "time": { 1620 "from": "now-1h", 1621 "to": "now" 1622 }, 1623 "timepicker": { 1624 "refresh_intervals": [ 1625 "5s", 1626 "10s", 1627 "30s", 1628 "2m", 1629 "5m", 1630 "15m", 1631 "30m", 1632 "1h", 1633 "2h", 1634 "1d" 1635 ], 1636 "time_options": [ 1637 "5m", 1638 "15m", 1639 "1h", 1640 "6h", 1641 "12h", 1642 "24h", 1643 "2d", 1644 "7d", 1645 "30d" 1646 ] 1647 }, 1648 "timezone": "browser", 1649 "title": "NGINX Ingress controller", 1650 "uid": "nginx", 1651 "version": 1 1652 }