├── DownDetector-Grafana.json ├── LICENSE.txt ├── README.md ├── downdetector.py ├── downdetectorDiscovery.py ├── downdetectorlist.list ├── icons ├── amazon-prime.png ├── amazon-web-services.png ├── caixa.png ├── facebook.png ├── gmail.png ├── mercado-livre.png ├── messenger.png ├── netflix.png ├── spotify.png ├── telegram.png ├── whatsapp.png └── youtube.png ├── requirements.txt ├── screencapture ├── screencapture-grafana.png ├── screencapture-zabbix-grafico.png └── screencapture-zabbix.png ├── zbx_export_hosts.xml ├── zbx_export_templates.xml └── zbx_export_valuemaps.xml /DownDetector-Grafana.json: -------------------------------------------------------------------------------- 1 | { 2 | "annotations": { 3 | "list": [ 4 | { 5 | "$$hashKey": "object:2988", 6 | "builtIn": 1, 7 | "datasource": "-- Grafana --", 8 | "enable": true, 9 | "hide": true, 10 | "iconColor": "rgba(0, 211, 255, 1)", 11 | "name": "Annotations & Alerts", 12 | "type": "dashboard" 13 | } 14 | ] 15 | }, 16 | "description": "Monitoramento sites Down Detector", 17 | "editable": true, 18 | "gnetId": null, 19 | "graphTooltip": 0, 20 | "id": 33, 21 | "links": [], 22 | "panels": [ 23 | { 24 | "content": "
", 25 | "datasource": null, 26 | "gridPos": { 27 | "h": 2, 28 | "w": 2, 29 | "x": 0, 30 | "y": 0 31 | }, 32 | "id": 7, 33 | "links": [], 34 | "mode": "html", 35 | "title": "", 36 | "transparent": true, 37 | "type": "text" 38 | }, 39 | { 40 | "cacheTimeout": null, 41 | "colorBackground": false, 42 | "colorValue": true, 43 | "colors": [ 44 | "#299c46", 45 | "rgba(237, 129, 40, 0.89)", 46 | "#d44a3a" 47 | ], 48 | "datasource": null, 49 | "description": "", 50 | "format": "none", 51 | "gauge": { 52 | "maxValue": 100, 53 | "minValue": 0, 54 | "show": false, 55 | "thresholdLabels": false, 56 | "thresholdMarkers": true 57 | }, 58 | "gridPos": { 59 | "h": 2, 60 | "w": 4, 61 | "x": 2, 62 | "y": 0 63 | }, 64 | "hideTimeOverride": false, 65 | "id": 12, 66 | "interval": null, 67 | "links": [], 68 | "mappingType": 1, 69 | "mappingTypes": [ 70 | { 71 | "$$hashKey": "object:3260", 72 | "name": "value to text", 73 | "value": 1 74 | }, 75 | { 76 | "$$hashKey": "object:3261", 77 | "name": "range to text", 78 | "value": 2 79 | } 80 | ], 81 | "maxDataPoints": 100, 82 | "nullPointMode": "connected", 83 | "nullText": null, 84 | "postfix": "", 85 | "postfixFontSize": "50%", 86 | "prefix": "", 87 | "prefixFontSize": "50%", 88 | "rangeMaps": [ 89 | { 90 | "from": "null", 91 | "text": "N/A", 92 | "to": "null" 93 | } 94 | ], 95 | "sparkline": { 96 | "fillColor": "rgba(31, 118, 189, 0.18)", 97 | "full": false, 98 | "lineColor": "rgb(31, 120, 193)", 99 | "show": false 100 | }, 101 | "tableColumn": "", 102 | "targets": [ 103 | { 104 | "application": { 105 | "filter": "Site" 106 | }, 107 | "functions": [], 108 | "group": { 109 | "filter": "DownDetector" 110 | }, 111 | "host": { 112 | "filter": "DownDetector" 113 | }, 114 | "item": { 115 | "filter": "Whatsapp" 116 | }, 117 | "mode": 0, 118 | "options": { 119 | "showDisabledItems": false, 120 | "skipEmptyValues": false 121 | }, 122 | "refId": "A", 123 | "resultFormat": "time_series", 124 | "table": { 125 | "skipEmptyValues": false 126 | }, 127 | "triggers": { 128 | "acknowledged": 2, 129 | "count": true, 130 | "minSeverity": 3 131 | }, 132 | "useCaptureGroups": false 133 | } 134 | ], 135 | "thresholds": "1.1,2.1,3.1", 136 | "title": "", 137 | "transparent": true, 138 | "type": "singlestat", 139 | "valueFontSize": "80%", 140 | "valueMaps": [ 141 | { 142 | "$$hashKey": "object:3263", 143 | "op": "=", 144 | "text": "✅ Normal", 145 | "value": "1" 146 | }, 147 | { 148 | "$$hashKey": "object:3264", 149 | "op": "=", 150 | "text": "❗️ Intermitênte", 151 | "value": "2" 152 | }, 153 | { 154 | "$$hashKey": "object:3265", 155 | "op": "=", 156 | "text": "❌ Instável", 157 | "value": "3" 158 | } 159 | ], 160 | "valueName": "current" 161 | }, 162 | { 163 | "content": "
", 164 | "datasource": null, 165 | "gridPos": { 166 | "h": 2, 167 | "w": 2, 168 | "x": 6, 169 | "y": 0 170 | }, 171 | "id": 6, 172 | "links": [], 173 | "mode": "html", 174 | "title": "", 175 | "transparent": true, 176 | "type": "text" 177 | }, 178 | { 179 | "cacheTimeout": null, 180 | "colorBackground": false, 181 | "colorValue": true, 182 | "colors": [ 183 | "#299c46", 184 | "rgba(237, 129, 40, 0.89)", 185 | "#d44a3a" 186 | ], 187 | "datasource": null, 188 | "description": "", 189 | "format": "none", 190 | "gauge": { 191 | "maxValue": 100, 192 | "minValue": 0, 193 | "show": false, 194 | "thresholdLabels": false, 195 | "thresholdMarkers": true 196 | }, 197 | "gridPos": { 198 | "h": 2, 199 | "w": 4, 200 | "x": 8, 201 | "y": 0 202 | }, 203 | "hideTimeOverride": false, 204 | "id": 2, 205 | "interval": null, 206 | "links": [], 207 | "mappingType": 1, 208 | "mappingTypes": [ 209 | { 210 | "$$hashKey": "object:3260", 211 | "name": "value to text", 212 | "value": 1 213 | }, 214 | { 215 | "$$hashKey": "object:3261", 216 | "name": "range to text", 217 | "value": 2 218 | } 219 | ], 220 | "maxDataPoints": 100, 221 | "nullPointMode": "connected", 222 | "nullText": null, 223 | "postfix": "", 224 | "postfixFontSize": "50%", 225 | "prefix": "", 226 | "prefixFontSize": "50%", 227 | "rangeMaps": [ 228 | { 229 | "from": "null", 230 | "text": "N/A", 231 | "to": "null" 232 | } 233 | ], 234 | "sparkline": { 235 | "fillColor": "rgba(31, 118, 189, 0.18)", 236 | "full": false, 237 | "lineColor": "rgb(31, 120, 193)", 238 | "show": false 239 | }, 240 | "tableColumn": "", 241 | "targets": [ 242 | { 243 | "application": { 244 | "filter": "Site" 245 | }, 246 | "functions": [], 247 | "group": { 248 | "filter": "DownDetector" 249 | }, 250 | "host": { 251 | "filter": "DownDetector" 252 | }, 253 | "item": { 254 | "filter": "Caixa Econômica Federal" 255 | }, 256 | "mode": 0, 257 | "options": { 258 | "showDisabledItems": false, 259 | "skipEmptyValues": false 260 | }, 261 | "refId": "A", 262 | "resultFormat": "time_series", 263 | "table": { 264 | "skipEmptyValues": false 265 | }, 266 | "triggers": { 267 | "acknowledged": 2, 268 | "count": true, 269 | "minSeverity": 3 270 | }, 271 | "useCaptureGroups": false 272 | } 273 | ], 274 | "thresholds": "1.1,2.1,3.1", 275 | "title": "", 276 | "transparent": true, 277 | "type": "singlestat", 278 | "valueFontSize": "80%", 279 | "valueMaps": [ 280 | { 281 | "$$hashKey": "object:3263", 282 | "op": "=", 283 | "text": "✅ Normal", 284 | "value": "1" 285 | }, 286 | { 287 | "$$hashKey": "object:3264", 288 | "op": "=", 289 | "text": "❗️ Intermitênte", 290 | "value": "2" 291 | }, 292 | { 293 | "$$hashKey": "object:3265", 294 | "op": "=", 295 | "text": "❌ Instável", 296 | "value": "3" 297 | } 298 | ], 299 | "valueName": "current" 300 | }, 301 | { 302 | "content": "
", 303 | "datasource": null, 304 | "gridPos": { 305 | "h": 2, 306 | "w": 2, 307 | "x": 0, 308 | "y": 2 309 | }, 310 | "id": 9, 311 | "links": [], 312 | "mode": "html", 313 | "title": "", 314 | "transparent": true, 315 | "type": "text" 316 | }, 317 | { 318 | "cacheTimeout": null, 319 | "colorBackground": false, 320 | "colorValue": true, 321 | "colors": [ 322 | "#299c46", 323 | "rgba(237, 129, 40, 0.89)", 324 | "#d44a3a" 325 | ], 326 | "datasource": null, 327 | "description": "", 328 | "format": "none", 329 | "gauge": { 330 | "maxValue": 100, 331 | "minValue": 0, 332 | "show": false, 333 | "thresholdLabels": false, 334 | "thresholdMarkers": true 335 | }, 336 | "gridPos": { 337 | "h": 2, 338 | "w": 4, 339 | "x": 2, 340 | "y": 2 341 | }, 342 | "hideTimeOverride": false, 343 | "id": 13, 344 | "interval": null, 345 | "links": [], 346 | "mappingType": 1, 347 | "mappingTypes": [ 348 | { 349 | "$$hashKey": "object:3260", 350 | "name": "value to text", 351 | "value": 1 352 | }, 353 | { 354 | "$$hashKey": "object:3261", 355 | "name": "range to text", 356 | "value": 2 357 | } 358 | ], 359 | "maxDataPoints": 100, 360 | "nullPointMode": "connected", 361 | "nullText": null, 362 | "postfix": "", 363 | "postfixFontSize": "50%", 364 | "prefix": "", 365 | "prefixFontSize": "50%", 366 | "rangeMaps": [ 367 | { 368 | "from": "null", 369 | "text": "N/A", 370 | "to": "null" 371 | } 372 | ], 373 | "sparkline": { 374 | "fillColor": "rgba(31, 118, 189, 0.18)", 375 | "full": false, 376 | "lineColor": "rgb(31, 120, 193)", 377 | "show": false 378 | }, 379 | "tableColumn": "", 380 | "targets": [ 381 | { 382 | "application": { 383 | "filter": "Site" 384 | }, 385 | "functions": [], 386 | "group": { 387 | "filter": "DownDetector" 388 | }, 389 | "host": { 390 | "filter": "DownDetector" 391 | }, 392 | "item": { 393 | "filter": "Telegram" 394 | }, 395 | "mode": 0, 396 | "options": { 397 | "showDisabledItems": false, 398 | "skipEmptyValues": false 399 | }, 400 | "refId": "A", 401 | "resultFormat": "time_series", 402 | "table": { 403 | "skipEmptyValues": false 404 | }, 405 | "triggers": { 406 | "acknowledged": 2, 407 | "count": true, 408 | "minSeverity": 3 409 | }, 410 | "useCaptureGroups": false 411 | } 412 | ], 413 | "thresholds": "1.1,2.1,3.1", 414 | "title": "", 415 | "transparent": true, 416 | "type": "singlestat", 417 | "valueFontSize": "80%", 418 | "valueMaps": [ 419 | { 420 | "$$hashKey": "object:3263", 421 | "op": "=", 422 | "text": "✅ Normal", 423 | "value": "1" 424 | }, 425 | { 426 | "$$hashKey": "object:3264", 427 | "op": "=", 428 | "text": "❗️ Intermitênte", 429 | "value": "2" 430 | }, 431 | { 432 | "$$hashKey": "object:3265", 433 | "op": "=", 434 | "text": "❌ Instável", 435 | "value": "3" 436 | } 437 | ], 438 | "valueName": "current" 439 | }, 440 | { 441 | "content": "
", 442 | "datasource": null, 443 | "gridPos": { 444 | "h": 2, 445 | "w": 2, 446 | "x": 6, 447 | "y": 2 448 | }, 449 | "id": 11, 450 | "links": [], 451 | "mode": "html", 452 | "title": "", 453 | "transparent": true, 454 | "type": "text" 455 | }, 456 | { 457 | "cacheTimeout": null, 458 | "colorBackground": false, 459 | "colorValue": true, 460 | "colors": [ 461 | "#299c46", 462 | "rgba(237, 129, 40, 0.89)", 463 | "#d44a3a" 464 | ], 465 | "datasource": null, 466 | "description": "", 467 | "format": "none", 468 | "gauge": { 469 | "maxValue": 100, 470 | "minValue": 0, 471 | "show": false, 472 | "thresholdLabels": false, 473 | "thresholdMarkers": true 474 | }, 475 | "gridPos": { 476 | "h": 2, 477 | "w": 4, 478 | "x": 8, 479 | "y": 2 480 | }, 481 | "hideTimeOverride": false, 482 | "id": 14, 483 | "interval": null, 484 | "links": [], 485 | "mappingType": 1, 486 | "mappingTypes": [ 487 | { 488 | "$$hashKey": "object:3260", 489 | "name": "value to text", 490 | "value": 1 491 | }, 492 | { 493 | "$$hashKey": "object:3261", 494 | "name": "range to text", 495 | "value": 2 496 | } 497 | ], 498 | "maxDataPoints": 100, 499 | "nullPointMode": "connected", 500 | "nullText": null, 501 | "postfix": "", 502 | "postfixFontSize": "50%", 503 | "prefix": "", 504 | "prefixFontSize": "50%", 505 | "rangeMaps": [ 506 | { 507 | "from": "null", 508 | "text": "N/A", 509 | "to": "null" 510 | } 511 | ], 512 | "sparkline": { 513 | "fillColor": "rgba(31, 118, 189, 0.18)", 514 | "full": false, 515 | "lineColor": "rgb(31, 120, 193)", 516 | "show": false 517 | }, 518 | "tableColumn": "", 519 | "targets": [ 520 | { 521 | "application": { 522 | "filter": "Site" 523 | }, 524 | "functions": [], 525 | "group": { 526 | "filter": "DownDetector" 527 | }, 528 | "host": { 529 | "filter": "DownDetector" 530 | }, 531 | "item": { 532 | "filter": "Amazon Prime Video" 533 | }, 534 | "mode": 0, 535 | "options": { 536 | "showDisabledItems": false, 537 | "skipEmptyValues": false 538 | }, 539 | "refId": "A", 540 | "resultFormat": "time_series", 541 | "table": { 542 | "skipEmptyValues": false 543 | }, 544 | "triggers": { 545 | "acknowledged": 2, 546 | "count": true, 547 | "minSeverity": 3 548 | }, 549 | "useCaptureGroups": false 550 | } 551 | ], 552 | "thresholds": "1.1,2.1,3.1", 553 | "title": "", 554 | "transparent": true, 555 | "type": "singlestat", 556 | "valueFontSize": "80%", 557 | "valueMaps": [ 558 | { 559 | "$$hashKey": "object:3263", 560 | "op": "=", 561 | "text": "✅ Normal", 562 | "value": "1" 563 | }, 564 | { 565 | "$$hashKey": "object:3264", 566 | "op": "=", 567 | "text": "❗️ Intermitênte", 568 | "value": "2" 569 | }, 570 | { 571 | "$$hashKey": "object:3265", 572 | "op": "=", 573 | "text": "❌ Instável", 574 | "value": "3" 575 | } 576 | ], 577 | "valueName": "current" 578 | }, 579 | { 580 | "content": "
", 581 | "datasource": null, 582 | "gridPos": { 583 | "h": 2, 584 | "w": 2, 585 | "x": 0, 586 | "y": 4 587 | }, 588 | "id": 17, 589 | "links": [], 590 | "mode": "html", 591 | "title": "", 592 | "transparent": true, 593 | "type": "text" 594 | }, 595 | { 596 | "cacheTimeout": null, 597 | "colorBackground": false, 598 | "colorValue": true, 599 | "colors": [ 600 | "#299c46", 601 | "rgba(237, 129, 40, 0.89)", 602 | "#d44a3a" 603 | ], 604 | "datasource": null, 605 | "description": "", 606 | "format": "none", 607 | "gauge": { 608 | "maxValue": 100, 609 | "minValue": 0, 610 | "show": false, 611 | "thresholdLabels": false, 612 | "thresholdMarkers": true 613 | }, 614 | "gridPos": { 615 | "h": 2, 616 | "w": 4, 617 | "x": 2, 618 | "y": 4 619 | }, 620 | "hideTimeOverride": false, 621 | "id": 18, 622 | "interval": null, 623 | "links": [], 624 | "mappingType": 1, 625 | "mappingTypes": [ 626 | { 627 | "$$hashKey": "object:3260", 628 | "name": "value to text", 629 | "value": 1 630 | }, 631 | { 632 | "$$hashKey": "object:3261", 633 | "name": "range to text", 634 | "value": 2 635 | } 636 | ], 637 | "maxDataPoints": 100, 638 | "nullPointMode": "connected", 639 | "nullText": null, 640 | "postfix": "", 641 | "postfixFontSize": "50%", 642 | "prefix": "", 643 | "prefixFontSize": "50%", 644 | "rangeMaps": [ 645 | { 646 | "from": "null", 647 | "text": "N/A", 648 | "to": "null" 649 | } 650 | ], 651 | "sparkline": { 652 | "fillColor": "rgba(31, 118, 189, 0.18)", 653 | "full": false, 654 | "lineColor": "rgb(31, 120, 193)", 655 | "show": false 656 | }, 657 | "tableColumn": "", 658 | "targets": [ 659 | { 660 | "application": { 661 | "filter": "Site" 662 | }, 663 | "functions": [], 664 | "group": { 665 | "filter": "DownDetector" 666 | }, 667 | "host": { 668 | "filter": "DownDetector" 669 | }, 670 | "item": { 671 | "filter": "Facebook Messenger" 672 | }, 673 | "mode": 0, 674 | "options": { 675 | "showDisabledItems": false, 676 | "skipEmptyValues": false 677 | }, 678 | "refId": "A", 679 | "resultFormat": "time_series", 680 | "table": { 681 | "skipEmptyValues": false 682 | }, 683 | "triggers": { 684 | "acknowledged": 2, 685 | "count": true, 686 | "minSeverity": 3 687 | }, 688 | "useCaptureGroups": false 689 | } 690 | ], 691 | "thresholds": "1.1,2.1,3.1", 692 | "title": "", 693 | "transparent": true, 694 | "type": "singlestat", 695 | "valueFontSize": "80%", 696 | "valueMaps": [ 697 | { 698 | "$$hashKey": "object:3263", 699 | "op": "=", 700 | "text": "✅ Normal", 701 | "value": "1" 702 | }, 703 | { 704 | "$$hashKey": "object:3264", 705 | "op": "=", 706 | "text": "❗️ Intermitênte", 707 | "value": "2" 708 | }, 709 | { 710 | "$$hashKey": "object:3265", 711 | "op": "=", 712 | "text": "❌ Instável", 713 | "value": "3" 714 | } 715 | ], 716 | "valueName": "current" 717 | }, 718 | { 719 | "content": "
", 720 | "datasource": null, 721 | "gridPos": { 722 | "h": 2, 723 | "w": 2, 724 | "x": 6, 725 | "y": 4 726 | }, 727 | "id": 15, 728 | "links": [], 729 | "mode": "html", 730 | "title": "", 731 | "transparent": true, 732 | "type": "text" 733 | }, 734 | { 735 | "cacheTimeout": null, 736 | "colorBackground": false, 737 | "colorValue": true, 738 | "colors": [ 739 | "#299c46", 740 | "rgba(237, 129, 40, 0.89)", 741 | "#d44a3a" 742 | ], 743 | "datasource": null, 744 | "description": "", 745 | "format": "none", 746 | "gauge": { 747 | "maxValue": 100, 748 | "minValue": 0, 749 | "show": false, 750 | "thresholdLabels": false, 751 | "thresholdMarkers": true 752 | }, 753 | "gridPos": { 754 | "h": 2, 755 | "w": 4, 756 | "x": 8, 757 | "y": 4 758 | }, 759 | "hideTimeOverride": false, 760 | "id": 16, 761 | "interval": null, 762 | "links": [], 763 | "mappingType": 1, 764 | "mappingTypes": [ 765 | { 766 | "$$hashKey": "object:3260", 767 | "name": "value to text", 768 | "value": 1 769 | }, 770 | { 771 | "$$hashKey": "object:3261", 772 | "name": "range to text", 773 | "value": 2 774 | } 775 | ], 776 | "maxDataPoints": 100, 777 | "nullPointMode": "connected", 778 | "nullText": null, 779 | "postfix": "", 780 | "postfixFontSize": "50%", 781 | "prefix": "", 782 | "prefixFontSize": "50%", 783 | "rangeMaps": [ 784 | { 785 | "from": "null", 786 | "text": "N/A", 787 | "to": "null" 788 | } 789 | ], 790 | "sparkline": { 791 | "fillColor": "rgba(31, 118, 189, 0.18)", 792 | "full": false, 793 | "lineColor": "rgb(31, 120, 193)", 794 | "show": false 795 | }, 796 | "tableColumn": "", 797 | "targets": [ 798 | { 799 | "application": { 800 | "filter": "Site" 801 | }, 802 | "functions": [], 803 | "group": { 804 | "filter": "DownDetector" 805 | }, 806 | "host": { 807 | "filter": "DownDetector" 808 | }, 809 | "item": { 810 | "filter": "Amazon Web Services" 811 | }, 812 | "mode": 0, 813 | "options": { 814 | "showDisabledItems": false, 815 | "skipEmptyValues": false 816 | }, 817 | "refId": "A", 818 | "resultFormat": "time_series", 819 | "table": { 820 | "skipEmptyValues": false 821 | }, 822 | "triggers": { 823 | "acknowledged": 2, 824 | "count": true, 825 | "minSeverity": 3 826 | }, 827 | "useCaptureGroups": false 828 | } 829 | ], 830 | "thresholds": "1.1,2.1,3.1", 831 | "timeShift": null, 832 | "title": "", 833 | "transparent": true, 834 | "type": "singlestat", 835 | "valueFontSize": "80%", 836 | "valueMaps": [ 837 | { 838 | "$$hashKey": "object:3263", 839 | "op": "=", 840 | "text": "✅ Normal", 841 | "value": "1" 842 | }, 843 | { 844 | "$$hashKey": "object:3264", 845 | "op": "=", 846 | "text": "❗️ Intermitênte", 847 | "value": "2" 848 | }, 849 | { 850 | "$$hashKey": "object:3265", 851 | "op": "=", 852 | "text": "❌ Instável", 853 | "value": "3" 854 | } 855 | ], 856 | "valueName": "current" 857 | }, 858 | { 859 | "content": "
", 860 | "datasource": null, 861 | "gridPos": { 862 | "h": 2, 863 | "w": 2, 864 | "x": 0, 865 | "y": 6 866 | }, 867 | "id": 19, 868 | "links": [], 869 | "mode": "html", 870 | "title": "", 871 | "transparent": true, 872 | "type": "text" 873 | }, 874 | { 875 | "cacheTimeout": null, 876 | "colorBackground": false, 877 | "colorValue": true, 878 | "colors": [ 879 | "#299c46", 880 | "rgba(237, 129, 40, 0.89)", 881 | "#d44a3a" 882 | ], 883 | "datasource": null, 884 | "description": "", 885 | "format": "none", 886 | "gauge": { 887 | "maxValue": 100, 888 | "minValue": 0, 889 | "show": false, 890 | "thresholdLabels": false, 891 | "thresholdMarkers": true 892 | }, 893 | "gridPos": { 894 | "h": 2, 895 | "w": 4, 896 | "x": 2, 897 | "y": 6 898 | }, 899 | "hideTimeOverride": false, 900 | "id": 28, 901 | "interval": null, 902 | "links": [], 903 | "mappingType": 1, 904 | "mappingTypes": [ 905 | { 906 | "$$hashKey": "object:3260", 907 | "name": "value to text", 908 | "value": 1 909 | }, 910 | { 911 | "$$hashKey": "object:3261", 912 | "name": "range to text", 913 | "value": 2 914 | } 915 | ], 916 | "maxDataPoints": 100, 917 | "nullPointMode": "connected", 918 | "nullText": null, 919 | "postfix": "", 920 | "postfixFontSize": "50%", 921 | "prefix": "", 922 | "prefixFontSize": "50%", 923 | "rangeMaps": [ 924 | { 925 | "from": "null", 926 | "text": "N/A", 927 | "to": "null" 928 | } 929 | ], 930 | "sparkline": { 931 | "fillColor": "rgba(31, 118, 189, 0.18)", 932 | "full": false, 933 | "lineColor": "rgb(31, 120, 193)", 934 | "show": false 935 | }, 936 | "tableColumn": "", 937 | "targets": [ 938 | { 939 | "application": { 940 | "filter": "Site" 941 | }, 942 | "functions": [], 943 | "group": { 944 | "filter": "DownDetector" 945 | }, 946 | "host": { 947 | "filter": "DownDetector" 948 | }, 949 | "item": { 950 | "filter": "Facebook" 951 | }, 952 | "mode": 0, 953 | "options": { 954 | "showDisabledItems": false, 955 | "skipEmptyValues": false 956 | }, 957 | "refId": "A", 958 | "resultFormat": "time_series", 959 | "table": { 960 | "skipEmptyValues": false 961 | }, 962 | "triggers": { 963 | "acknowledged": 2, 964 | "count": true, 965 | "minSeverity": 3 966 | }, 967 | "useCaptureGroups": false 968 | } 969 | ], 970 | "thresholds": "1.1,2.1,3.1", 971 | "title": "", 972 | "transparent": true, 973 | "type": "singlestat", 974 | "valueFontSize": "80%", 975 | "valueMaps": [ 976 | { 977 | "$$hashKey": "object:3263", 978 | "op": "=", 979 | "text": "✅ Normal", 980 | "value": "1" 981 | }, 982 | { 983 | "$$hashKey": "object:3264", 984 | "op": "=", 985 | "text": "❗️ Intermitênte", 986 | "value": "2" 987 | }, 988 | { 989 | "$$hashKey": "object:3265", 990 | "op": "=", 991 | "text": "❌ Instável", 992 | "value": "3" 993 | } 994 | ], 995 | "valueName": "current" 996 | }, 997 | { 998 | "content": "
", 999 | "datasource": null, 1000 | "gridPos": { 1001 | "h": 2, 1002 | "w": 2, 1003 | "x": 6, 1004 | "y": 6 1005 | }, 1006 | "id": 20, 1007 | "links": [], 1008 | "mode": "html", 1009 | "title": "", 1010 | "transparent": true, 1011 | "type": "text" 1012 | }, 1013 | { 1014 | "cacheTimeout": null, 1015 | "colorBackground": false, 1016 | "colorValue": true, 1017 | "colors": [ 1018 | "#299c46", 1019 | "rgba(237, 129, 40, 0.89)", 1020 | "#d44a3a" 1021 | ], 1022 | "datasource": null, 1023 | "description": "", 1024 | "format": "none", 1025 | "gauge": { 1026 | "maxValue": 100, 1027 | "minValue": 0, 1028 | "show": false, 1029 | "thresholdLabels": false, 1030 | "thresholdMarkers": true 1031 | }, 1032 | "gridPos": { 1033 | "h": 2, 1034 | "w": 4, 1035 | "x": 8, 1036 | "y": 6 1037 | }, 1038 | "hideTimeOverride": false, 1039 | "id": 25, 1040 | "interval": null, 1041 | "links": [], 1042 | "mappingType": 1, 1043 | "mappingTypes": [ 1044 | { 1045 | "$$hashKey": "object:3260", 1046 | "name": "value to text", 1047 | "value": 1 1048 | }, 1049 | { 1050 | "$$hashKey": "object:3261", 1051 | "name": "range to text", 1052 | "value": 2 1053 | } 1054 | ], 1055 | "maxDataPoints": 100, 1056 | "nullPointMode": "connected", 1057 | "nullText": null, 1058 | "postfix": "", 1059 | "postfixFontSize": "50%", 1060 | "prefix": "", 1061 | "prefixFontSize": "50%", 1062 | "rangeMaps": [ 1063 | { 1064 | "from": "null", 1065 | "text": "N/A", 1066 | "to": "null" 1067 | } 1068 | ], 1069 | "sparkline": { 1070 | "fillColor": "rgba(31, 118, 189, 0.18)", 1071 | "full": false, 1072 | "lineColor": "rgb(31, 120, 193)", 1073 | "show": false 1074 | }, 1075 | "tableColumn": "", 1076 | "targets": [ 1077 | { 1078 | "application": { 1079 | "filter": "Site" 1080 | }, 1081 | "functions": [], 1082 | "group": { 1083 | "filter": "DownDetector" 1084 | }, 1085 | "host": { 1086 | "filter": "DownDetector" 1087 | }, 1088 | "item": { 1089 | "filter": "Gmail" 1090 | }, 1091 | "mode": 0, 1092 | "options": { 1093 | "showDisabledItems": false, 1094 | "skipEmptyValues": false 1095 | }, 1096 | "refId": "A", 1097 | "resultFormat": "time_series", 1098 | "table": { 1099 | "skipEmptyValues": false 1100 | }, 1101 | "triggers": { 1102 | "acknowledged": 2, 1103 | "count": true, 1104 | "minSeverity": 3 1105 | }, 1106 | "useCaptureGroups": false 1107 | } 1108 | ], 1109 | "thresholds": "1.1,2.1,3.1", 1110 | "title": "", 1111 | "transparent": true, 1112 | "type": "singlestat", 1113 | "valueFontSize": "80%", 1114 | "valueMaps": [ 1115 | { 1116 | "$$hashKey": "object:3263", 1117 | "op": "=", 1118 | "text": "✅ Normal", 1119 | "value": "1" 1120 | }, 1121 | { 1122 | "$$hashKey": "object:3264", 1123 | "op": "=", 1124 | "text": "❗️ Intermitênte", 1125 | "value": "2" 1126 | }, 1127 | { 1128 | "$$hashKey": "object:3265", 1129 | "op": "=", 1130 | "text": "❌ Instável", 1131 | "value": "3" 1132 | } 1133 | ], 1134 | "valueName": "current" 1135 | }, 1136 | { 1137 | "content": "
", 1138 | "datasource": null, 1139 | "gridPos": { 1140 | "h": 2, 1141 | "w": 2, 1142 | "x": 0, 1143 | "y": 8 1144 | }, 1145 | "id": 24, 1146 | "links": [], 1147 | "mode": "html", 1148 | "title": "", 1149 | "transparent": true, 1150 | "type": "text" 1151 | }, 1152 | { 1153 | "cacheTimeout": null, 1154 | "colorBackground": false, 1155 | "colorValue": true, 1156 | "colors": [ 1157 | "#299c46", 1158 | "rgba(237, 129, 40, 0.89)", 1159 | "#d44a3a" 1160 | ], 1161 | "datasource": null, 1162 | "description": "", 1163 | "format": "none", 1164 | "gauge": { 1165 | "maxValue": 100, 1166 | "minValue": 0, 1167 | "show": false, 1168 | "thresholdLabels": false, 1169 | "thresholdMarkers": true 1170 | }, 1171 | "gridPos": { 1172 | "h": 2, 1173 | "w": 4, 1174 | "x": 2, 1175 | "y": 8 1176 | }, 1177 | "hideTimeOverride": false, 1178 | "id": 27, 1179 | "interval": null, 1180 | "links": [], 1181 | "mappingType": 1, 1182 | "mappingTypes": [ 1183 | { 1184 | "$$hashKey": "object:3260", 1185 | "name": "value to text", 1186 | "value": 1 1187 | }, 1188 | { 1189 | "$$hashKey": "object:3261", 1190 | "name": "range to text", 1191 | "value": 2 1192 | } 1193 | ], 1194 | "maxDataPoints": 100, 1195 | "nullPointMode": "connected", 1196 | "nullText": null, 1197 | "postfix": "", 1198 | "postfixFontSize": "50%", 1199 | "prefix": "", 1200 | "prefixFontSize": "50%", 1201 | "rangeMaps": [ 1202 | { 1203 | "from": "null", 1204 | "text": "N/A", 1205 | "to": "null" 1206 | } 1207 | ], 1208 | "sparkline": { 1209 | "fillColor": "rgba(31, 118, 189, 0.18)", 1210 | "full": false, 1211 | "lineColor": "rgb(31, 120, 193)", 1212 | "show": false 1213 | }, 1214 | "tableColumn": "", 1215 | "targets": [ 1216 | { 1217 | "application": { 1218 | "filter": "Site" 1219 | }, 1220 | "functions": [], 1221 | "group": { 1222 | "filter": "DownDetector" 1223 | }, 1224 | "host": { 1225 | "filter": "DownDetector" 1226 | }, 1227 | "item": { 1228 | "filter": "Youtube" 1229 | }, 1230 | "mode": 0, 1231 | "options": { 1232 | "showDisabledItems": false, 1233 | "skipEmptyValues": false 1234 | }, 1235 | "refId": "A", 1236 | "resultFormat": "time_series", 1237 | "table": { 1238 | "skipEmptyValues": false 1239 | }, 1240 | "triggers": { 1241 | "acknowledged": 2, 1242 | "count": true, 1243 | "minSeverity": 3 1244 | }, 1245 | "useCaptureGroups": false 1246 | } 1247 | ], 1248 | "thresholds": "1.1,2.1,3.1", 1249 | "title": "", 1250 | "transparent": true, 1251 | "type": "singlestat", 1252 | "valueFontSize": "80%", 1253 | "valueMaps": [ 1254 | { 1255 | "$$hashKey": "object:3263", 1256 | "op": "=", 1257 | "text": "✅ Normal", 1258 | "value": "1" 1259 | }, 1260 | { 1261 | "$$hashKey": "object:3264", 1262 | "op": "=", 1263 | "text": "❗️ Intermitênte", 1264 | "value": "2" 1265 | }, 1266 | { 1267 | "$$hashKey": "object:3265", 1268 | "op": "=", 1269 | "text": "❌ Instável", 1270 | "value": "3" 1271 | } 1272 | ], 1273 | "valueName": "current" 1274 | }, 1275 | { 1276 | "content": "
", 1277 | "datasource": null, 1278 | "gridPos": { 1279 | "h": 2, 1280 | "w": 2, 1281 | "x": 6, 1282 | "y": 8 1283 | }, 1284 | "id": 21, 1285 | "links": [], 1286 | "mode": "html", 1287 | "title": "", 1288 | "transparent": true, 1289 | "type": "text" 1290 | }, 1291 | { 1292 | "cacheTimeout": null, 1293 | "colorBackground": false, 1294 | "colorValue": true, 1295 | "colors": [ 1296 | "#299c46", 1297 | "rgba(237, 129, 40, 0.89)", 1298 | "#d44a3a" 1299 | ], 1300 | "datasource": null, 1301 | "description": "", 1302 | "format": "none", 1303 | "gauge": { 1304 | "maxValue": 100, 1305 | "minValue": 0, 1306 | "show": false, 1307 | "thresholdLabels": false, 1308 | "thresholdMarkers": true 1309 | }, 1310 | "gridPos": { 1311 | "h": 2, 1312 | "w": 4, 1313 | "x": 8, 1314 | "y": 8 1315 | }, 1316 | "hideTimeOverride": false, 1317 | "id": 30, 1318 | "interval": null, 1319 | "links": [], 1320 | "mappingType": 1, 1321 | "mappingTypes": [ 1322 | { 1323 | "$$hashKey": "object:3260", 1324 | "name": "value to text", 1325 | "value": 1 1326 | }, 1327 | { 1328 | "$$hashKey": "object:3261", 1329 | "name": "range to text", 1330 | "value": 2 1331 | } 1332 | ], 1333 | "maxDataPoints": 100, 1334 | "nullPointMode": "connected", 1335 | "nullText": null, 1336 | "postfix": "", 1337 | "postfixFontSize": "50%", 1338 | "prefix": "", 1339 | "prefixFontSize": "50%", 1340 | "rangeMaps": [ 1341 | { 1342 | "from": "null", 1343 | "text": "N/A", 1344 | "to": "null" 1345 | } 1346 | ], 1347 | "sparkline": { 1348 | "fillColor": "rgba(31, 118, 189, 0.18)", 1349 | "full": false, 1350 | "lineColor": "rgb(31, 120, 193)", 1351 | "show": false 1352 | }, 1353 | "tableColumn": "", 1354 | "targets": [ 1355 | { 1356 | "application": { 1357 | "filter": "Site" 1358 | }, 1359 | "functions": [], 1360 | "group": { 1361 | "filter": "DownDetector" 1362 | }, 1363 | "host": { 1364 | "filter": "DownDetector" 1365 | }, 1366 | "item": { 1367 | "filter": "Mercado Livre" 1368 | }, 1369 | "mode": 0, 1370 | "options": { 1371 | "showDisabledItems": false, 1372 | "skipEmptyValues": false 1373 | }, 1374 | "refId": "A", 1375 | "resultFormat": "time_series", 1376 | "table": { 1377 | "skipEmptyValues": false 1378 | }, 1379 | "triggers": { 1380 | "acknowledged": 2, 1381 | "count": true, 1382 | "minSeverity": 3 1383 | }, 1384 | "useCaptureGroups": false 1385 | } 1386 | ], 1387 | "thresholds": "1.1,2.1,3.1", 1388 | "title": "", 1389 | "transparent": true, 1390 | "type": "singlestat", 1391 | "valueFontSize": "80%", 1392 | "valueMaps": [ 1393 | { 1394 | "$$hashKey": "object:3263", 1395 | "op": "=", 1396 | "text": "✅ Normal", 1397 | "value": "1" 1398 | }, 1399 | { 1400 | "$$hashKey": "object:3264", 1401 | "op": "=", 1402 | "text": "❗️ Intermitênte", 1403 | "value": "2" 1404 | }, 1405 | { 1406 | "$$hashKey": "object:3265", 1407 | "op": "=", 1408 | "text": "❌ Instável", 1409 | "value": "3" 1410 | } 1411 | ], 1412 | "valueName": "current" 1413 | }, 1414 | { 1415 | "content": "
", 1416 | "datasource": null, 1417 | "gridPos": { 1418 | "h": 2, 1419 | "w": 2, 1420 | "x": 0, 1421 | "y": 10 1422 | }, 1423 | "id": 23, 1424 | "links": [], 1425 | "mode": "html", 1426 | "title": "", 1427 | "transparent": true, 1428 | "type": "text" 1429 | }, 1430 | { 1431 | "cacheTimeout": null, 1432 | "colorBackground": false, 1433 | "colorValue": true, 1434 | "colors": [ 1435 | "#299c46", 1436 | "rgba(237, 129, 40, 0.89)", 1437 | "#d44a3a" 1438 | ], 1439 | "datasource": null, 1440 | "description": "", 1441 | "format": "none", 1442 | "gauge": { 1443 | "maxValue": 100, 1444 | "minValue": 0, 1445 | "show": false, 1446 | "thresholdLabels": false, 1447 | "thresholdMarkers": true 1448 | }, 1449 | "gridPos": { 1450 | "h": 2, 1451 | "w": 4, 1452 | "x": 2, 1453 | "y": 10 1454 | }, 1455 | "hideTimeOverride": false, 1456 | "id": 26, 1457 | "interval": null, 1458 | "links": [], 1459 | "mappingType": 1, 1460 | "mappingTypes": [ 1461 | { 1462 | "$$hashKey": "object:3260", 1463 | "name": "value to text", 1464 | "value": 1 1465 | }, 1466 | { 1467 | "$$hashKey": "object:3261", 1468 | "name": "range to text", 1469 | "value": 2 1470 | } 1471 | ], 1472 | "maxDataPoints": 100, 1473 | "nullPointMode": "connected", 1474 | "nullText": null, 1475 | "postfix": "", 1476 | "postfixFontSize": "50%", 1477 | "prefix": "", 1478 | "prefixFontSize": "50%", 1479 | "rangeMaps": [ 1480 | { 1481 | "from": "null", 1482 | "text": "N/A", 1483 | "to": "null" 1484 | } 1485 | ], 1486 | "sparkline": { 1487 | "fillColor": "rgba(31, 118, 189, 0.18)", 1488 | "full": false, 1489 | "lineColor": "rgb(31, 120, 193)", 1490 | "show": false 1491 | }, 1492 | "tableColumn": "", 1493 | "targets": [ 1494 | { 1495 | "application": { 1496 | "filter": "Site" 1497 | }, 1498 | "functions": [], 1499 | "group": { 1500 | "filter": "DownDetector" 1501 | }, 1502 | "host": { 1503 | "filter": "DownDetector" 1504 | }, 1505 | "item": { 1506 | "filter": "Netflix" 1507 | }, 1508 | "mode": 0, 1509 | "options": { 1510 | "showDisabledItems": false, 1511 | "skipEmptyValues": false 1512 | }, 1513 | "refId": "A", 1514 | "resultFormat": "time_series", 1515 | "table": { 1516 | "skipEmptyValues": false 1517 | }, 1518 | "triggers": { 1519 | "acknowledged": 2, 1520 | "count": true, 1521 | "minSeverity": 3 1522 | }, 1523 | "useCaptureGroups": false 1524 | } 1525 | ], 1526 | "thresholds": "1.1,2.1,3.1", 1527 | "title": "", 1528 | "transparent": true, 1529 | "type": "singlestat", 1530 | "valueFontSize": "80%", 1531 | "valueMaps": [ 1532 | { 1533 | "$$hashKey": "object:3263", 1534 | "op": "=", 1535 | "text": "✅ Normal", 1536 | "value": "1" 1537 | }, 1538 | { 1539 | "$$hashKey": "object:3264", 1540 | "op": "=", 1541 | "text": "❗️ Intermitênte", 1542 | "value": "2" 1543 | }, 1544 | { 1545 | "$$hashKey": "object:3265", 1546 | "op": "=", 1547 | "text": "❌ Instável", 1548 | "value": "3" 1549 | } 1550 | ], 1551 | "valueName": "current" 1552 | }, 1553 | { 1554 | "content": "
", 1555 | "datasource": null, 1556 | "gridPos": { 1557 | "h": 2, 1558 | "w": 2, 1559 | "x": 6, 1560 | "y": 10 1561 | }, 1562 | "id": 22, 1563 | "links": [], 1564 | "mode": "html", 1565 | "title": "", 1566 | "transparent": true, 1567 | "type": "text" 1568 | }, 1569 | { 1570 | "cacheTimeout": null, 1571 | "colorBackground": false, 1572 | "colorValue": true, 1573 | "colors": [ 1574 | "#299c46", 1575 | "rgba(237, 129, 40, 0.89)", 1576 | "#d44a3a" 1577 | ], 1578 | "datasource": null, 1579 | "description": "", 1580 | "format": "none", 1581 | "gauge": { 1582 | "maxValue": 100, 1583 | "minValue": 0, 1584 | "show": false, 1585 | "thresholdLabels": false, 1586 | "thresholdMarkers": true 1587 | }, 1588 | "gridPos": { 1589 | "h": 2, 1590 | "w": 4, 1591 | "x": 8, 1592 | "y": 10 1593 | }, 1594 | "hideTimeOverride": false, 1595 | "id": 29, 1596 | "interval": null, 1597 | "links": [], 1598 | "mappingType": 1, 1599 | "mappingTypes": [ 1600 | { 1601 | "$$hashKey": "object:3260", 1602 | "name": "value to text", 1603 | "value": 1 1604 | }, 1605 | { 1606 | "$$hashKey": "object:3261", 1607 | "name": "range to text", 1608 | "value": 2 1609 | } 1610 | ], 1611 | "maxDataPoints": 100, 1612 | "nullPointMode": "connected", 1613 | "nullText": null, 1614 | "postfix": "", 1615 | "postfixFontSize": "50%", 1616 | "prefix": "", 1617 | "prefixFontSize": "50%", 1618 | "rangeMaps": [ 1619 | { 1620 | "from": "null", 1621 | "text": "N/A", 1622 | "to": "null" 1623 | } 1624 | ], 1625 | "sparkline": { 1626 | "fillColor": "rgba(31, 118, 189, 0.18)", 1627 | "full": false, 1628 | "lineColor": "rgb(31, 120, 193)", 1629 | "show": false 1630 | }, 1631 | "tableColumn": "", 1632 | "targets": [ 1633 | { 1634 | "application": { 1635 | "filter": "Site" 1636 | }, 1637 | "functions": [], 1638 | "group": { 1639 | "filter": "DownDetector" 1640 | }, 1641 | "host": { 1642 | "filter": "DownDetector" 1643 | }, 1644 | "item": { 1645 | "filter": "Spotify" 1646 | }, 1647 | "mode": 0, 1648 | "options": { 1649 | "showDisabledItems": false, 1650 | "skipEmptyValues": false 1651 | }, 1652 | "refId": "A", 1653 | "resultFormat": "time_series", 1654 | "table": { 1655 | "skipEmptyValues": false 1656 | }, 1657 | "triggers": { 1658 | "acknowledged": 2, 1659 | "count": true, 1660 | "minSeverity": 3 1661 | }, 1662 | "useCaptureGroups": false 1663 | } 1664 | ], 1665 | "thresholds": "1.1,2.1,3.1", 1666 | "title": "", 1667 | "transparent": true, 1668 | "type": "singlestat", 1669 | "valueFontSize": "80%", 1670 | "valueMaps": [ 1671 | { 1672 | "$$hashKey": "object:3263", 1673 | "op": "=", 1674 | "text": "✅ Normal", 1675 | "value": "1" 1676 | }, 1677 | { 1678 | "$$hashKey": "object:3264", 1679 | "op": "=", 1680 | "text": "❗️ Intermitênte", 1681 | "value": "2" 1682 | }, 1683 | { 1684 | "$$hashKey": "object:3265", 1685 | "op": "=", 1686 | "text": "❌ Instável", 1687 | "value": "3" 1688 | } 1689 | ], 1690 | "valueName": "current" 1691 | } 1692 | ], 1693 | "schemaVersion": 22, 1694 | "style": "dark", 1695 | "tags": [], 1696 | "templating": { 1697 | "list": [] 1698 | }, 1699 | "time": { 1700 | "from": "now-6h", 1701 | "to": "now" 1702 | }, 1703 | "timepicker": { 1704 | "refresh_intervals": [ 1705 | "5s", 1706 | "10s", 1707 | "30s", 1708 | "1m", 1709 | "5m", 1710 | "15m", 1711 | "30m", 1712 | "1h", 1713 | "2h", 1714 | "1d" 1715 | ], 1716 | "time_options": [ 1717 | "5m", 1718 | "15m", 1719 | "1h", 1720 | "6h", 1721 | "12h", 1722 | "24h", 1723 | "2d", 1724 | "7d", 1725 | "30d" 1726 | ] 1727 | }, 1728 | "timezone": "", 1729 | "title": "DownDetector", 1730 | "uid": "FI-GAjBZk", 1731 | "variables": { 1732 | "list": [] 1733 | }, 1734 | "version": 12 1735 | } -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | GNU LESSER GENERAL PUBLIC LICENSE 2 | Version 3, 29 June 2007 3 | 4 | Copyright (C) 2007 Free Software Foundation, Inc. 5 | Everyone is permitted to copy and distribute verbatim copies 6 | of this license document, but changing it is not allowed. 7 | 8 | 9 | This version of the GNU Lesser General Public License incorporates 10 | the terms and conditions of version 3 of the GNU General Public 11 | License, supplemented by the additional permissions listed below. 12 | 13 | 0. Additional Definitions. 14 | 15 | As used herein, "this License" refers to version 3 of the GNU Lesser 16 | General Public License, and the "GNU GPL" refers to version 3 of the GNU 17 | General Public License. 18 | 19 | "The Library" refers to a covered work governed by this License, 20 | other than an Application or a Combined Work as defined below. 21 | 22 | An "Application" is any work that makes use of an interface provided 23 | by the Library, but which is not otherwise based on the Library. 24 | Defining a subclass of a class defined by the Library is deemed a mode 25 | of using an interface provided by the Library. 26 | 27 | A "Combined Work" is a work produced by combining or linking an 28 | Application with the Library. The particular version of the Library 29 | with which the Combined Work was made is also called the "Linked 30 | Version". 31 | 32 | The "Minimal Corresponding Source" for a Combined Work means the 33 | Corresponding Source for the Combined Work, excluding any source code 34 | for portions of the Combined Work that, considered in isolation, are 35 | based on the Application, and not on the Linked Version. 36 | 37 | The "Corresponding Application Code" for a Combined Work means the 38 | object code and/or source code for the Application, including any data 39 | and utility programs needed for reproducing the Combined Work from the 40 | Application, but excluding the System Libraries of the Combined Work. 41 | 42 | 1. Exception to Section 3 of the GNU GPL. 43 | 44 | You may convey a covered work under sections 3 and 4 of this License 45 | without being bound by section 3 of the GNU GPL. 46 | 47 | 2. Conveying Modified Versions. 48 | 49 | If you modify a copy of the Library, and, in your modifications, a 50 | facility refers to a function or data to be supplied by an Application 51 | that uses the facility (other than as an argument passed when the 52 | facility is invoked), then you may convey a copy of the modified 53 | version: 54 | 55 | a) under this License, provided that you make a good faith effort to 56 | ensure that, in the event an Application does not supply the 57 | function or data, the facility still operates, and performs 58 | whatever part of its purpose remains meaningful, or 59 | 60 | b) under the GNU GPL, with none of the additional permissions of 61 | this License applicable to that copy. 62 | 63 | 3. Object Code Incorporating Material from Library Header Files. 64 | 65 | The object code form of an Application may incorporate material from 66 | a header file that is part of the Library. You may convey such object 67 | code under terms of your choice, provided that, if the incorporated 68 | material is not limited to numerical parameters, data structure 69 | layouts and accessors, or small macros, inline functions and templates 70 | (ten or fewer lines in length), you do both of the following: 71 | 72 | a) Give prominent notice with each copy of the object code that the 73 | Library is used in it and that the Library and its use are 74 | covered by this License. 75 | 76 | b) Accompany the object code with a copy of the GNU GPL and this license 77 | document. 78 | 79 | 4. Combined Works. 80 | 81 | You may convey a Combined Work under terms of your choice that, 82 | taken together, effectively do not restrict modification of the 83 | portions of the Library contained in the Combined Work and reverse 84 | engineering for debugging such modifications, if you also do each of 85 | the following: 86 | 87 | a) Give prominent notice with each copy of the Combined Work that 88 | the Library is used in it and that the Library and its use are 89 | covered by this License. 90 | 91 | b) Accompany the Combined Work with a copy of the GNU GPL and this license 92 | document. 93 | 94 | c) For a Combined Work that displays copyright notices during 95 | execution, include the copyright notice for the Library among 96 | these notices, as well as a reference directing the user to the 97 | copies of the GNU GPL and this license document. 98 | 99 | d) Do one of the following: 100 | 101 | 0) Convey the Minimal Corresponding Source under the terms of this 102 | License, and the Corresponding Application Code in a form 103 | suitable for, and under terms that permit, the user to 104 | recombine or relink the Application with a modified version of 105 | the Linked Version to produce a modified Combined Work, in the 106 | manner specified by section 6 of the GNU GPL for conveying 107 | Corresponding Source. 108 | 109 | 1) Use a suitable shared library mechanism for linking with the 110 | Library. A suitable mechanism is one that (a) uses at run time 111 | a copy of the Library already present on the user's computer 112 | system, and (b) will operate properly with a modified version 113 | of the Library that is interface-compatible with the Linked 114 | Version. 115 | 116 | e) Provide Installation Information, but only if you would otherwise 117 | be required to provide such information under section 6 of the 118 | GNU GPL, and only to the extent that such information is 119 | necessary to install and execute a modified version of the 120 | Combined Work produced by recombining or relinking the 121 | Application with a modified version of the Linked Version. (If 122 | you use option 4d0, the Installation Information must accompany 123 | the Minimal Corresponding Source and Corresponding Application 124 | Code. If you use option 4d1, you must provide the Installation 125 | Information in the manner specified by section 6 of the GNU GPL 126 | for conveying Corresponding Source.) 127 | 128 | 5. Combined Libraries. 129 | 130 | You may place library facilities that are a work based on the 131 | Library side by side in a single library together with other library 132 | facilities that are not Applications and are not covered by this 133 | License, and convey such a combined library under terms of your 134 | choice, if you do both of the following: 135 | 136 | a) Accompany the combined library with a copy of the same work based 137 | on the Library, uncombined with any other library facilities, 138 | conveyed under the terms of this License. 139 | 140 | b) Give prominent notice with the combined library that part of it 141 | is a work based on the Library, and explaining where to find the 142 | accompanying uncombined form of the same work. 143 | 144 | 6. Revised Versions of the GNU Lesser General Public License. 145 | 146 | The Free Software Foundation may publish revised and/or new versions 147 | of the GNU Lesser General Public License from time to time. Such new 148 | versions will be similar in spirit to the present version, but may 149 | differ in detail to address new problems or concerns. 150 | 151 | Each version is given a distinguishing version number. If the 152 | Library as you received it specifies that a certain numbered version 153 | of the GNU Lesser General Public License "or any later version" 154 | applies to it, you have the option of following the terms and 155 | conditions either of that published version or of any later version 156 | published by the Free Software Foundation. If the Library as you 157 | received it does not specify a version number of the GNU Lesser 158 | General Public License, you may choose any version of the GNU Lesser 159 | General Public License ever published by the Free Software Foundation. 160 | 161 | If the Library as you received it specifies that a proxy can decide 162 | whether future versions of the GNU Lesser General Public License shall 163 | apply, that proxy's public statement of acceptance of any version is 164 | permanent authorization for you to choose that version for the 165 | Library. 166 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # downdetector_zbx_grafana 2 | 3 | ### Requisitos 4 | ``` 5 | Python 3 6 | beautifulsoup4 7 | cloudscraper 8 | requests 9 | openssl 1.1.1 10 | ``` 11 | 12 | ### Uso 13 | ``` 14 | ./downdetector.py {nome site} 15 | ./downdetector.py whatsapp 16 | 17 | ``` 18 | 19 | #### Debian /Ubuntu #### 20 |
apt install python3-pip
21 | pip3 install bs4
22 | pip3 install requests
23 | pip3 install cloudscraper
24 | 25 | Caso já tenha o pip instalado e queira instalar as dependencias rode: 26 | ``` 27 | pip3 install requirements.txt 28 | ``` 29 | 30 | Copie os arquivos downdetectorDiscovery.py downdetectorlist.list downdetector.py para /usr/lib/zabbix/externalscripts, altere suas permissões para o usuários zabbix. 31 |
chown zabbix. /usr/lib/zabbix/externalscripts/downdetector*
32 | chmod a+x /usr/lib/zabbix/externalscripts/downdetector*.py
33 | 34 | 35 | ## Discovery/Auto Configuração 36 | 37 | Edite o arquivo downdetectorlist.list e altere para 1 os sites/host que deseja monitorar. 38 | 39 | #### downdetectordiscoverylist.list 40 | ``` 41 | 0 INATIVO 42 | 1 ATIVO 43 | 44 | 0;caixa;Caixa Econômica Federal 45 | 1;caixa;Caixa Econômica Federal 46 | ``` 47 | -------------------------------------------------------------------------------- /downdetector.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python3 2 | ######################################### 3 | # # 4 | # Author: Gabriel Padilha # 5 | # Email: gabrielvargaspadilha@gmail.com # 6 | # # 7 | ######################################### 8 | import sys 9 | import ssl 10 | import re 11 | import random 12 | from bs4 import BeautifulSoup 13 | if ssl.OPENSSL_VERSION_INFO[0] < 1 or ssl.OPENSSL_VERSION_INFO[1] < 1 or ssl.OPENSSL_VERSION_INFO[2] < 1: 14 | user_agent_list = [ 15 | # Chrome 16 | 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 ' 17 | 'Safari/537.36', 18 | 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 ' 19 | 'Safari/537.36', 20 | 'Mozilla/5.0 (Windows NT 5.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 ' 21 | 'Safari/537.36', 22 | 'Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 ' 23 | 'Safari/537.36', 24 | 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36', 25 | 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 ' 26 | 'Safari/537.36', 27 | 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 ' 28 | 'Safari/537.36', 29 | 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 ' 30 | 'Safari/537.36', 31 | 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 ' 32 | 'Safari/537.36', 33 | 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 ' 34 | 'Safari/537.36', 35 | # Firefox 36 | 'Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1)', 37 | 'Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko', 38 | 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)', 39 | 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko', 40 | 'Mozilla/5.0 (Windows NT 6.2; WOW64; Trident/7.0; rv:11.0) like Gecko', 41 | 'Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko', 42 | 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0)', 43 | 'Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko', 44 | 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)', 45 | 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; Trident/7.0; rv:11.0) like Gecko', 46 | 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)', 47 | 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)', 48 | 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; ' 49 | '.NET CLR 3.5.30729) ' 50 | ] 51 | import requests 52 | craw = "requests" 53 | else: 54 | import cloudscraper 55 | craw = "cloudscraper" 56 | 57 | PARAMS = { 58 | 'Relatórios de usuários indicam que não há problemas': 'success', 59 | 'Relatórios de usuários indicam potenciais problemas': 'warning', 60 | 'Relatórios de usuários indicam problemas': 'danger' 61 | } 62 | 63 | def request(dd_site): 64 | url = "https://downdetector.com.br/fora-do-ar/{}/".format(dd_site) 65 | if not craw: 66 | print(0) 67 | exit() 68 | elif craw == "cloudscraper": 69 | scraper = cloudscraper.create_scraper() 70 | return scraper.get(url) 71 | else: 72 | return requests.get(url, headers={'User-Agent': random.choice(user_agent_list)}) 73 | 74 | 75 | def parse_result(status_text): 76 | status_text = status_text.strip() 77 | if status_text == 'success': 78 | status_number = 1 79 | elif status_text == 'warning': 80 | status_number = 2 81 | elif status_text == 'danger': 82 | status_number = 3 83 | else: 84 | status_number = 0 85 | print(status_number) 86 | exit() 87 | 88 | if __name__ == '__main__': 89 | if len(sys.argv) < 2: 90 | print("Informe o site que gostaria de verificar") 91 | sys.exit(1) 92 | site = sys.argv[1] 93 | 94 | response = request(site) 95 | 96 | if response.status_code != 200: 97 | print(0) 98 | exit() 99 | 100 | try: 101 | bs = BeautifulSoup(response.text, 'html.parser') 102 | dataParse = bs.find("div", {"class": "entry-title"}) 103 | status = dataParse.text.strip() 104 | result = None 105 | if not status: 106 | raise ValueError('') 107 | for param in PARAMS: 108 | if re.compile(r"{}.*".format(param)).match(status): 109 | result = PARAMS[param] 110 | if not result: 111 | raise ValueError('') 112 | parse_result(result) 113 | except Exception as err: 114 | failover = re.compile(".*status: '(.*)',.*", re.MULTILINE) 115 | failover_status = failover.findall(response.text).pop() 116 | parse_result(failover_status) 117 | -------------------------------------------------------------------------------- /downdetectorDiscovery.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python3 2 | import os 3 | import sys 4 | import json 5 | FILE = "/usr/lib/zabbix/externalscripts/downdetectorlist.list" 6 | 7 | if not os.path.isfile(FILE): 8 | print("File not found") 9 | sys.exit() 10 | 11 | file = open(FILE, "r") 12 | 13 | data = { 14 | "data": [] 15 | } 16 | 17 | for line in file.readlines(): 18 | line_data = line.rstrip().split(';') 19 | if line_data[0] == '1': 20 | dic = {"{#SITE_ID}": line_data[1], "{#SITE_NOME}": line_data[2]} 21 | data['data'].append(dic) 22 | 23 | print(json.dumps(data)) -------------------------------------------------------------------------------- /downdetectorlist.list: -------------------------------------------------------------------------------- 1 | 0;alelo;Alelo 2 | 0;algar;Algar 3 | 0;alog;Alog 4 | 0;amazon;Amazon 5 | 1;amazon-prime-instant-video;Amazon Prime Video 6 | 1;aws-amazon-web-services;Amazon Web Services 7 | 0;america-net;America Net 8 | 0;anthem;Anthem 9 | 0;anydesk;Anydesk 10 | 0;apex-legends;Apex Legends 11 | 0;app-store;App Store 12 | 0;apple-store;Apple Store 13 | 0;avianca;Avianca 14 | 0;voeazul;Azul 15 | 0;bcb;Banco Central do Brasil 16 | 0;banco-do-brasil;Banco do Brasil 17 | 0;banco-inter;Banco Inter 18 | 0;banco-itau;Banco Itaú 19 | 0;banco-safra;Banco Safra 20 | 0;banco-santander;Banco Santander 21 | 0;banestes;Banestes 22 | 0;banrisul;Banrisul 23 | 0;battlefield;Battlefield 24 | 0;betfair;Betfair 25 | 0;binance;Binance 26 | 0;bing;Bing 27 | 0;battle-net;Blizzard Battle.net 28 | 0;bradesco;Bradesco 29 | 0;brisanet;Brisanet 30 | 0;buscape;Buscapé 31 | 0;c6-bank;C6 Bank 32 | 0;cabo-telecom;Cabo Telecom 33 | 0;cabonnet;Cabonnet 34 | 1;caixa;Caixa Econômica Federal 35 | 0;call-of-duty;Call of Duty 36 | 0;claro;Claro 37 | 0;clash-of-clans;Clash of Clans 38 | 0;clash-royale;Clash Royale 39 | 0;clear-corretora;Clear 40 | 0;cloudflare;Cloudflare 41 | 0;clusterweb;Clusterweb 42 | 0;copeltelecom;Copel Telecom 43 | 0;correios;Correios 44 | 0;counter-strike;Counter-Strike 45 | 0;cedit-suisse;Credit Suisse 46 | 0;crunchyroll;Crunchyroll 47 | 0;dataprev;Dataprev 48 | 0;dead-by-daylight;Dead By Daylight 49 | 0;deezer;Deezer 50 | 0;destiny;Destiny 51 | 0;discord;Discord 52 | 0;dota-2;Dota 2 53 | 0;dropbox;Dropbox 54 | 0;ea;EA 55 | 0;ebay;eBay 56 | 0;ecac;eCAC 57 | 0;embratel;Embratel 58 | 0;enem;Enem 59 | 0;epic-games-store;Epic Games Store 60 | 0;escape-from-tarkov;Escape from Tarkov 61 | 0;esocial;eSocial 62 | 0;faceapp;Faceapp 63 | 1;facebook;Facebook 64 | 1;facebook-messenger;Facebook Messenger 65 | 0;facetime;Facetime 66 | 0;feedly;Feedly 67 | 0;fifa;Fifa 68 | 0;for-honor;For Honor 69 | 0;fortnite;Fortnite 70 | 0;free-fire;Free Fire 71 | 0;garena;Garena 72 | 0;getnet;Getnet 73 | 0;github;GitHub 74 | 0;globo;Globo 75 | 0;globoplay;Globoplay 76 | 1;gmail;Gmail 77 | 0;go-daddy;Go Daddy 78 | 0;gol;Gol 79 | 0;google;Google 80 | 0;google-cloud;Google Cloud 81 | 0;google-drive;Google Drive 82 | 0;google-play;Google Play 83 | 0;gta5;GTA 5 84 | 0;global-village-telecom;GVT 85 | 0;hbo-go;HBO 86 | 0;hostgator;Hostgator 87 | 0;hostnet-br;Hostnet 88 | 0;hsbc;HSBC 89 | 0;icloud;iCloud 90 | 0;icq;ICQ 91 | 0;ifood;iFood 92 | 0;imessage;iMessage 93 | 0;instagram;Instagram 94 | 0;iti;ITI 95 | 0;itmnetworks;ITMNetworks 96 | 0;itunes;iTunes 97 | 0;jurassic-world-alive;Jurassic World Alive 98 | 0;kik;Kik 99 | 0;kinghost;KingHost 100 | 0;kraken;Kraken 101 | 0;league-of-legends;League of Legends 102 | 0;ligue-telecom;Ligue Telecom 103 | 0;line;Line 104 | 0;linkedin;LinkedIn 105 | 0;locaweb;Locaweb 106 | 0;mandic;Mandic 107 | 0;mercado-bitcoin;Mercado Bitcoin 108 | 1;mercado-livre;Mercado Livre 109 | 0;windows-azure;Microsoft Azure 110 | 0;teams;Microsoft Teams 111 | 0;multiplay;Multiplay 112 | 0;net;NET 113 | 1;netflix;Netflix 114 | 0;neverwinter;Neverwinter 115 | 0;nextel;Nextel 116 | 0;nota-fiscal-eletronica;Nota fiscal eletrônica 117 | 0;nubank;Nubank 118 | 0;office-365;Office 365 119 | 0;oi;Oi 120 | 0;olx;OLX 121 | 0;onedrive;OneDrive 122 | 0;origin;Origin 123 | 0;outlook;Outlook 124 | 0;overwatch;Overwatch 125 | 0;pagseguro;PagSeguro 126 | 0;path-of-exile;Path of Exile 127 | 0;paypal;Paypal 128 | 0;pinterest;Pinterest 129 | 0;playbattlegrounds;Player Unknown's Battlegrounds 130 | 0;playstation-network;Playstation Network 131 | 0;pokemon-go;Pokémon Go 132 | 0;policia-federal;Polícia Federal 133 | 0;porto-segura-conecta;Porto Seguro Conecta 134 | 0;qconcursos;QConcursos 135 | 0;rainbow-six;Rainbow Six 136 | 0;receite-federal;Receita Federal 137 | 0;red-dead-redemption;Red Dead Redemption 138 | 0;reddit;Reddit 139 | 0;roblox;Roblox 140 | 0;rocket-league;Rocket League 141 | 0;salesforcecom;Salesforce 142 | 0;sefaz;Sefaz 143 | 0;sercomtel;Sercomtel 144 | 0;sicoob;Sicoob 145 | 0;sicredi;Sicredi 146 | 0;sisu;SiSU 147 | 0;sky;SKY 148 | 0;skype;Skype 149 | 0;slack;Slack 150 | 0;snapchat;Snapchat 151 | 1;spotify;Spotify 152 | 0;steam;Steam 153 | 0;submarino;Submarino 154 | 0;superdigital;SuperDigital 155 | 0;teamviewer;Teamviewer 156 | 1;telegram;Telegram 157 | 0;terra;Terra 158 | 0;tim;TIM 159 | 0;tinder;Tinder 160 | 0;tribunal-superior-eleitoral;Tribunal Superior Eleitoral 161 | 0;twitch;Twitch 162 | 0;twitter;Twitter 163 | 0;uber;Uber 164 | 0;uber-eats;Uber Eats 165 | 0;udemy;Udemy 166 | 0;umbler;Umbler 167 | 0;uol;UOL 168 | 0;uolhost;UOLHost 169 | 0;uplay;Uplay PC 170 | 0;viber;Viber 171 | 0;vimeo;Vimeo 172 | 0;vivo;Vivo 173 | 0;vono;Vono 174 | 0;warframe;Warframe 175 | 0;waze;Waze 176 | 0;wechat;WeChat 177 | 1;whatsapp;Whatsapp 178 | 0;wikipedia;Wikipedia 179 | 0;world-of-warcraft;World of Warcraft 180 | 0;xbox-live;Xbox Live 181 | 0;xp-investimentos;XP Investimentos 182 | 0;yahoo;Yahoo 183 | 0;yahoo-mail;Yahoo Mail 184 | 1;youtube;Youtube 185 | 0;zello;Zello 186 | -------------------------------------------------------------------------------- /icons/amazon-prime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gtkpad/downdetector_scrapper/8375eeece541dcd5a8b182c2446ab5af3e4d7ab7/icons/amazon-prime.png -------------------------------------------------------------------------------- /icons/amazon-web-services.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gtkpad/downdetector_scrapper/8375eeece541dcd5a8b182c2446ab5af3e4d7ab7/icons/amazon-web-services.png -------------------------------------------------------------------------------- /icons/caixa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gtkpad/downdetector_scrapper/8375eeece541dcd5a8b182c2446ab5af3e4d7ab7/icons/caixa.png -------------------------------------------------------------------------------- /icons/facebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gtkpad/downdetector_scrapper/8375eeece541dcd5a8b182c2446ab5af3e4d7ab7/icons/facebook.png -------------------------------------------------------------------------------- /icons/gmail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gtkpad/downdetector_scrapper/8375eeece541dcd5a8b182c2446ab5af3e4d7ab7/icons/gmail.png -------------------------------------------------------------------------------- /icons/mercado-livre.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gtkpad/downdetector_scrapper/8375eeece541dcd5a8b182c2446ab5af3e4d7ab7/icons/mercado-livre.png -------------------------------------------------------------------------------- /icons/messenger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gtkpad/downdetector_scrapper/8375eeece541dcd5a8b182c2446ab5af3e4d7ab7/icons/messenger.png -------------------------------------------------------------------------------- /icons/netflix.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gtkpad/downdetector_scrapper/8375eeece541dcd5a8b182c2446ab5af3e4d7ab7/icons/netflix.png -------------------------------------------------------------------------------- /icons/spotify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gtkpad/downdetector_scrapper/8375eeece541dcd5a8b182c2446ab5af3e4d7ab7/icons/spotify.png -------------------------------------------------------------------------------- /icons/telegram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gtkpad/downdetector_scrapper/8375eeece541dcd5a8b182c2446ab5af3e4d7ab7/icons/telegram.png -------------------------------------------------------------------------------- /icons/whatsapp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gtkpad/downdetector_scrapper/8375eeece541dcd5a8b182c2446ab5af3e4d7ab7/icons/whatsapp.png -------------------------------------------------------------------------------- /icons/youtube.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gtkpad/downdetector_scrapper/8375eeece541dcd5a8b182c2446ab5af3e4d7ab7/icons/youtube.png -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | beautifulsoup4==4.9.0 2 | certifi==2020.4.5.1 3 | chardet==3.0.4 4 | cloudscraper==1.2.33 5 | idna==2.9 6 | requests==2.23.0 7 | requests-toolbelt==0.9.1 8 | soupsieve==2.0 9 | urllib3==1.25.9 10 | -------------------------------------------------------------------------------- /screencapture/screencapture-grafana.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gtkpad/downdetector_scrapper/8375eeece541dcd5a8b182c2446ab5af3e4d7ab7/screencapture/screencapture-grafana.png -------------------------------------------------------------------------------- /screencapture/screencapture-zabbix-grafico.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gtkpad/downdetector_scrapper/8375eeece541dcd5a8b182c2446ab5af3e4d7ab7/screencapture/screencapture-zabbix-grafico.png -------------------------------------------------------------------------------- /screencapture/screencapture-zabbix.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gtkpad/downdetector_scrapper/8375eeece541dcd5a8b182c2446ab5af3e4d7ab7/screencapture/screencapture-zabbix.png -------------------------------------------------------------------------------- /zbx_export_hosts.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.4 4 | 2020-04-20T23:38:05Z 5 | 6 | 7 | DownDetector 8 | 9 | 10 | 11 | 12 | DownDetector 13 | DownDetector 14 | 15 | 18 | 19 | 20 | 21 | DownDetector 22 | 23 | 24 | 25 | 26 | if1 27 | 28 | 29 | DISABLED 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /zbx_export_templates.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.4 4 | 2020-04-20T23:37:36Z 5 | 6 | 7 | Templates RR 8 | 9 | 10 | 11 | 86 | 87 | 88 | 89 | Status Downdetector 90 | 91 | 92 | 0 93 | Error 94 | 95 | 96 | 1 97 | Estável 98 | 99 | 100 | 2 101 | Intermitências 102 | 103 | 104 | 3 105 | Instável 106 | 107 | 108 | 109 | 110 | 111 | -------------------------------------------------------------------------------- /zbx_export_valuemaps.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.4 4 | 2020-04-20T23:36:58Z 5 | 6 | 7 | Status Downdetector 8 | 9 | 10 | 0 11 | Error 12 | 13 | 14 | 1 15 | Estável 16 | 17 | 18 | 2 19 | Intermitências 20 | 21 | 22 | 3 23 | Instável 24 | 25 | 26 | 27 | 28 | 29 | --------------------------------------------------------------------------------