github.com/nginxinc/kubernetes-ingress@v1.12.5/grafana/NGINXPlusICDashboard.json (about) 1 { 2 "annotations": { 3 "list": [ 4 { 5 "builtIn": 1, 6 "datasource": "-- Grafana --", 7 "enable": true, 8 "hide": true, 9 "iconColor": "rgba(0, 211, 255, 1)", 10 "name": "Annotations & Alerts", 11 "type": "dashboard" 12 } 13 ] 14 }, 15 "description": "A rich collection of Prometheus metrics from NGINX Plus Kubernetes Ingress Controller", 16 "editable": true, 17 "gnetId": 9614, 18 "graphTooltip": 0, 19 "id": 3, 20 "iteration": 1603099772442, 21 "links": [], 22 "panels": [ 23 { 24 "collapsed": false, 25 "datasource": null, 26 "gridPos": { 27 "h": 1, 28 "w": 24, 29 "x": 0, 30 "y": 0 31 }, 32 "id": 122, 33 "panels": [], 34 "title": "Environment Metrics", 35 "type": "row" 36 }, 37 { 38 "cacheTimeout": null, 39 "datasource": "Prometheus", 40 "description": "Status of the last NGINX Plus reload.", 41 "fieldConfig": { 42 "defaults": { 43 "custom": {}, 44 "decimals": 0, 45 "mappings": [ 46 { 47 "id": 0, 48 "op": "=", 49 "text": "N/A", 50 "type": 1, 51 "value": "null" 52 }, 53 { 54 "id": 1, 55 "op": "=", 56 "text": "Successful", 57 "type": 1, 58 "value": "1" 59 }, 60 { 61 "id": 2, 62 "op": "=", 63 "text": "Failure", 64 "type": 1, 65 "value": "0" 66 } 67 ], 68 "nullValueMode": "connected", 69 "thresholds": { 70 "mode": "absolute", 71 "steps": [ 72 { 73 "color": "rgb(228, 0, 43)", 74 "value": null 75 }, 76 { 77 "color": "rgb(228, 0, 43)", 78 "value": 0 79 }, 80 { 81 "color": "rgb(0, 150, 57)", 82 "value": 1 83 } 84 ] 85 }, 86 "unit": "none" 87 }, 88 "overrides": [] 89 }, 90 "gridPos": { 91 "h": 3, 92 "w": 5, 93 "x": 0, 94 "y": 1 95 }, 96 "id": 81, 97 "interval": null, 98 "links": [ 99 { 100 "targetBlank": true, 101 "title": "NGINX Plus Dashboard", 102 "url": "http://127.0.0.1:8080/dashboard.html" 103 } 104 ], 105 "maxDataPoints": 100, 106 "options": { 107 "colorMode": "background", 108 "fieldOptions": { 109 "calcs": [ 110 "lastNotNull" 111 ] 112 }, 113 "graphMode": "none", 114 "justifyMode": "auto", 115 "orientation": "auto", 116 "reduceOptions": { 117 "calcs": [ 118 "mean" 119 ], 120 "fields": "", 121 "values": false 122 }, 123 "textMode": "auto" 124 }, 125 "pluginVersion": "7.2.0", 126 "targets": [ 127 { 128 "expr": "sum(nginx_ingress_controller_nginx_last_reload_status{kubernetes_pod_name=\"$controller\"})", 129 "format": "time_series", 130 "instant": true, 131 "interval": "", 132 "legendFormat": "", 133 "refId": "A" 134 } 135 ], 136 "title": "NGINX Plus Reload", 137 "type": "stat" 138 }, 139 { 140 "cacheTimeout": null, 141 "datasource": "Prometheus", 142 "description": "Number of successful NGINX Plus reloads.", 143 "fieldConfig": { 144 "defaults": { 145 "custom": {}, 146 "decimals": 0, 147 "mappings": [ 148 { 149 "id": 0, 150 "op": "=", 151 "text": "N/A", 152 "type": 1, 153 "value": "null" 154 } 155 ], 156 "nullValueMode": "connected", 157 "thresholds": { 158 "mode": "absolute", 159 "steps": [ 160 { 161 "color": "rgb(0, 150, 57)", 162 "value": null 163 } 164 ] 165 }, 166 "unit": "none" 167 }, 168 "overrides": [] 169 }, 170 "gridPos": { 171 "h": 6, 172 "w": 3, 173 "x": 5, 174 "y": 1 175 }, 176 "id": 83, 177 "interval": null, 178 "links": [], 179 "maxDataPoints": 100, 180 "options": { 181 "colorMode": "value", 182 "fieldOptions": { 183 "calcs": [ 184 "mean" 185 ] 186 }, 187 "graphMode": "none", 188 "justifyMode": "auto", 189 "orientation": "horizontal", 190 "reduceOptions": { 191 "calcs": [ 192 "mean" 193 ], 194 "fields": "", 195 "values": false 196 }, 197 "textMode": "auto" 198 }, 199 "pluginVersion": "7.2.0", 200 "targets": [ 201 { 202 "expr": "sum(nginx_ingress_controller_nginx_reloads_total{kubernetes_pod_name=\"$controller\"})", 203 "instant": true, 204 "interval": "", 205 "legendFormat": "", 206 "refId": "A" 207 } 208 ], 209 "title": "Reloads", 210 "type": "stat" 211 }, 212 { 213 "cacheTimeout": null, 214 "datasource": "Prometheus", 215 "description": "Number of unsuccessful NGINX Plus reloads.", 216 "fieldConfig": { 217 "defaults": { 218 "custom": {}, 219 "mappings": [ 220 { 221 "id": 0, 222 "op": "=", 223 "text": "N/A", 224 "type": 1, 225 "value": "null" 226 } 227 ], 228 "nullValueMode": "connected", 229 "thresholds": { 230 "mode": "absolute", 231 "steps": [ 232 { 233 "color": "rgb(0, 150, 57)", 234 "value": null 235 }, 236 { 237 "color": "rgb(228, 0, 43)", 238 "value": 1 239 } 240 ] 241 }, 242 "unit": "none" 243 }, 244 "overrides": [] 245 }, 246 "gridPos": { 247 "h": 6, 248 "w": 3, 249 "x": 8, 250 "y": 1 251 }, 252 "id": 106, 253 "interval": null, 254 "links": [], 255 "maxDataPoints": 100, 256 "options": { 257 "colorMode": "value", 258 "fieldOptions": { 259 "calcs": [ 260 "lastNotNull" 261 ] 262 }, 263 "graphMode": "none", 264 "justifyMode": "auto", 265 "orientation": "horizontal", 266 "reduceOptions": { 267 "calcs": [ 268 "mean" 269 ], 270 "fields": "", 271 "values": false 272 }, 273 "textMode": "auto" 274 }, 275 "pluginVersion": "7.2.0", 276 "targets": [ 277 { 278 "expr": "sum(nginx_ingress_controller_nginx_reload_errors_total{kubernetes_pod_name=\"$controller\"})", 279 "interval": "", 280 "legendFormat": "", 281 "refId": "A" 282 } 283 ], 284 "timeFrom": null, 285 "timeShift": null, 286 "title": "Reload Errors", 287 "type": "stat" 288 }, 289 { 290 "aliasColors": { 291 "Received": "rgb(0, 150, 57)", 292 "Sent": "rgb(255, 255, 255)" 293 }, 294 "bars": false, 295 "dashLength": 10, 296 "dashes": false, 297 "datasource": "Prometheus", 298 "decimals": 2, 299 "description": "Bytes received from clients and sent to clients.", 300 "editable": true, 301 "error": false, 302 "fieldConfig": { 303 "defaults": { 304 "custom": {}, 305 "links": [] 306 }, 307 "overrides": [] 308 }, 309 "fill": 1, 310 "fillGradient": 5, 311 "grid": {}, 312 "gridPos": { 313 "h": 6, 314 "w": 11, 315 "x": 11, 316 "y": 1 317 }, 318 "height": "200px", 319 "hiddenSeries": false, 320 "id": 32, 321 "isNew": true, 322 "legend": { 323 "alignAsTable": false, 324 "avg": false, 325 "current": true, 326 "max": false, 327 "min": false, 328 "rightSide": false, 329 "show": true, 330 "sideWidth": 250, 331 "sort": "current", 332 "sortDesc": true, 333 "total": true, 334 "values": true 335 }, 336 "lines": true, 337 "linewidth": 2, 338 "links": [], 339 "nullPointMode": "connected", 340 "options": { 341 "alertThreshold": true 342 }, 343 "percentage": false, 344 "pluginVersion": "7.2.0", 345 "pointradius": 5, 346 "points": false, 347 "renderer": "flot", 348 "seriesOverrides": [], 349 "spaceLength": 10, 350 "stack": false, 351 "steppedLine": false, 352 "targets": [ 353 { 354 "expr": "sum( rate(nginx_ingress_nginxplus_server_zone_received[5m]))", 355 "format": "time_series", 356 "instant": false, 357 "interval": "10s", 358 "intervalFactor": 1, 359 "legendFormat": "Received", 360 "metric": "network", 361 "refId": "C", 362 "step": 10 363 }, 364 { 365 "expr": "sum( rate(nginx_ingress_nginxplus_server_zone_sent[5m]))", 366 "format": "time_series", 367 "hide": false, 368 "interval": "10s", 369 "intervalFactor": 1, 370 "legendFormat": "Sent", 371 "metric": "network", 372 "refId": "D", 373 "step": 10 374 } 375 ], 376 "thresholds": [], 377 "timeFrom": null, 378 "timeRegions": [], 379 "timeShift": null, 380 "title": "Network I/O", 381 "tooltip": { 382 "msResolution": false, 383 "shared": true, 384 "sort": 0, 385 "value_type": "cumulative" 386 }, 387 "type": "graph", 388 "xaxis": { 389 "buckets": null, 390 "mode": "time", 391 "name": null, 392 "show": true, 393 "values": [] 394 }, 395 "yaxes": [ 396 { 397 "format": "Bps", 398 "label": null, 399 "logBase": 1, 400 "max": null, 401 "min": null, 402 "show": true 403 }, 404 { 405 "format": "Bps", 406 "label": null, 407 "logBase": 1, 408 "max": null, 409 "min": null, 410 "show": false 411 } 412 ], 413 "yaxis": { 414 "align": false, 415 "alignLevel": null 416 } 417 }, 418 { 419 "datasource": "Prometheus", 420 "description": "Last controller reload milliseconds.", 421 "fieldConfig": { 422 "defaults": { 423 "custom": {}, 424 "mappings": [ 425 { 426 "from": "", 427 "id": 0, 428 "operator": "", 429 "text": "N/A", 430 "to": "", 431 "type": 1 432 } 433 ], 434 "thresholds": { 435 "mode": "absolute", 436 "steps": [ 437 { 438 "color": "rgb(0, 150, 57)", 439 "value": null 440 } 441 ] 442 }, 443 "unit": "ms" 444 }, 445 "overrides": [] 446 }, 447 "gridPos": { 448 "h": 3, 449 "w": 5, 450 "x": 0, 451 "y": 4 452 }, 453 "id": 128, 454 "options": { 455 "colorMode": "value", 456 "graphMode": "none", 457 "justifyMode": "auto", 458 "orientation": "auto", 459 "reduceOptions": { 460 "calcs": [ 461 "mean" 462 ], 463 "fields": "", 464 "values": false 465 }, 466 "textMode": "auto" 467 }, 468 "pluginVersion": "7.2.0", 469 "targets": [ 470 { 471 "expr": "avg(nginx_ingress_controller_nginx_last_reload_milliseconds{kubernetes_pod_name=\"$controller\"})", 472 "interval": "", 473 "legendFormat": "", 474 "refId": "A" 475 } 476 ], 477 "timeFrom": null, 478 "timeShift": null, 479 "title": "Last Reload Time", 480 "type": "stat" 481 }, 482 { 483 "collapsed": true, 484 "datasource": null, 485 "gridPos": { 486 "h": 1, 487 "w": 24, 488 "x": 0, 489 "y": 7 490 }, 491 "id": 118, 492 "panels": [ 493 { 494 "cacheTimeout": null, 495 "datasource": "Prometheus", 496 "description": "Total http requests per second looking back over the last 5 minutes.", 497 "fieldConfig": { 498 "defaults": { 499 "custom": { 500 "align": null 501 }, 502 "mappings": [ 503 { 504 "id": 0, 505 "op": "=", 506 "text": "N/A", 507 "type": 1, 508 "value": "null" 509 } 510 ], 511 "nullValueMode": "connected", 512 "thresholds": { 513 "mode": "absolute", 514 "steps": [ 515 { 516 "color": "rgb(0, 150, 57)", 517 "value": null 518 } 519 ] 520 }, 521 "unit": "none" 522 }, 523 "overrides": [] 524 }, 525 "gridPos": { 526 "h": 5, 527 "w": 10, 528 "x": 0, 529 "y": 8 530 }, 531 "id": 20, 532 "interval": null, 533 "links": [], 534 "maxDataPoints": 100, 535 "options": { 536 "colorMode": "value", 537 "graphMode": "area", 538 "justifyMode": "auto", 539 "orientation": "auto", 540 "reduceOptions": { 541 "calcs": [ 542 "mean" 543 ], 544 "fields": "", 545 "values": false 546 }, 547 "textMode": "auto" 548 }, 549 "pluginVersion": "7.2.0", 550 "targets": [ 551 { 552 "expr": "sum( irate(nginx_ingress_nginxplus_http_requests_total{kubernetes_pod_name=\"$controller\"}[5m]))", 553 "interval": "", 554 "legendFormat": "", 555 "refId": "A" 556 } 557 ], 558 "timeFrom": null, 559 "timeShift": null, 560 "title": "HTTP Request Volume", 561 "type": "stat" 562 }, 563 { 564 "datasource": "Prometheus", 565 "description": "Total number of deployed Ingress .", 566 "fieldConfig": { 567 "defaults": { 568 "custom": {}, 569 "decimals": 0, 570 "mappings": [], 571 "thresholds": { 572 "mode": "absolute", 573 "steps": [ 574 { 575 "color": "rgb(0, 150, 57)", 576 "value": null 577 } 578 ] 579 }, 580 "unit": "none" 581 }, 582 "overrides": [] 583 }, 584 "gridPos": { 585 "h": 3, 586 "w": 5, 587 "x": 10, 588 "y": 8 589 }, 590 "id": 120, 591 "options": { 592 "colorMode": "value", 593 "graphMode": "none", 594 "justifyMode": "auto", 595 "orientation": "horizontal", 596 "reduceOptions": { 597 "calcs": [ 598 "mean" 599 ], 600 "fields": "", 601 "values": false 602 }, 603 "textMode": "auto" 604 }, 605 "pluginVersion": "7.2.0", 606 "targets": [ 607 { 608 "expr": "sum(nginx_ingress_controller_ingress_resources_total)", 609 "interval": "", 610 "legendFormat": "", 611 "refId": "A" 612 } 613 ], 614 "timeFrom": null, 615 "timeShift": null, 616 "title": "Ingress Count", 617 "type": "stat" 618 }, 619 { 620 "datasource": "Prometheus", 621 "description": "Total http requests per second looking back over the last 5 minutes across all server zones.", 622 "fieldConfig": { 623 "defaults": { 624 "custom": { 625 "align": null 626 }, 627 "mappings": [], 628 "thresholds": { 629 "mode": "absolute", 630 "steps": [ 631 { 632 "color": "rgb(0, 150, 57)", 633 "value": null 634 }, 635 { 636 "color": "rgb(228, 0, 43)", 637 "value": 80 638 } 639 ] 640 } 641 }, 642 "overrides": [] 643 }, 644 "gridPos": { 645 "h": 5, 646 "w": 9, 647 "x": 15, 648 "y": 8 649 }, 650 "id": 86, 651 "links": [], 652 "options": { 653 "colorMode": "value", 654 "graphMode": "area", 655 "justifyMode": "auto", 656 "orientation": "auto", 657 "reduceOptions": { 658 "calcs": [ 659 "mean" 660 ], 661 "fields": "", 662 "values": false 663 }, 664 "textMode": "auto" 665 }, 666 "pluginVersion": "7.2.0", 667 "repeat": null, 668 "repeatDirection": "h", 669 "targets": [ 670 { 671 "expr": "sum( irate(nginx_ingress_nginxplus_server_zone_requests{kubernetes_pod_name=\"$controller\"}[5m]))", 672 "format": "time_series", 673 "hide": false, 674 "instant": false, 675 "interval": "", 676 "intervalFactor": 5, 677 "legendFormat": "{{ ingress }}", 678 "metric": "network", 679 "refId": "A", 680 "step": 10 681 } 682 ], 683 "timeFrom": null, 684 "timeShift": null, 685 "title": "Zone Request Volume", 686 "type": "stat" 687 }, 688 { 689 "datasource": "Prometheus", 690 "fieldConfig": { 691 "defaults": { 692 "custom": {}, 693 "mappings": [], 694 "thresholds": { 695 "mode": "absolute", 696 "steps": [ 697 { 698 "color": "rgb(0, 150, 57)", 699 "value": null 700 } 701 ] 702 } 703 }, 704 "overrides": [] 705 }, 706 "gridPos": { 707 "h": 3, 708 "w": 5, 709 "x": 10, 710 "y": 11 711 }, 712 "id": 140, 713 "options": { 714 "colorMode": "value", 715 "graphMode": "none", 716 "justifyMode": "center", 717 "orientation": "auto", 718 "reduceOptions": { 719 "calcs": [ 720 "mean" 721 ], 722 "fields": "", 723 "values": false 724 }, 725 "textMode": "auto" 726 }, 727 "pluginVersion": "7.2.0", 728 "targets": [ 729 { 730 "expr": "sum(nginx_ingress_controller_ingress_resources_total{type=\"master\"})", 731 "interval": "", 732 "legendFormat": "master", 733 "refId": "A" 734 }, 735 { 736 "expr": "sum(nginx_ingress_controller_ingress_resources_total{type=\"minion\"})", 737 "interval": "", 738 "legendFormat": "minion", 739 "refId": "B" 740 }, 741 { 742 "expr": "sum(nginx_ingress_controller_ingress_resources_total{type=\"regular\"})", 743 "interval": "", 744 "legendFormat": "regular", 745 "refId": "C" 746 } 747 ], 748 "timeFrom": null, 749 "timeShift": null, 750 "title": "Handled Ingress Resources", 751 "type": "stat" 752 }, 753 { 754 "aliasColors": { 755 "Informational": "rgb(204, 204, 204)", 756 "Redirection": "rgb(29, 156, 211)", 757 "Success": "rgb(0, 150, 57)" 758 }, 759 "bars": false, 760 "dashLength": 10, 761 "dashes": false, 762 "datasource": "Prometheus", 763 "decimals": null, 764 "description": " 1|2|3xx response status codes.", 765 "fieldConfig": { 766 "defaults": { 767 "custom": { 768 "align": null 769 }, 770 "links": [], 771 "mappings": [], 772 "thresholds": { 773 "mode": "absolute", 774 "steps": [ 775 { 776 "color": "green", 777 "value": null 778 }, 779 { 780 "color": "red", 781 "value": 80 782 }, 783 { 784 "color": "#EAB839", 785 "value": 90 786 }, 787 { 788 "color": "#6ED0E0", 789 "value": 100 790 } 791 ] 792 }, 793 "unit": "cps" 794 }, 795 "overrides": [] 796 }, 797 "fill": 1, 798 "fillGradient": 5, 799 "gridPos": { 800 "h": 7, 801 "w": 10, 802 "x": 0, 803 "y": 13 804 }, 805 "hiddenSeries": false, 806 "id": 101, 807 "legend": { 808 "avg": false, 809 "current": true, 810 "max": false, 811 "min": false, 812 "show": true, 813 "total": true, 814 "values": true 815 }, 816 "lines": true, 817 "linewidth": 2, 818 "links": [], 819 "nullPointMode": "null", 820 "options": { 821 "alertThreshold": true 822 }, 823 "percentage": false, 824 "pluginVersion": "7.2.0", 825 "pointradius": 2, 826 "points": false, 827 "renderer": "flot", 828 "seriesOverrides": [], 829 "spaceLength": 10, 830 "stack": false, 831 "steppedLine": false, 832 "targets": [ 833 { 834 "expr": "sum(rate(nginx_ingress_nginxplus_server_zone_responses{code=\"1xx\"}[5m])) by (ingress)", 835 "interval": "", 836 "legendFormat": "Informational", 837 "refId": "A" 838 }, 839 { 840 "expr": "sum(rate(nginx_ingress_nginxplus_server_zone_responses{code=\"2xx\"}[5m]))", 841 "interval": "", 842 "legendFormat": "Success", 843 "refId": "B" 844 }, 845 { 846 "expr": "sum(rate(nginx_ingress_nginxplus_server_zone_responses{code=\"3xx\"}[5m]))", 847 "format": "time_series", 848 "hide": false, 849 "instant": false, 850 "interval": "", 851 "intervalFactor": 1, 852 "legendFormat": "Redirection", 853 "metric": "container_memory_usage:sort_desc", 854 "refId": "C", 855 "step": 10 856 } 857 ], 858 "thresholds": [], 859 "timeFrom": null, 860 "timeRegions": [], 861 "timeShift": null, 862 "title": "Success Rates Over Time", 863 "tooltip": { 864 "shared": true, 865 "sort": 0, 866 "value_type": "individual" 867 }, 868 "type": "graph", 869 "xaxis": { 870 "buckets": null, 871 "mode": "time", 872 "name": null, 873 "show": true, 874 "values": [] 875 }, 876 "yaxes": [ 877 { 878 "format": "cps", 879 "label": null, 880 "logBase": 1, 881 "max": null, 882 "min": null, 883 "show": true 884 }, 885 { 886 "format": "short", 887 "label": null, 888 "logBase": 1, 889 "max": null, 890 "min": null, 891 "show": true 892 } 893 ], 894 "yaxis": { 895 "align": false, 896 "alignLevel": null 897 } 898 }, 899 { 900 "aliasColors": { 901 "4xx": "dark-red", 902 "5xx": "dark-orange", 903 "Client Errors": "rgb(242, 154, 54)", 904 "Server Errors": "rgb(228, 0, 43)", 905 "max - istio-proxy": "#890f02", 906 "max - master": "#bf1b00", 907 "max - prometheus": "#bf1b00" 908 }, 909 "bars": false, 910 "dashLength": 10, 911 "dashes": false, 912 "datasource": "Prometheus", 913 "decimals": 0, 914 "description": " 4|5xx response status codes.", 915 "editable": false, 916 "error": false, 917 "fieldConfig": { 918 "defaults": { 919 "custom": {}, 920 "links": [] 921 }, 922 "overrides": [] 923 }, 924 "fill": 1, 925 "fillGradient": 5, 926 "grid": {}, 927 "gridPos": { 928 "h": 7, 929 "w": 9, 930 "x": 15, 931 "y": 13 932 }, 933 "hiddenSeries": false, 934 "id": 87, 935 "isNew": true, 936 "legend": { 937 "alignAsTable": false, 938 "avg": false, 939 "current": true, 940 "hideEmpty": true, 941 "hideZero": false, 942 "max": false, 943 "min": false, 944 "rightSide": false, 945 "show": true, 946 "sideWidth": 300, 947 "sort": "avg", 948 "sortDesc": true, 949 "total": true, 950 "values": true 951 }, 952 "lines": true, 953 "linewidth": 2, 954 "links": [], 955 "nullPointMode": "connected", 956 "options": { 957 "alertThreshold": true 958 }, 959 "percentage": false, 960 "pluginVersion": "7.2.0", 961 "pointradius": 5, 962 "points": false, 963 "renderer": "flot", 964 "seriesOverrides": [], 965 "spaceLength": 10, 966 "stack": false, 967 "steppedLine": false, 968 "targets": [ 969 { 970 "expr": "sum(rate(nginx_ingress_nginxplus_server_zone_responses{code=~\"[4].*\"}[2m]))", 971 "format": "time_series", 972 "instant": false, 973 "interval": "", 974 "intervalFactor": 1, 975 "legendFormat": "Client Errors", 976 "metric": "container_memory_usage:sort_desc", 977 "refId": "C", 978 "step": 10 979 }, 980 { 981 "expr": "sum(rate(nginx_ingress_nginxplus_server_zone_responses{code=~\"[5].*\"}[2m]))", 982 "format": "time_series", 983 "instant": false, 984 "interval": "", 985 "intervalFactor": 1, 986 "legendFormat": "Server Errors", 987 "metric": "container_memory_usage:sort_desc", 988 "refId": "D", 989 "step": 10 990 } 991 ], 992 "thresholds": [], 993 "timeFrom": null, 994 "timeRegions": [], 995 "timeShift": null, 996 "title": "Error Rates Over Time", 997 "tooltip": { 998 "msResolution": false, 999 "shared": true, 1000 "sort": 1, 1001 "value_type": "cumulative" 1002 }, 1003 "type": "graph", 1004 "xaxis": { 1005 "buckets": null, 1006 "mode": "time", 1007 "name": null, 1008 "show": true, 1009 "values": [] 1010 }, 1011 "yaxes": [ 1012 { 1013 "format": "none", 1014 "label": null, 1015 "logBase": 1, 1016 "max": null, 1017 "min": null, 1018 "show": true 1019 }, 1020 { 1021 "format": "short", 1022 "label": null, 1023 "logBase": 1, 1024 "max": null, 1025 "min": null, 1026 "show": false 1027 } 1028 ], 1029 "yaxis": { 1030 "align": false, 1031 "alignLevel": null 1032 } 1033 }, 1034 { 1035 "datasource": "Prometheus", 1036 "description": "Current State of the NGINX Ingress Controller.", 1037 "fieldConfig": { 1038 "defaults": { 1039 "custom": {}, 1040 "mappings": [ 1041 { 1042 "from": "", 1043 "id": 0, 1044 "operator": "", 1045 "text": "N/A", 1046 "to": "", 1047 "type": 1 1048 }, 1049 { 1050 "from": "", 1051 "id": 1, 1052 "operator": "", 1053 "text": "UP", 1054 "to": "", 1055 "type": 1, 1056 "value": "1" 1057 }, 1058 { 1059 "from": "", 1060 "id": 2, 1061 "operator": "", 1062 "text": "DOWN", 1063 "to": "", 1064 "type": 1, 1065 "value": "0" 1066 } 1067 ], 1068 "thresholds": { 1069 "mode": "absolute", 1070 "steps": [ 1071 { 1072 "color": "green", 1073 "value": null 1074 }, 1075 { 1076 "color": "rgb(228, 0, 43)", 1077 "value": 0 1078 }, 1079 { 1080 "color": "rgb(0, 150, 57)", 1081 "value": 1 1082 } 1083 ] 1084 } 1085 }, 1086 "overrides": [] 1087 }, 1088 "gridPos": { 1089 "h": 3, 1090 "w": 5, 1091 "x": 10, 1092 "y": 14 1093 }, 1094 "id": 132, 1095 "links": [ 1096 { 1097 "targetBlank": true, 1098 "title": "NGINX Plus Dashboard", 1099 "url": "http://127.0.0.1:8080/dashboard.html#" 1100 } 1101 ], 1102 "options": { 1103 "colorMode": "background", 1104 "graphMode": "none", 1105 "justifyMode": "auto", 1106 "orientation": "horizontal", 1107 "reduceOptions": { 1108 "calcs": [ 1109 "mean" 1110 ], 1111 "fields": "", 1112 "values": false 1113 }, 1114 "textMode": "auto" 1115 }, 1116 "pluginVersion": "7.2.0", 1117 "targets": [ 1118 { 1119 "expr": "sum(nginx_ingress_nginxplus_up{kubernetes_pod_name=\"$controller\"})", 1120 "interval": "", 1121 "legendFormat": "", 1122 "refId": "A" 1123 } 1124 ], 1125 "timeFrom": null, 1126 "timeShift": null, 1127 "title": "Ingress State", 1128 "type": "stat" 1129 }, 1130 { 1131 "cacheTimeout": null, 1132 "datasource": "Prometheus", 1133 "description": "Non-4|5xx response status codes divided by total number of response status codes.", 1134 "fieldConfig": { 1135 "defaults": { 1136 "custom": {}, 1137 "mappings": [ 1138 { 1139 "id": 0, 1140 "op": "=", 1141 "text": "N/A", 1142 "type": 1, 1143 "value": "null" 1144 } 1145 ], 1146 "nullValueMode": "connected", 1147 "thresholds": { 1148 "mode": "percentage", 1149 "steps": [ 1150 { 1151 "color": "rgb(228, 0, 43)", 1152 "value": null 1153 }, 1154 { 1155 "color": "rgb(242, 154, 54)", 1156 "value": 90 1157 }, 1158 { 1159 "color": "rgb(255, 242, 0)", 1160 "value": 95 1161 }, 1162 { 1163 "color": "rgb(0, 150, 57)", 1164 "value": 99.9999 1165 } 1166 ] 1167 }, 1168 "unit": "percentunit" 1169 }, 1170 "overrides": [] 1171 }, 1172 "gridPos": { 1173 "h": 3, 1174 "w": 5, 1175 "x": 10, 1176 "y": 17 1177 }, 1178 "id": 21, 1179 "interval": null, 1180 "links": [], 1181 "maxDataPoints": 100, 1182 "options": { 1183 "colorMode": "value", 1184 "graphMode": "none", 1185 "justifyMode": "auto", 1186 "orientation": "auto", 1187 "reduceOptions": { 1188 "calcs": [ 1189 "mean" 1190 ], 1191 "fields": "", 1192 "values": false 1193 }, 1194 "textMode": "auto" 1195 }, 1196 "pluginVersion": "7.2.0", 1197 "targets": [ 1198 { 1199 "expr": "sum(rate(nginx_ingress_nginxplus_server_zone_responses{code!~\"[4-5].*\"}[5m])) / sum(rate(nginx_ingress_nginxplus_server_zone_responses[5m]))", 1200 "format": "time_series", 1201 "hide": false, 1202 "interval": "", 1203 "intervalFactor": 1, 1204 "legendFormat": "", 1205 "refId": "B", 1206 "step": 4 1207 } 1208 ], 1209 "timeFrom": null, 1210 "timeShift": null, 1211 "title": "Request Success Rate", 1212 "type": "stat" 1213 } 1214 ], 1215 "title": "Ingress Metrics", 1216 "type": "row" 1217 }, 1218 { 1219 "collapsed": true, 1220 "datasource": null, 1221 "gridPos": { 1222 "h": 1, 1223 "w": 24, 1224 "x": 0, 1225 "y": 8 1226 }, 1227 "id": 134, 1228 "panels": [ 1229 { 1230 "aliasColors": { 1231 "Informational": "rgb(204, 204, 204)", 1232 "Redirection": "rgb(78, 67, 164)", 1233 "Success": "rgb(0, 150, 57)" 1234 }, 1235 "bars": false, 1236 "dashLength": 10, 1237 "dashes": false, 1238 "datasource": "Prometheus", 1239 "description": "Upstream success rate Over Time.", 1240 "fieldConfig": { 1241 "defaults": { 1242 "custom": {}, 1243 "links": [] 1244 }, 1245 "overrides": [] 1246 }, 1247 "fill": 1, 1248 "fillGradient": 5, 1249 "gridPos": { 1250 "h": 6, 1251 "w": 11, 1252 "x": 0, 1253 "y": 9 1254 }, 1255 "hiddenSeries": false, 1256 "id": 136, 1257 "legend": { 1258 "alignAsTable": false, 1259 "avg": false, 1260 "current": true, 1261 "max": false, 1262 "min": false, 1263 "show": true, 1264 "total": true, 1265 "values": true 1266 }, 1267 "lines": true, 1268 "linewidth": 2, 1269 "nullPointMode": "null", 1270 "options": { 1271 "alertThreshold": true 1272 }, 1273 "percentage": false, 1274 "pluginVersion": "7.2.0", 1275 "pointradius": 2, 1276 "points": false, 1277 "renderer": "flot", 1278 "seriesOverrides": [], 1279 "spaceLength": 10, 1280 "stack": false, 1281 "steppedLine": false, 1282 "targets": [ 1283 { 1284 "expr": "sum(rate(nginx_ingress_nginxplus_upstream_server_responses{code=\"1xx\"}[5m]))", 1285 "interval": "", 1286 "legendFormat": "Informational", 1287 "refId": "A" 1288 }, 1289 { 1290 "expr": "sum(rate(nginx_ingress_nginxplus_upstream_server_responses{code=\"2xx\"}[5m]))", 1291 "interval": "", 1292 "legendFormat": "Success", 1293 "refId": "B" 1294 }, 1295 { 1296 "expr": "sum(rate(nginx_ingress_nginxplus_upstream_server_responses{code=\"3xx\"}[5m]))", 1297 "interval": "", 1298 "legendFormat": "Redirection", 1299 "refId": "C" 1300 } 1301 ], 1302 "thresholds": [], 1303 "timeFrom": null, 1304 "timeRegions": [], 1305 "timeShift": null, 1306 "title": "Upstream Success Rate", 1307 "tooltip": { 1308 "shared": true, 1309 "sort": 0, 1310 "value_type": "individual" 1311 }, 1312 "type": "graph", 1313 "xaxis": { 1314 "buckets": null, 1315 "mode": "time", 1316 "name": null, 1317 "show": true, 1318 "values": [] 1319 }, 1320 "yaxes": [ 1321 { 1322 "format": "short", 1323 "label": null, 1324 "logBase": 1, 1325 "max": null, 1326 "min": null, 1327 "show": true 1328 }, 1329 { 1330 "format": "short", 1331 "label": null, 1332 "logBase": 1, 1333 "max": null, 1334 "min": null, 1335 "show": true 1336 } 1337 ], 1338 "yaxis": { 1339 "align": false, 1340 "alignLevel": null 1341 } 1342 }, 1343 { 1344 "datasource": "Prometheus", 1345 "description": "Total number of upstream servers.", 1346 "fieldConfig": { 1347 "defaults": { 1348 "custom": {}, 1349 "mappings": [ 1350 { 1351 "from": "", 1352 "id": 0, 1353 "operator": "", 1354 "text": "N/A", 1355 "to": "", 1356 "type": 1 1357 } 1358 ], 1359 "thresholds": { 1360 "mode": "absolute", 1361 "steps": [ 1362 { 1363 "color": "rgb(0, 150, 57)", 1364 "value": null 1365 } 1366 ] 1367 }, 1368 "unit": "none" 1369 }, 1370 "overrides": [] 1371 }, 1372 "gridPos": { 1373 "h": 3, 1374 "w": 3, 1375 "x": 11, 1376 "y": 9 1377 }, 1378 "id": 124, 1379 "options": { 1380 "colorMode": "value", 1381 "graphMode": "none", 1382 "justifyMode": "center", 1383 "orientation": "horizontal", 1384 "reduceOptions": { 1385 "calcs": [ 1386 "mean" 1387 ], 1388 "fields": "", 1389 "values": false 1390 }, 1391 "textMode": "auto" 1392 }, 1393 "pluginVersion": "7.2.0", 1394 "targets": [ 1395 { 1396 "expr": "count(nginx_ingress_nginxplus_upstream_server_state)", 1397 "interval": "", 1398 "legendFormat": "", 1399 "refId": "A" 1400 }, 1401 { 1402 "expr": "count(nginx_ingress_nginxplus_upstream_server_state) / sum(kube_pod_status_phase)", 1403 "hide": true, 1404 "interval": "", 1405 "legendFormat": "", 1406 "refId": "B" 1407 } 1408 ], 1409 "timeFrom": null, 1410 "timeShift": null, 1411 "title": "Upstream Server Count", 1412 "type": "stat" 1413 }, 1414 { 1415 "aliasColors": { 1416 "Client Errors": "rgb(204, 204, 204)", 1417 "Server Errors": "rgb(255, 242, 0)" 1418 }, 1419 "bars": false, 1420 "dashLength": 10, 1421 "dashes": false, 1422 "datasource": "Prometheus", 1423 "description": " 4|5xx Status Codes", 1424 "fieldConfig": { 1425 "defaults": { 1426 "custom": {}, 1427 "links": [] 1428 }, 1429 "overrides": [] 1430 }, 1431 "fill": 1, 1432 "fillGradient": 5, 1433 "gridPos": { 1434 "h": 6, 1435 "w": 10, 1436 "x": 14, 1437 "y": 9 1438 }, 1439 "hiddenSeries": false, 1440 "id": 138, 1441 "legend": { 1442 "avg": false, 1443 "current": true, 1444 "max": false, 1445 "min": false, 1446 "show": true, 1447 "total": true, 1448 "values": true 1449 }, 1450 "lines": true, 1451 "linewidth": 2, 1452 "nullPointMode": "connected", 1453 "options": { 1454 "alertThreshold": true 1455 }, 1456 "percentage": false, 1457 "pluginVersion": "7.2.0", 1458 "pointradius": 2, 1459 "points": false, 1460 "renderer": "flot", 1461 "seriesOverrides": [], 1462 "spaceLength": 10, 1463 "stack": false, 1464 "steppedLine": false, 1465 "targets": [ 1466 { 1467 "expr": "sum(rate(nginx_ingress_nginxplus_upstream_server_responses{code=~\"[4].*\"}[2m]))", 1468 "interval": "", 1469 "legendFormat": "Client Errors", 1470 "refId": "A" 1471 }, 1472 { 1473 "expr": "sum(rate(nginx_ingress_nginxplus_upstream_server_responses{code=~\"[5].*\"}[2m]))", 1474 "interval": "", 1475 "legendFormat": "Server Errors", 1476 "refId": "B" 1477 } 1478 ], 1479 "thresholds": [], 1480 "timeFrom": null, 1481 "timeRegions": [], 1482 "timeShift": null, 1483 "title": "Upstream Error Rate", 1484 "tooltip": { 1485 "shared": true, 1486 "sort": 1, 1487 "value_type": "individual" 1488 }, 1489 "type": "graph", 1490 "xaxis": { 1491 "buckets": null, 1492 "mode": "time", 1493 "name": null, 1494 "show": true, 1495 "values": [] 1496 }, 1497 "yaxes": [ 1498 { 1499 "format": "short", 1500 "label": null, 1501 "logBase": 1, 1502 "max": null, 1503 "min": null, 1504 "show": true 1505 }, 1506 { 1507 "format": "short", 1508 "label": null, 1509 "logBase": 1, 1510 "max": null, 1511 "min": null, 1512 "show": false 1513 } 1514 ], 1515 "yaxis": { 1516 "align": false, 1517 "alignLevel": null 1518 } 1519 }, 1520 { 1521 "datasource": "Prometheus", 1522 "description": "Current State of the upstream servers.", 1523 "fieldConfig": { 1524 "defaults": { 1525 "custom": {}, 1526 "mappings": [ 1527 { 1528 "from": "1", 1529 "id": 0, 1530 "operator": "", 1531 "text": "UP", 1532 "to": "10000", 1533 "type": 2, 1534 "value": "2" 1535 }, 1536 { 1537 "from": "", 1538 "id": 1, 1539 "operator": "", 1540 "text": "DOWN", 1541 "to": "", 1542 "type": 1, 1543 "value": "0" 1544 } 1545 ], 1546 "thresholds": { 1547 "mode": "absolute", 1548 "steps": [ 1549 { 1550 "color": "green", 1551 "value": null 1552 }, 1553 { 1554 "color": "rgb(228, 0, 43)", 1555 "value": 0 1556 }, 1557 { 1558 "color": "rgb(0, 150, 57)", 1559 "value": 1 1560 } 1561 ] 1562 } 1563 }, 1564 "overrides": [] 1565 }, 1566 "gridPos": { 1567 "h": 3, 1568 "w": 3, 1569 "x": 11, 1570 "y": 12 1571 }, 1572 "id": 144, 1573 "options": { 1574 "colorMode": "background", 1575 "graphMode": "none", 1576 "justifyMode": "center", 1577 "orientation": "horizontal", 1578 "reduceOptions": { 1579 "calcs": [ 1580 "mean" 1581 ], 1582 "fields": "", 1583 "values": false 1584 }, 1585 "textMode": "auto" 1586 }, 1587 "pluginVersion": "7.2.0", 1588 "targets": [ 1589 { 1590 "expr": "sum(nginx_ingress_nginxplus_upstream_server_state)", 1591 "interval": "", 1592 "legendFormat": "", 1593 "refId": "A" 1594 } 1595 ], 1596 "timeFrom": null, 1597 "timeShift": null, 1598 "title": "Upstream Server State", 1599 "type": "stat" 1600 } 1601 ], 1602 "title": "Upstream Metrics", 1603 "type": "row" 1604 }, 1605 { 1606 "collapsed": true, 1607 "datasource": null, 1608 "gridPos": { 1609 "h": 1, 1610 "w": 24, 1611 "x": 0, 1612 "y": 9 1613 }, 1614 "id": 150, 1615 "panels": [ 1616 { 1617 "aliasColors": {}, 1618 "bars": false, 1619 "cacheTimeout": null, 1620 "dashLength": 10, 1621 "dashes": false, 1622 "datasource": "Prometheus", 1623 "description": "", 1624 "fieldConfig": { 1625 "defaults": { 1626 "custom": {}, 1627 "links": [] 1628 }, 1629 "overrides": [] 1630 }, 1631 "fill": 1, 1632 "fillGradient": 0, 1633 "gridPos": { 1634 "h": 6, 1635 "w": 24, 1636 "x": 0, 1637 "y": 10 1638 }, 1639 "hiddenSeries": false, 1640 "id": 111, 1641 "legend": { 1642 "avg": false, 1643 "current": false, 1644 "max": false, 1645 "min": false, 1646 "show": true, 1647 "total": false, 1648 "values": false 1649 }, 1650 "lines": true, 1651 "linewidth": 1, 1652 "links": [], 1653 "nullPointMode": "null", 1654 "options": { 1655 "alertThreshold": true 1656 }, 1657 "percentage": false, 1658 "pluginVersion": "7.2.0", 1659 "pointradius": 2, 1660 "points": false, 1661 "renderer": "flot", 1662 "seriesOverrides": [], 1663 "spaceLength": 10, 1664 "stack": false, 1665 "steppedLine": false, 1666 "targets": [ 1667 { 1668 "expr": "irate(nginx_ingress_nginxplus_ssl_handshakes{instance=~\"$instance\"}[5m])", 1669 "format": "time_series", 1670 "interval": "", 1671 "legendFormat": "{{instance}} Handshakes", 1672 "refId": "A" 1673 }, 1674 { 1675 "expr": "irate(nginx_ingress_nginxplus_ssl_handshakes_failed{instance=~\"$instance\"}[5m])", 1676 "format": "time_series", 1677 "legendFormat": "{{instance}} Failed", 1678 "refId": "B" 1679 }, 1680 { 1681 "expr": "irate(nginx_ingress_nginxplus_ssl_sessions_reuses{instance=~\"$instance\"}[5m])", 1682 "format": "time_series", 1683 "legendFormat": "{{instance}} Reuses", 1684 "refId": "C" 1685 } 1686 ], 1687 "thresholds": [], 1688 "timeFrom": null, 1689 "timeRegions": [], 1690 "timeShift": null, 1691 "title": "SSL Performance", 1692 "tooltip": { 1693 "shared": true, 1694 "sort": 0, 1695 "value_type": "individual" 1696 }, 1697 "type": "graph", 1698 "xaxis": { 1699 "buckets": null, 1700 "mode": "time", 1701 "name": null, 1702 "show": true, 1703 "values": [] 1704 }, 1705 "yaxes": [ 1706 { 1707 "format": "short", 1708 "label": null, 1709 "logBase": 1, 1710 "max": null, 1711 "min": null, 1712 "show": true 1713 }, 1714 { 1715 "format": "short", 1716 "label": null, 1717 "logBase": 1, 1718 "max": null, 1719 "min": null, 1720 "show": true 1721 } 1722 ], 1723 "yaxis": { 1724 "align": false, 1725 "alignLevel": null 1726 } 1727 } 1728 ], 1729 "title": "SSL Metrics", 1730 "type": "row" 1731 } 1732 ], 1733 "refresh": "", 1734 "schemaVersion": 26, 1735 "style": "dark", 1736 "tags": [ 1737 "nginx", 1738 "plus", 1739 "ingress" 1740 ], 1741 "templating": { 1742 "list": [ 1743 { 1744 "allValue": ".*", 1745 "current": { 1746 "selected": true, 1747 "text": [ 1748 "All" 1749 ], 1750 "value": [ 1751 "$__all" 1752 ] 1753 }, 1754 "datasource": "Prometheus", 1755 "definition": "label_values(container_memory_usage_bytes{namespace=~\".+\",container_name!=\"POD\"},namespace)", 1756 "hide": 0, 1757 "includeAll": true, 1758 "label": "Namespace", 1759 "multi": true, 1760 "name": "namespace", 1761 "options": [], 1762 "query": "label_values(container_memory_usage_bytes{namespace=~\".+\",container_name!=\"POD\"},namespace)", 1763 "refresh": 1, 1764 "regex": "", 1765 "skipUrlSync": false, 1766 "sort": 0, 1767 "tagValuesQuery": "", 1768 "tags": [], 1769 "tagsQuery": "", 1770 "type": "query", 1771 "useTags": false 1772 }, 1773 { 1774 "allValue": ".*", 1775 "current": { 1776 "isNone": true, 1777 "selected": false, 1778 "text": "None", 1779 "value": "" 1780 }, 1781 "datasource": "Prometheus", 1782 "definition": "label_values(nginx_ingress_controller_ingress_resources_total, kubernetes_pod_name) ", 1783 "hide": 0, 1784 "includeAll": false, 1785 "label": "NGINX Plus Controller", 1786 "multi": false, 1787 "name": "controller", 1788 "options": [], 1789 "query": "label_values(nginx_ingress_controller_ingress_resources_total, kubernetes_pod_name) ", 1790 "refresh": 1, 1791 "regex": "", 1792 "skipUrlSync": false, 1793 "sort": 0, 1794 "tagValuesQuery": "", 1795 "tags": [], 1796 "tagsQuery": "", 1797 "type": "query", 1798 "useTags": false 1799 }, 1800 { 1801 "allValue": ".*", 1802 "current": { 1803 "selected": true, 1804 "text": [ 1805 "All" 1806 ], 1807 "value": [ 1808 "$__all" 1809 ] 1810 }, 1811 "datasource": "Prometheus", 1812 "definition": "label_values(nginx_ingress_nginxplus_server_zone_processing,server_zone)", 1813 "hide": 0, 1814 "includeAll": true, 1815 "label": "Server Zone", 1816 "multi": true, 1817 "name": "server_zone", 1818 "options": [], 1819 "query": "label_values(nginx_ingress_nginxplus_server_zone_processing,server_zone)", 1820 "refresh": 1, 1821 "regex": "", 1822 "skipUrlSync": false, 1823 "sort": 1, 1824 "tagValuesQuery": "", 1825 "tags": [], 1826 "tagsQuery": "", 1827 "type": "query", 1828 "useTags": false 1829 }, 1830 { 1831 "allValue": null, 1832 "current": { 1833 "selected": true, 1834 "text": [ 1835 "All" 1836 ], 1837 "value": [ 1838 "$__all" 1839 ] 1840 }, 1841 "datasource": "Prometheus", 1842 "definition": "label_values(nginx_ingress_nginxplus_upstream_server_state,server)", 1843 "hide": 0, 1844 "includeAll": true, 1845 "label": "Server", 1846 "multi": true, 1847 "name": "server", 1848 "options": [], 1849 "query": "label_values(nginx_ingress_nginxplus_upstream_server_state,server)", 1850 "refresh": 2, 1851 "regex": "", 1852 "skipUrlSync": false, 1853 "sort": 1, 1854 "tagValuesQuery": "", 1855 "tags": [], 1856 "tagsQuery": "", 1857 "type": "query", 1858 "useTags": false 1859 }, 1860 { 1861 "allValue": null, 1862 "current": { 1863 "selected": true, 1864 "text": [ 1865 "All" 1866 ], 1867 "value": [ 1868 "$__all" 1869 ] 1870 }, 1871 "datasource": "Prometheus", 1872 "definition": "label_values(nginx_ingress_nginxplus_upstream_server_state,upstream)", 1873 "hide": 0, 1874 "includeAll": true, 1875 "label": "Upstream Server", 1876 "multi": true, 1877 "name": "upstream", 1878 "options": [], 1879 "query": "label_values(nginx_ingress_nginxplus_upstream_server_state,upstream)", 1880 "refresh": 2, 1881 "regex": "", 1882 "skipUrlSync": false, 1883 "sort": 1, 1884 "tagValuesQuery": "", 1885 "tags": [], 1886 "tagsQuery": "", 1887 "type": "query", 1888 "useTags": false 1889 } 1890 ] 1891 }, 1892 "time": { 1893 "from": "now-1h", 1894 "to": "now" 1895 }, 1896 "timepicker": { 1897 "refresh_intervals": [ 1898 "10s", 1899 "30s", 1900 "2m", 1901 "5m", 1902 "15m", 1903 "30m", 1904 "1h", 1905 "2h", 1906 "1d" 1907 ], 1908 "time_options": [ 1909 "5m", 1910 "15m", 1911 "1h", 1912 "6h", 1913 "12h", 1914 "24h", 1915 "2d", 1916 "7d", 1917 "30d" 1918 ] 1919 }, 1920 "timezone": "browser", 1921 "title": "NGINX Plus Ingress Controller", 1922 "uid": "VUwGrLVMz", 1923 "version": 5 1924 }